A set of concepts may be processed according to generative commonsense reasoning techniques to generate a plausible description based on the concepts. However, processing the concepts in a vacuum may not be sufficient to yield a description that is plausible. Rather, the resulting model output may, at least in some instances, be illogical or nonsensical.
It is with respect to these and other general considerations that embodiments have been described. Also, although relatively specific problems have been discussed, it should be understood that the embodiments should not be limited to solving the specific problems identified in the background.
Aspects of the present disclosure relate to a knowledge injection model for generative commonsense reasoning. In examples, an encoder-decoder model is used to generate a model output (e.g., a plausible description or descriptive sentence) based on an input comprising a set of concepts. A prototype is generated based on the set of concepts, which is further used as input for the encoder-decoder model. The prototype may be generated from one or more in-domain and/or out-of-domain knowledge corpora. A scaling engine scales concept input tokens and prototype input tokens of the input to reduce the likelihood that prototype input tokens that overlap with concept input tokens skew the model output. For example, a norm of an encoder output state associated with a prototype input token may be increased if the prototype input token is likely to contribute to the generation, while the norm may instead be decreased when there is a conflict between the prototype input token and the concept input tokens.
Additionally, position indicators are generated for each input token, which provide an indication of the relative position each respective input token as compared to other input tokens. As such, when decoding the scaled encoded input tokens, the decoder may be more attuned to the scenario bias that is introduced by the generated prototype when generating a model output. Thus, the encoder-decoder model need not rely solely on the set of concepts when generating the model output and may instead further incorporate a prototype generated from a knowledge corpus based on the instant scaling and position indicator techniques.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.
The following publications are incorporated by reference in their entirety:
Non-limiting and non-exhaustive examples are described with reference to the following Figures.
In the following detailed description, references are made to the accompanying drawings that form a part hereof, and in which are shown by way of illustrations specific embodiments or examples. These aspects may be combined, other aspects may be utilized, and structural changes may be made without departing from the present disclosure. Embodiments may be practiced as methods, systems or devices. Accordingly, embodiments may take the form of a hardware implementation, an entirely software implementation, or an implementation combining software and hardware aspects. The following detailed description is therefore not to be taken in a limiting sense, and the scope of the present disclosure is defined by the appended claims and their equivalents.
In examples, generative commonsense reasoning is used to generate a plausible description from a set of concepts. As compared to the set of concepts, the generated description may enable improved data retrieval, such that a greater amount and/or more accurate set of data is identified that is responsive to a user query. As another example, the generated description may be more easily understandable by a user or may be used as an alternative to requesting additional information from the user, thereby reducing the cognitive and knowledge burdens on the user and also reducing the amount of time the user needs to spend inputting information. For example, a descriptive sentence may be generated for an image based on a set of associated tags (e.g., as may be generated using computer vision techniques and/or provided by users). As another example, a set of concepts may be provided with targeted content, such that a descriptive headline and/or a descriptive summary may be generated for the targeted content. The descriptive headline and/or summary may be used to identify targeted content that is relevant to the user or, as another example, a search query from a user may be used to generate a descriptive string with which to identify such targeted content. Thus, it will be appreciated that generative reasoning and the associated aspects described herein have applicability in a variety of contexts.
Examples of generative commonsense reasoning include, but are not limited to, Situations With Adversarial Generations (SWAG), CommonsenseQA and CommonGen. For example, SWAG infers a probably subsequent event based on a given textual description of an event. As another example, CommonsenseQA focuses on commonsense question answering by describing a relationships between concepts from a semantic network such as ConceptNet. Different from the discriminative tasks performed by SWAG and CommonsenseQA, CommonGen is an example that is trained according to background commonsense knowledge so as to provide a computational generation capability. Thus, it will be appreciated that aspects of the present disclosure are applicable in any of a variety of generative commonsense reasoning contexts.
For example, given the set of concepts “dog,” “Frisbee,” “catch,” “throw,” a resulting plausible description may be “the dog catches the Frisbee when the boy throws it.” However, processing the set of concepts in a vacuum (e.g., absent additional context) may yield a description that is not plausible. For example, the generated description may instead be “two dogs are throwing Frisbees to each other.” Thus, in the absence of additional context (e.g., dogs typically catch Frisbees or dogs cannot throw Frisbees), generative commonsense reasoning may fail to prioritize certain concept combinations and may instead yield descriptions that are implausible or otherwise fail to make logical sense.
Accordingly, aspects of the present disclosure relate to a knowledge injection model for generative commonsense reasoning. As an example, a prototype is generated from an in-domain knowledge corpus and/or an out-of-domain knowledge corpus based on a set of concepts. The prototype is combined with the set of concepts to generate an input (e.g., comprising input tokens) that is processed using a pre-trained model. A scaling factor is assigned to each input token encoded by the model. In examples, the scaling factor is generated so as to reduce attention weights for certain input tokens associated with the prototype, thereby reducing the likelihood that a prototype input token that overlaps with a concept input token receives a skewed attention weight. Additionally, surrounding input tokens may describe how concepts interact with one another. As such, a position indicator may be generated for each input token, which provides an indication of the relative position of an input token as compared to other input tokens. As a result, a decoder processing the encoded tokens in view of the position indicators is more attuned to the scenario bias that is introduced by the generated prototype when generating a model output.
Examples are described herein with respect to using an encoder-decoder model, such as BART. The encoder-decoder model may comprise one or more encoder layers, where each encoder layer is composed of a self-attention network and a feed-forward network. An encoder layer may further comprise an encoder-decoder attention mechanism between the self-attention network and the feed-forward network. Similarly, the encoder-decoder model may comprise one or more decoder layers, where each decoder layer may comprise a self-attention network and a feed-forward network. While examples are discussed in the context of using a BART encoder-decoder model, it will be appreciated that any of a variety of other generative models (e.g., comprising an encoder and a decoder) may be used.
An example set of equations associated with an encoder-decoder attention mechanism is provided below. A set of input tokens (e.g., comprising the set of concepts and an associated generated prototype) may be encoded into a hidden state or encoder output sequence =(h1, . . . , hn
s
x(du,hv)=(Wx,qdu)T(Wx,khv)/√{square root over (dk)}
a
x=softmax(sx(du,h1), . . . ,(du,hn
v
u
=W
O
[W
1,v
a
1
, . . . ,W
X,v
a
X]
d
u
=LN(du+vu)
In the example equation above, du is input into a decoder and hv is output from an encoder. Additionally, x denotes the xth attention head, while {Wx,q, Wx,k, Wx,v}∈d
A set of concepts may be in any of a variety of forms. For example, the set of concepts may be received from a user or may be generated from a sentence. In some examples, the set of concepts is a set of keywords from a user or generated from metadata, among other examples. Accordingly, a prototype is generated based on the set of concepts. As used herein, a prototype comprises background knowledge to improve model output from an encoder-decoder model. The prototype may be a sentence or a search snippet associated with a search result that is responsive to a user's search query, among other examples. The prototype may be generated from an in-domain and/or an out-of-domain knowledge corpus. For example, if the set of concepts relates to common scenarios, example in-domain external knowledge corpora include, but are not limited to, VaTex (Wang et al., 2019), SNLI (Bowman et al., 2015), Activity (Krishna et al., 2017), or the training set of CommonGen.
However, such an in-domain corpus may have difficulty generalizing to other domains. Accordingly, an out-of-domain knowledge corpus (e.g., Wikipedia, a website, or a social network) may be used (e.g., either as an alternative to or in addition to an in-domain knowledge corpus) to generate the prototype. One or more information retrieval techniques may be used to generate the prototype from a knowledge corpus, such as keyword searching, exact or inexact matching techniques, or graph searching techniques for an ontological graph database, among other examples.
The generated prototype may be combined with the set of concepts to generate an input for the encoder-decoder model. For example, an input =[, ], such that the input tokens may be [c1, . . . , cn
Accordingly, a scaling engine may generate a scaling factor for each input token. In some examples, scaling factors may be used as an alternative to utilizing a simple hard mask that omits concept input tokens that are not also present as prototype input tokens. The scaling engine may increase the norm of an encoder output state associated with a prototype input token (e.g., hv in the equations above) if the prototype input token is likely to contribute to the generation and decrease the norm of the associated encoder output state when there is a conflict between the prototype input token and the concept input tokens. An example set of equations that may be used by a scaling engine is provided below.
Λ=Sigmoid(W2ReLU(W1hv+b1)+b2)
h
v
=h
v⊙(2×Λ)
In the instant example, W1∈d
Additionally, prototype input tokens that co-occur with output tokens of the encoder-decoder model may likely be more important than other tokens when generating the model output. As a result, an encoder classification task may be used to cause the scaling engine to determine which tokens should be present in the generated output. An example loss function is illustrated below, which may be used by the scaling engine of the encoder to perform such classification.
E=−Σs
In the above example, is an indicator function, such that =0 if sv∈ or, in the alternative when sv, =1.
As noted above, in addition to (or, in some examples, as an alternative to) utilizing the scaling engine, a position indicator may be generated to inform the decoder of a position for an input token. Such position indicators may enable the decoder to more effectively identify and incorporate scenario bias that may be introduced through the prototype. As an example, a position indicator for a given token may be determined according to its proximity to concept input tokens.
For example, concept input tokens within the input may each receive a value of “0,” while prototype input tokens may receive values of “1” or more. For the set of concept input tokens “dog” and “thrown,” prototype tokens comprising “the Frisbee was thrown to the dog” (which may instead be represented as a list comprising each token) may receive position indicators 4, 3, 2, 1, 2, 2, 1. In the instant example both “to” and “the” receive position indicators of “2” as they are each proximate to prototype token that is also a concept input token (e.g., “thrown” and “dog,” respectively). Thus, the position indicator may be determined according to a minimum proximity to a concept input token. In the alternative, the second “the” would instead receive a position token of “3” in relation to “thrown” rather than the previously discussed position indicator of “2” in relation to “dog.”
Accordingly, the generated set of position indicators may be incorporated into the encoder-decoder attention mechanism according to the example set of equations below. As illustrated, the above-described technique for generating a position indicator for a given input token is implemented as function D(sv) and ED is the embedding for those distance values in D.
ED(hv)=ED(sv))
S(du,hv)=(Wqdu)T(Wkhv+ED(hv))/√{square root over (dk)}
Thus, incorporating ED(hv) into the attention equation show above enables the decoder to incorporate an associated position indicator when processing encoder output hv to better learn effective scenario bias resulting from the generated prototype. As an example, applying generative commonsense reasoning to a set of concepts “ear,” “feel,” “pain,” “pierce” in a vacuum may yield an output similar to “I can feel the pain in my ears and feel the pierce in my neck from the piercing.” However, incorporating a prototype of “if you pierce your hand, you also feel pain” injects additional knowledge into the processing performed by the encoder-decoder model, thereby enabling the model to include scenario bias when processing the set of concepts. As such, a resulting output may instead be “one feels the pain of having an ear pierced.”
It will be appreciated that aspects of the present disclosure may be used during a generation phase (e.g., of a pre-trained encoder-decoder model) and/or during a training phase. For example, a loss function may incorporate E, as was discussed above. The loss function may further incorporate D defined below to maximize the log-likelihood for given and .
D=−log ΣkP(tk|,,t<k)
=D+λE
In the example above, tk is the kth token in and t<k are the first (k−1) tokens in . Additionally, during model training, λ may be used to balance D and E to improve performance of the encoder-decoder model.
It will be appreciated that aspects of the present disclosure have applicability in a variety of contexts. For example, the disclosed knowledge injection model may be used in generative commonsense reasoning scenarios where a description is generated based on a set of concepts. As an example, a set of tags may be generated for an image using computer vision techniques or based on user-submitted tags, such that a descriptive sentence for the image may be generated accordingly. The descriptive sentence may be supplied to a client computing device as an alternate text tag associated with the image.
As another example, a set of concepts may be provided with targeted content, such that a descriptive headline and/or a descriptive summary may be generated for the targeted content. The targeted content may be provided to a user device based on a query from the user device being matched to the descriptive headline and/or the descriptive summary. As a further example, a descriptive query may be generated from a set of concepts of a user query received from a user device (e.g., as a search query string). Targeted content may be identified on the descriptive query. Thus, the disclosed techniques may enable improved targeted content identification and distribution, thereby enabling the identification and display of relevant content to a user that may not have otherwise been determined to be responsive to a user query. Additionally, the disclosed aspects may improve an associated user experience, as a user need not supply as much information to a computer system, thereby reducing the cognitive and knowledge burdens on the user and also reducing the amount of time the user needs to spend inputting information. Rather, the generative commonsense reasoning techniques and associated knowledge injection model serve to supplement the amount of information used so as to generate a more complete representation of a concept that may have been provided by a user.
Server device 102 and out-of-domain data source 110 may each be any of a variety of computing devices, including, but not limited to, a server computing device or a set of computing devices that form a distributed computing device. Similarly, client devices 104 and 106 may each be any of a variety of computing devices, including, but not limited to, a mobile computing device, a laptop computing device, a tablet computing device, or a desktop computing device. It will be appreciated that while system 100 is illustrated as comprising one server device 102, two client devices 104 and 106, and one out-of-domain data source 110, any number of such elements may be used in other examples. Further, the functionality described herein with respect to server device 102, client devices 104 and 106, and out-of-domain data source 110 may be distributed among or otherwise implemented on any number of different computing devices in any of a variety of configurations in other examples. For example, client device 104 may comprise an out-of-domain data source similar to out-of-domain data source 110, which may be used as a knowledge corpus from which to generate a prototype according to aspects disclosed herein.
Client device 104 is illustrated as comprising client application 118, which may be any of a variety of applications, such as a web application executing in a web browser, a native application, or a combination thereof. For example, a user of client device 104 may employ client application 118 to navigate to a website associated with server device 102 via which to provide a set of concepts. Similarly, client device 106 is illustrated as comprising client application 120. Aspects of client device 106 are similar to those of client device 104 and are therefore not necessarily re-described below in detail.
As an example, client application 118 may display a website at which a user may enter a query to search for content. The query may be transmitted to server device 102, which may extract a set of concepts from the query. Generative reasoning engine 112 may generate a prototype based on the set of concepts (e.g., from in-domain data store 114, out-of-domain data store 116, and/or out-of-domain data source 110). Generative reasoning engine 112 may then generate a model output based on an input comprising the set of concepts and the generated prototype. The model output may be used to identify targeted content relating to the user's query, which may be transmitted to client device 104 and transmitted by client application 118 alongside search results that are responsive to the user's search query. It will be appreciated that the set of concepts need not be received as a search query in other examples. For example, an application programming interface (API) may be used by client application 118 to provide the set of concepts to server device 102 and to receive model output generated by generative reasoning engine 112 and/or other associated processing results.
As another example, client application 118 may enable a user to enter a set of keywords associated with targeted content, which may be provided to server device 102 for processing according to aspects described herein. Generative reasoning engine 112 may process the inputs and generate one or more model outputs comprising a descriptive headline and/or a descriptive summary for targeted content associated with the set of concepts. In examples, the targeted content, descriptive headline, and/or descriptive summary may be stored by server device 102 for subsequent use (e.g., to provide the targeted content in association with search results that are responsive to a user's search query). As another example, the set of concepts and generated model outputs may be received and transmitted, respectively, via an API. Thus, it will be appreciated that the disclosed aspects may be implemented according to any of a variety of paradigms (e.g., as a service via an API, according to client/server methodology, or local to a client device, among other examples).
Server device 102 comprises generative reasoning engine 112, in-domain data store 114, and out-of-domain data store 116. Generative reasoning engine 112 processes a set of concepts to generate a prototype. The prototype may be generated based on a knowledge corpus, as may be stored by or otherwise accessed from in-domain data store 114, out-of-domain data store 116, and/or out-of-domain data source 110. For example, out-of-domain data source 110 may be a third-party data source, such a social network or an online knowledge repository (e.g., an online encyclopedia or a knowledgebase website), among other examples. In some instances, in-domain or out-of-domain data may be accessed or otherwise received from a client device. Thus, a knowledge corpus need not be confined to server device 102. One or more information retrieval techniques may be used to generate the prototype from a knowledge corpus, such as keyword searching, exact or inexact matching techniques, or graph searching techniques for an ontological graph database, among other examples.
In examples, generative reasoning engine 112 processes a set of concepts in combination with the generated prototype to generate a model output according to aspects of the present disclosure. The concepts and prototype form an input comprising input tokens as described herein. Example concepts include, but are not limited to, a word, a topic, or a phrase. Thus, returning to the example above, concepts may be extracted from a search query according to word boundaries or based on identifying one or more topics therein, among other examples. Model output generated by generative reasoning engine 112 may take any of a variety of forms. For example, generative reasoning engine 112 may generate one or more sentences (e.g., the descriptive headline or descriptive summary in the examples above) or may utilize a model output to subsequently identify associated content (e.g., the targeted content in the example above). While example concepts and resulting model outputs are described herein, it will be appreciated that any of a variety of other inputs and outputs may be used according to the techniques described herein.
Input 202 is a set of concepts, which, in some examples, may be received from a client device such as client device 104 or 106 in
E(cj)=EB(cj)+E,E(ok)=EB(ok)+E
As illustrated, group embedding 206 is processed by encoder 208. For example, each encoder layer of encoder 208 may be composed of a self-attention network and a feed-forward network. The encoder layer may further comprise an encoder-decoder attention mechanism between the self-attention network and the feed-forward network. Scaling engine 210 further assigns a scaling factor to each input token of concept set 216 and prototype 218. As discussed above, scaling engine 210 may increase the norm of an encoder output state associated with a prototype input token of prototype 218 if the prototype input token is likely to contribute to the generation. Conversely, scaling engine 210 may decrease the norm of the associated encoder output state when there is a conflict between the prototype input token of prototype 218 and the concept input tokens of concept set 216.
Position indicator generator 212 generates a position indicator for each input token of input 202. Such position indicators may enable decoder 214 to more effectively identify and incorporate scenario bias that may be introduced through prototype 218. As an example, a position indicator for a given token may be determined according to its proximity to an input token that is the same or similar to a concept. Decoder 214 may comprise one or more decoder layers, where each decoder layer may comprise a self-attention network and a feed-forward network. In examples, decoder 214 generates model output 204 based on scaling factors generated by scaling engine 210 for encoded group embeddings generated by encoder 208, as well as position indicators generated by position indicator generator 212. As discussed above, scaling engine 210 ensures that input tokens of concept set 216 do not receive skewed attention as a result of potential overlap with prototype 218. Additionally, as a result of decoder 214 incorporating the position indicators generated by position indicator generator 212, decoder 214 is more effective in incorporating scenario bias resulting from the generated prototype as compared to processing the set of concepts alone.
Flow progresses to operation 304, where a prototype is generated based on the set of concepts. In examples, the prototype is generated from an in-domain and/or out-of-domain knowledge corpus, as may be accessed from an out-of-domain data source (e.g., out-of-domain data source 110 in
In some examples, operation 304 comprises determining a knowledge corpus from a set of corpora. For example, a first corpora may be selected from a set of in-domain corpora and a second corpora may be selected from a set of out-of-domain corpora. The determination may be based on a predetermined context associated with the set of concepts or based on an analysis of the set of concepts to identify an associated in-domain and/or out-of-domain knowledge corpus. As another example, a set of prototypes may be generated from multiple corpora, such that operation 304 further comprise selecting a prototype from the set of prototypes. For example, the selection may be based on ranking the set of prototypes according to a similarity to the set of concepts or prototype length, among other examples.
At operation 306, the set of concepts and generated prototype are treated as an input to an encoder-decoder model and encoded accordingly. For example, aspects of operation 306 may be performed by an encoder, such as encoder 208 in
Moving to operation 308, encoder outputs are scaled based on the set of concepts and generated prototype. In examples, aspects of operation 308 are performed by a scaling engine, such as scaling engine 210 in
Flow progresses to operation 310 where position indicators are generated. In examples, aspects of operation 310 are performed by a position indicator generator, such as position indicator generator 212 in
At operation 312, the scaled encoding outputs are decoded according to the generated position indicators. In examples, aspects of operation 312 are performed by a decoder, such as decoder 214 in
Flow progresses to operation 314, where the generated model output is provided. In examples, the model output is provided via an API, such that another application, process, and/or computing device may use the model output accordingly. For example, the model output may subsequently be used as a descriptive query in order to better identify content (and/or targeted content) as compared to just using a search query. As another example, operation 314 may comprise storing the generated model output (e.g., as a descriptive summary or headline associated with targeted content). Thus, it will be appreciated that the generated model output may be used in any of a variety of scenarios. Method 300 terminates at operation 314.
While method 300 is illustrated as occurring sequentially, it will be appreciated that such aspects need not be performed in the order illustrated by method 300 and may, in some examples, be performed contemporaneously. As an example, operation 310 need not be performed after operations 306 and 308 but, in some examples, may instead occur contemporaneously with at least one of operations 306 and 308.
The system memory 404 may include an operating system 405 and one or more program modules 406 suitable for running software application 420, such as one or more components supported by the systems described herein. As examples, system memory 404 may scaling engine 424 and position indicator generator 426. The operating system 405, for example, may be suitable for controlling the operation of the computing device 400.
Furthermore, embodiments of the disclosure may be practiced in conjunction with a graphics library, other operating systems, or any other application program and is not limited to any particular application or system. This basic configuration is illustrated in
As stated above, a number of program modules and data files may be stored in the system memory 404. While executing on the processing unit 402, the program modules 406 (e.g., application 420) may perform processes including, but not limited to, the aspects, as described herein. Other program modules that may be used in accordance with aspects of the present disclosure may include electronic mail and contacts applications, word processing applications, spreadsheet applications, database applications, slide presentation applications, drawing or computer-aided application programs, etc.
Furthermore, embodiments of the disclosure may be practiced in an electrical circuit comprising discrete electronic elements, packaged or integrated electronic chips containing logic gates, a circuit utilizing a microprocessor, or on a single chip containing electronic elements or microprocessors. For example, embodiments of the disclosure may be practiced via a system-on-a-chip (SOC) where each or many of the components illustrated in
The computing device 400 may also have one or more input device(s) 412 such as a keyboard, a mouse, a pen, a sound or voice input device, a touch or swipe input device, etc. The output device(s) 414 such as a display, speakers, a printer, etc. may also be included. The aforementioned devices are examples and others may be used. The computing device 400 may include one or more communication connections 416 allowing communications with other computing devices 450. Examples of suitable communication connections 416 include, but are not limited to, radio frequency (RF) transmitter, receiver, and/or transceiver circuitry; universal serial bus (USB), parallel, and/or serial ports.
The term computer readable media as used herein may include computer storage media. Computer storage media may include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information, such as computer readable instructions, data structures, or program modules. The system memory 404, the removable storage device 409, and the non-removable storage device 410 are all computer storage media examples (e.g., memory storage). Computer storage media may include RAM, ROM, electrically erasable read-only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other article of manufacture which can be used to store information and which can be accessed by the computing device 400. Any such computer storage media may be part of the computing device 400. Computer storage media does not include a carrier wave or other propagated or modulated data signal.
Communication media may be embodied by computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. The term “modulated data signal” may describe a signal that has one or more characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media may include wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, radio frequency (RF), infrared, and other wireless media.
If included, an optional side input element 515 allows further user input. The side input element 515 may be a rotary switch, a button, or any other type of manual input element. In alternative aspects, mobile computing device 500 may incorporate more or less input elements. For example, the display 505 may not be a touch screen in some embodiments.
In yet another alternative embodiment, the mobile computing device 500 is a portable phone system, such as a cellular phone. The mobile computing device 500 may also include an optional keypad 535. Optional keypad 535 may be a physical keypad or a “soft” keypad generated on the touch screen display.
In various embodiments, the output elements include the display 505 for showing a graphical user interface (GUI), a visual indicator 520 (e.g., a light emitting diode), and/or an audio transducer 525 (e.g., a speaker). In some aspects, the mobile computing device 500 incorporates a vibration transducer for providing the user with tactile feedback. In yet another aspect, the mobile computing device 500 incorporates input and/or output ports, such as an audio input (e.g., a microphone jack), an audio output (e.g., a headphone jack), and a video output (e.g., a HDMI port) for sending signals to or receiving signals from an external device.
One or more application programs 566 may be loaded into the memory 562 and run on or in association with the operating system 564. Examples of the application programs include phone dialer programs, e-mail programs, personal information management (PIM) programs, word processing programs, spreadsheet programs, Internet browser programs, messaging programs, and so forth. The system 502 also includes a non-volatile storage area 568 within the memory 562. The non-volatile storage area 568 may be used to store persistent information that should not be lost if the system 502 is powered down. The application programs 566 may use and store information in the non-volatile storage area 568, such as e-mail or other messages used by an e-mail application, and the like. A synchronization application (not shown) also resides on the system 502 and is programmed to interact with a corresponding synchronization application resident on a host computer to keep the information stored in the non-volatile storage area 568 synchronized with corresponding information stored at the host computer. As should be appreciated, other applications may be loaded into the memory 562 and run on the mobile computing device 500 described herein (e.g., search engine, extractor module, relevancy ranking module, answer scoring module, etc.).
The system 502 has a power supply 570, which may be implemented as one or more batteries. The power supply 570 might further include an external power source, such as an AC adapter or a powered docking cradle that supplements or recharges the batteries.
The system 502 may also include a radio interface layer 572 that performs the function of transmitting and receiving radio frequency communications. The radio interface layer 572 facilitates wireless connectivity between the system 502 and the “outside world,” via a communications carrier or service provider. Transmissions to and from the radio interface layer 572 are conducted under control of the operating system 564. In other words, communications received by the radio interface layer 572 may be disseminated to the application programs 566 via the operating system 564, and vice versa.
The visual indicator 520 may be used to provide visual notifications, and/or an audio interface 574 may be used for producing audible notifications via the audio transducer 525. In the illustrated embodiment, the visual indicator 520 is a light emitting diode (LED) and the audio transducer 525 is a speaker. These devices may be directly coupled to the power supply 570 so that when activated, they remain on for a duration dictated by the notification mechanism even though the processor 560 and other components might shut down for conserving battery power. The LED may be programmed to remain on indefinitely until the user takes action to indicate the powered-on status of the device. The audio interface 574 is used to provide audible signals to and receive audible signals from the user. For example, in addition to being coupled to the audio transducer 525, the audio interface 574 may also be coupled to a microphone to receive audible input, such as to facilitate a telephone conversation. In accordance with embodiments of the present disclosure, the microphone may also serve as an audio sensor to facilitate control of notifications, as will be described below. The system 502 may further include a video interface 576 that enables an operation of an on-board camera 530 to record still images, video stream, and the like.
A mobile computing device 500 implementing the system 502 may have additional features or functionality. For example, the mobile computing device 500 may also include additional data storage devices (removable and/or non-removable) such as, magnetic disks, optical disks, or tape. Such additional storage is illustrated in
Data/information generated or captured by the mobile computing device 500 and stored via the system 502 may be stored locally on the mobile computing device 500, as described above, or the data may be stored on any number of storage media that may be accessed by the device via the radio interface layer 572 or via a wired connection between the mobile computing device 500 and a separate computing device associated with the mobile computing device 500, for example, a server computer in a distributed computing network, such as the Internet. As should be appreciated such data/information may be accessed via the mobile computing device 500 via the radio interface layer 572 or via a distributed computing network. Similarly, such data/information may be readily transferred between computing devices for storage and use according to well-known data/information transfer and storage means, including electronic mail and collaborative data/information sharing systems.
A prototype generation engine 620 (e.g., performing aspects similar to those of operation 304 of method 300 in
The present disclosure relates to systems and methods for generating a model output based on a set of concepts according to at least the examples provided in the sections below:
Aspects of the present disclosure, for example, are described above with reference to block diagrams and/or operational illustrations of methods, systems, and computer program products according to aspects of the disclosure. The functions/acts noted in the blocks may occur out of the order as shown in any flowchart. For example, two blocks shown in succession may in fact be executed substantially concurrently or the blocks may sometimes be executed in the reverse order, depending upon the functionality/acts involved.
The description and illustration of one or more aspects provided in this application are not intended to limit or restrict the scope of the disclosure as claimed in any way. The aspects, examples, and details provided in this application are considered sufficient to convey possession and enable others to make and use the best mode of claimed disclosure. The claimed disclosure should not be construed as being limited to any aspect, example, or detail provided in this application. Regardless of whether shown and described in combination or separately, the various features (both structural and methodological) are intended to be selectively included or omitted to produce an embodiment with a particular set of features. Having been provided with the description and illustration of the present application, one skilled in the art may envision variations, modifications, and alternate aspects falling within the spirit of the broader aspects of the general inventive concept embodied in this application that do not depart from the broader scope of the claimed disclosure.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/CN2020/128481 | 11/12/2020 | WO |