BACKGROUND

With the proliferation of internet-enabled devices such as smart phones and smart watches, it is increasingly common for information about newly-developing, or “live,” events to be disseminated by witnesses using live data streams such as social media posts, search engine queries, digital image posts, etc. This often occurs even before publication of such information by traditional news outlets. Consequently, established knowledge sources such as search engines may lag behind this organically-evolving information. Moreover, knowledge sources such as search engines are likely to receive numerous queries about developing events before those search engines are able to provide responsive information.

SUMMARY

Accordingly, techniques and a framework are described herein for gathering information about developing events from multiple live data streams and providing new pieces of information to interested individuals. In particular, various implementations are directed to detecting a newly-developing event. An action may, for example, be performed in response to the detection of the newly-developing event, for example controlling a response to the detection of the event or providing an output signal indicating to a third-party that the event is detected. For example, in one example an event such as a fire or crime may be detected and emergency services may be alerted. Additionally or alternatively, some implementations are directed to leveraging recently-submitted search queries about still-developing events—e.g., events for which conventional search engines may lack up-to-date information—to provide information to other inquiring users. These recently-submitted search queries may, at least to some extent, include queries from sources having first-hand or second-hand knowledge, such as witnesses to the event, first responders, witnesses to ancillary events surrounding the event (e.g., person who sees firetrucks racing in a direction towards landmark, but who doesn't see the actual landmark burning), and so forth.

Developing events may be initially identified in various ways. In some implementations, one or more individuals may submit queries to a search engine seeking information about a developing event, such as “Is there a fire at the cathedral?” or “Why is a crowd gathering at Times Square?” If enough queries, e.g., a cluster of semantically-related queries, evidence a newly-developing event, that may trigger analysis of multiple live data streams, such as social media posts, to obtain information to populate an event-specific knowledge graph. As another example, multiple live streams such as social media posts may be analyzed on an ongoing basis. Similar to clusters of semantically-related queries, if a sufficient number or cluster of semantically-related posts are identified, that may evidence a newly-developing event. In yet other implementations, particular live data streams, e.g., from trusted individuals/organizations such as first responders, may be monitored for newly-developing events.

In some implementations, an underlying data structure such as a network model may be generated or maintained that models how various sources of information are connected. For example, the underlying network model may model the structure on which information is disseminated across sources such as social network users (especially sources known to have heightened trustworthiness, such as reporters, law enforcement or government officials, etc.). This underlying network model may include a plurality of nodes representing sources and a plurality of edges representing communication pathways between the plurality of sources.

On top of this underlying network model, the spread of information associated with a developing event may be modeled as a function of time, e.g., using a data structure such as a directed graph. In some implementations, these directed graphs may be applied as input across a machine learning model such as a neural network. The machine learning model may, in some implementations, be trained to operate with graphs as input, and may be, for instance, a graph convolutional network (“GCN”) or a graph attention network (“GAN”). In some implementations, the directed graph itself may be applied as input across the machine learning model. Additionally or alternatively, in some implementations, the directed graph may first be embedded into a latent space, e.g., using techniques such as graph neural networks (“GNN”), and then the latent space embedding may be applied as input across the machine learning model.

Output generated based on application of the directed graph across the model may be indicative of, for instance, a likelihood of occurrence of a developing event, and/or a prediction of whether the event will be relevant to a particular user. For example, in some implementations, the machine learning model may model the following probability:P(an event occurring at node x|particular user's features, graph)=probability of an event occurring, conditioned on the particular user and the graph structure/embedding (e.g., of a local neighborhood)
In other implementations, the probability P of a developing event occurring may be a joint probability, e.g., determined using the following equation:P(an event occurring at node x, user observing event at node x|user features, graph features)

In various implementations, these machine learning models may be trained using a plurality of training examples. Each training example may include a prior data structure, such as a directed graph, that modeled diffusion of information about a respective verified past event through a plurality of sources. For example, a directed graph may be generated for a verified event that occurred in the past. The directed graph then may be labeled, e.g., as having a relative high likelihood of being a developing event. In some implementations, a training example may also include, as label(s) and/or as additional input(s), user attributes that signal likely interest in the event. For example, a training example for a past political protest may be assigned a label, or include as input, a user attribute of “political.” This training example may then be applied as input across the machine learning model to generate output. The extent the output varies from indicating that the event would likely be of interest to politically-oriented users—i.e. the loss function—may be considered the error. The machine learning model may be trained, e.g., using techniques such as gradient descent and back propagation, to correct for the error, or put another way, minimize the loss function.

In some implementations, the machine learning model training may effectively capture the reliability of individual sources. For example, a particular live data stream, such as a police department's social media feed, may consistently publish reliable information that aligns closely with an event's ultimate factual attributes. Accordingly, a node in a directed graph that represents that particular source may be weighted more heavily by a GCN/GAN than, say, another node associated with an unknown source (or a known unreliable source). Put another way, during training the GCN/GAN may learn which nodes (or types of nodes) are more reliable than others. It might often be the case that the first sources of information, e.g., the first people to submit queries seeking information about an event or social media posts about the event, are first-hand witnesses of a developing event. These people are likely more trustworthy or reliable than, say, a third wave of sources that receive information from upstream witnesses and pass on new, unverified information (e.g., rumors).

Once a developing event is deemed likely and relevant to a particular individual, then other queries associated with the event may be leveraged to provide the particular individual with additional information about the developing event. For example, suppose the particular individual issues a query about the event (“How big is the fire at the Cathedral?”) for which responsive information is not yet available from a conventional search engine. Rather than being notified that no responsive information is available, the particular individual may be provided with alternative query suggestions for which there may be more responsive information available. Additionally or alternatively, the particular individual may be provided information that is responsive to those alternative query suggestions.

Sometimes queries from other individuals themselves may provide additional information, especially when those other individuals are first-hand witnesses to the event. For example, a first individual may submit a queries such as “what artifacts are at risk from the cathedral fire?” Other individuals with more knowledge about the cathedral's collection of artifacts may have previously submitted queries such as, “did they save <relic A> from the cathedral fire?” These previously-submitted queries may be mined to provide the first individual with, for instance, alternative query suggestions that both guide the individual as to a better query and/or provide the individual with information responsive to his or her own query, such as the fact that <relic A> is likely at risk.

In some implementations, queries that are, on their faces (i.e., semantically and/or syntactically), seemingly unrelated may in fact be related to the same event. By clustering queries and/or other data from live data streams together by their relations to developing events, it is possible for a pair of queries that are not facially or explicitly related to each other to be associated in a cluster. Consequently, an individual submitting a query similar to the first query of the pair of queries may be suggested an alternative query similar to the second query of the pair.

As an example, a first individual in Zurich may see police cars converge on a bank and submit a query such as “details about crime in city center.” Another individual may hear secondhand that police have captured a suspect and may submit the query, “recent police statement about burglars in Zurich.” On their faces, these queries are semantically dissimilar, other than perhaps a slight semantic relationship between “crime” and “burglars.” Without more there may be nothing to tie these two queries together. However, with techniques described herein these queries may be clustered around a developing event in Zurich city center. For example, the first individual's smart phone may include a position coordinate sensor that indicates the first individual is in Zurich. The second individual's query explicitly mentions Zurich, and so these queries may be clustered with the same developing event. Consequently, when the first individual submits his or her query, “details about crime in city center,” he or she may receive the alternative query suggestion, “recent police statement about burglars in Zurich.”

In some implementations, a method is provided that includes: monitoring a plurality of live data streams; based on the monitoring, generating a data structure that models diffusion of information through a population; applying the data structure as input across a machine learning model to generate output, wherein the output is indicative of a likelihood of occurrence of a developing event; and based on a determination that the likelihood of occurrence of a developing event satisfies a criterion, causing one or more computing devices to render, as output, information about the developing event.

These and other implementations of technology disclosed herein may optionally include one or more of the following features.

In some implementations, the data structure comprises a directed graph, and the directed graph is generated based on an underlying network model that includes a plurality of nodes representing sources and a plurality of edges representing communication pathways between the plurality of sources. In some implementations, the data structure comprises a graph and the machine learning model is trained using a plurality of training examples, each training example including a prior graph that modeled diffusion of information about a respective verified past event through a plurality of sources.

In some implementations, the output is further indicative of a predicted measure of relevancy of the developing event to a particular user. In some implementations, the applying further includes applying one or more attributes of the particular user as input across the machine learning model.

In some implementations, the machine learning model comprises a machine learning model trained to operate on graph input. In some implementations, the information about the developing event is determined based at least in part on a corpus of queries submitted to one or more search engines, wherein the corpus of queries relate to the developing event. In some implementations, the information about the developing event comprises an alternative query suggestion to obtain additional information about the developing event.

Other implementations may include a non-transitory computer readable storage medium storing instructions executable by one or more processors (e.g., central processing unit(s) (CPU(s)), graphics processing unit(s) (GPU(s)), and/or tensor processing unit(s) (TPU(s)) to perform a method such as one or more of the methods described above and/or elsewhere herein. Yet other implementations may include a system of one or more computers that include one or more processors operable to execute stored instructions to perform a method such as one or more of the methods described above and/or elsewhere herein.

It should be appreciated that all combinations of the foregoing concepts and additional concepts described in greater detail herein are contemplated as being part of the subject matter disclosed herein. For example, all combinations of claimed subject matter appearing at the end of this disclosure are contemplated as being part of the subject matter disclosed herein.

