Method for personalized breaking news feed

In an approach to personalizing a news feed, a computing device monitors a user accessing content. The computing device determines a personal knowledge graph for the user based on the accessed content. Responsive to receiving a new piece of content that the user has not accessed, the computing device determines a novelty score for the new piece of content based on the personal knowledge graph. The computing device filters the new piece of content based on the novelty score.

TECHNICAL FIELD OF THE INVENTION

The present disclosure relates generally to the field of content filtering, and more particularly to deduplication and prioritization of content in a news feed.

BACKGROUND OF THE INVENTION

Given a developing storyline or event in the news, a reader may prefer to receive only the most relevant, up-to-date information from his or her content providers and avoid receiving redundant or duplicate information. Deduplication methods have developed as a means for curating personalized content streams, so that redundant facts and notifications are suppressed based on, for example, matching of character strings in incoming and previously presented content or a determination that a notification concerning a particular article has already been sent.

SUMMARY

According to one embodiment of the present invention, a computer-implemented method for personalized content filtering is provided. The method comprises: monitoring, by one or more computer processors, a user accessing a first piece of content; determining, by one or more computer processors, a personal knowledge graph for the user based on the first piece of content; determining, responsive to receiving a second piece of content, wherein the second piece of content has not been accessed by the user, by one or more computer processors, a novelty score for the second piece of content based on the personal knowledge graph; and filtering, by one or more computer processors, the second piece of content based on the novelty score.

A computer program product for personalized content filtering, the computer program product comprising one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising: program instructions to monitor a user accessing a first piece of content; program instructions to determine a personal knowledge graph for the user based on the first piece of content; program instructions to determine, responsive to receiving a second piece of content, wherein the second piece of content has not been accessed by the user, a novelty score for the second piece of content based on the personal knowledge graph; and program instructions to filter the second piece of content based on the novelty score.

A computer system for personalized content filtering, the computer system comprising one or more user interfaces; one or more processors; one or more computer readable storage media; and program instructions stored on the one or more computer readable storage media for execution by at least one of the one or more processors, the program instructions comprising: program instructions to monitor a user accessing a first piece of content; program instructions to determine a personal knowledge graph for the user based on the first piece of content; program instructions to determine, responsive to receiving a second piece of content, wherein the second piece of content has not been accessed by the user, a novelty score for the second piece of content based on the personal knowledge graph; and program instructions to filter the second piece of content based on the novelty score.

DETAILED DESCRIPTION

Existing deduplication methods can summarize or prioritize a news feed based on content-focused criteria, such as matched character strings in new and previously presented content. The present disclosure provides a method for deduplicating and prioritizing content based on user-knowledge criteria. Embodiments disclosed herein build a user-specific knowledge store that can be used to gauge the importance and novelty of incoming information and content sources to a particular user based on what the user has likely learned before. As used herein, the term “user” is not limited to contemplating a human user consuming content. The term “user” can also include, for example but without limitation, an automated agent that receives an influx of content elements and determines whether or not to read those content elements.

FIG. 1shows a block diagram of a computing environment100, in accordance with an embodiment of the present invention.FIG. 1is provided for the purposes of illustration and does not imply any limitations with regard to the environments in which different embodiments can be implemented. Many modifications to the depicted environment can be made by those skilled in the art without departing from the scope of the invention as recited in the claims.

Computing environment100includes computing device104, which can be interconnected with other devices (not shown) over network102. Network102can be, for example, a telecommunications network, a local area network (LAN), a wide area network (WAN), such as the Internet, or a combination of these, and can include wired, wireless, or fiber optic connections. In general, network102can be any combination of connections and protocols that will support communications between computing device104and other computing devices (not shown) within computing environment100.

Computing device104can be any programmable electronic device capable of executing machine-readable instructions, communicating with other devices over network102, and presenting information to a user via a user interface. Computing device104includes user interface106, information recipient108, filtering component110, and stored information112. Computing device104can include internal and external hardware components, as depicted and described in further detail with reference toFIG. 4.

User interface106provides an interface between a user of computing device104and computing device104. User interface106can be, but is not limited to being, a graphical user interface (GUI) or a web user interface (WUI) and can display text, documents, web browser windows, user options, application interfaces, and instructions for operation, and can include the information (such as graphic, text, and sound) presented to a user and the control sequences the user employs to control information recipient108and/or filtering component110.

Information recipient108is a software agent that receives content for consumption by a user of computing device104. Information recipient108can, for example but without limitation, receive information from an individual content stream (e.g., social media micro-documents such as tweets or posts from Twitter or Facebook) or news articles from a news API.

Filtering component110performs steps of a personalized content filtering method, as described herein with reference toFIG. 2. For example, filtering component110can interact with information recipient108to determine which information is displayed on user interface106and how the information is displayed.

Methods well known in the prior art allow filtering component110to identify that incoming information, also referred to herein as “content,” which can be for example but without limitation a news article, a tweet, a video, or a podcast, is part of an identified story arc. A story arc is a topic that the user wishes to follow (e.g., a topic about which the user wishes to receive up-to-date information), such as but not limited to a breaking news story or a hashtag (e.g., “Election 2016,” “Taylor Swift,” “#QOTD”). A user can also designate, by interaction with user interface106, a topic of interest that the user wishes to follow.

Filtering component110filters content received by information recipient108based on a user's personal knowledge history, as contained in stored information112. Stored information112can be located entirely or in part on computing device104, or stored information112can be located remotely on other devices (not shown), such as but not limited to a server, within computing environment100. Stored information112comprises a user-specific knowledge store114and novelty score information, as described herein.

Knowledge store114includes one or more user-specific knowledge representations, also referred to herein as “knowledge graphs” or “personal knowledge graphs,” which are based on the user's personal content consumption history. Natural language processing methods employed by, for example, IBM's Relationship Extraction Service (SIRE) can be used to generate a personal knowledge graph for a specific user and a specific story arc. Filtering component110extracts pieces of information such as but not limited to entities, relationships, and facts from content accessed by the user and populates the user's personal knowledge graph with one or more of the pieces of information. Entities are, for example but without limitation, institutions and public figures. Relationships are, for example but without limitation, connections between entities, such as but not limited to “born in” and “works for.” Facts are, for example but without limitation, relationships between two or more entities. Illustrative examples of entities, relationships, and facts are described herein with reference toFIG. 3A-C.

Filtering component110can determine, based on the user having accessed content, that the user has consumed (learned) all of the information in that content, or filtering component110can employ additional mechanisms to determine which information the user has likely learned, and therefore which information can be added to the personal knowledge graph. For example but without limitation, filtering component110can determine that only information shown in the viewport on user interface106can be added to the personal knowledge graph; if computing device104is equipped to track eye movements, filtering component110can determine which information can be added to the personal knowledge graph based on eye tracking data; or filtering component110can determine that only information that the user selects by a manual choice mechanism, such as highlighting by interaction with user interface106, can be added to the personal knowledge graph. Other exemplary but non-limiting factors can include the time that the user spent reading content, or the user's posting of a link to the content elsewhere online.

Filtering component110can also, for example, determine a confidence level with respect to a particular piece of information, wherein the confidence level reflects the fidelity of the mechanism (e.g., eye tracking, highlighting) employed to determine that the user has learned the piece of information.

The first time that a user accesses content relating to a particular story arc, filtering component110builds an initial personal knowledge graph based on the information extracted from the content. As the user accesses (consumes) additional content relating to the same story arc, which can include but is not limited to including clicking on a headline to read an article, scrolling through headlines or summaries, listening to a podcast, and clicking on a link to a video received in an email message, filtering component110updates the personal knowledge graph.

Filtering component110determines the novelty, which can be represented by a novelty score, of incoming content that the user has not accessed based on the personal knowledge graph. For example, filtering component110can determine that if the content contains a new entity; a new relationship; or a new fact (e.g., a relationship that is not represented in the personal knowledge graph between a pair of entities that is represented in the personal knowledge graph), such as an additional fact or a contradictory fact, the novelty score for that content increases. If, for example, filtering component110determines that the incoming content contains no new information, filtering component110can assign a novelty score of ‘0’ to the content.

Filtering component110can also calculate cumulative novelty scores for content sources, including but not limited to news outlets and personal contacts on social media, over time. For example, a cumulative novelty score for a content source can be based on a ratio of new facts extracted from articles from that content source over new facts extracted from all content sources by filtering component110over a defined period of time. Cumulative novelty scores can also be based on, for example but without limitation, veracity based on the number of retweets or upvotes; the browsing habits of the user; user feedback regarding novelty, such as clicking a ‘seen it’ or ‘learned something new’ button; the nature of the source, such as a breaking news source that provides up-to-the-minute information, a source that provides evergreen content such as cat videos, or an aggregator source that only repeats information available elsewhere; and user input indicating a preference for a particular author. Filtering component110can use cumulative novelty scores to generate, for example, ratings and/or rankings of authors and/or other content sources.

Filtering component110uses the individual and relative novelty scores of incoming content and/or the cumulative novelty scores of content sources to display, suppress, and/or prioritize (or, generally, “filter”) incoming content. For example but without limitation, filtering component110can determine that incoming content with a high novelty score can be displayed to the user via user interface106; filtering component110can organize incoming content in a news feed based on the cumulative novelty scores of the content sources; and filtering component110can suppress incoming content with a novelty score of ‘0’. Suppressing content can include, for example but without limitation, hiding the content from view on user interface106, or relegating the content to the end of a list of headlines displayed on user interface106.

FIG. 2is a flowchart200depicting operational steps of a personalized content filtering method, in accordance with an embodiment of the present invention.

In step202, filtering component110monitors a user accessing content, extracts information from the content, and determines one or more story arcs based on the content. Filtering component110extracts, for example, entities, relationships, and facts from the content. Based on, for example, user input to computing device104indicating a story arc (e.g., “cute baby animals”) or filtering component110identifying overlapping information in the content and the existing personal knowledge graph for an identified story arc, filtering component110determines a story arc that the user wishes to follow.

In step204, filtering component110builds or modifies one or more personal knowledge graphs for the one or more story arcs based on the extracted information. For example, filtering component110builds a new personal knowledge graph, to be stored in knowledge store114, for a newly identified story arc, or filtering component110adds relevant, new information extracted from the content to a personal knowledge graph that already exists in knowledge store114for a previously identified story arc. New information can be, for example, an entity, relationship, or fact extracted from the content that is not already represented in the personal knowledge graph.

In step206, filtering component110receives new content and determines that the user has not accessed the content. New content can be, for example, a headline or a tweet that has not yet appeared on user interface106.

In step208, filtering component110determines a novelty score for the new content based on prospective changes, due to addition of information extracted from the new content, to the user's personal knowledge graph(s). For example, based on a comparison of one or more personal knowledge graphs stored in knowledge store114to one or more prospective knowledge graphs based on the addition of entities, relationships, and facts extracted from the new content, filtering component110determines a novelty score for the new content.

In step210, filtering component110displays or suppresses the new content based on the novelty score determined in step208and/or a cumulative novelty score. For example, based on a low novelty score, filtering component110can relegate the new content to the end of a list of headlines displayed on user interface106, or based on a high cumulative novelty score, filtering component110can prioritize the new content, organizing the list in such a way that the new content appears toward the top of the list.

In step212, filtering component110updates one or more cumulative novelty scores based on the novelty score determined in step208. For example, filtering component110can update the cumulative novelty score of an author of the content and the cumulative novelty score of a news outlet that provided that content.

FIG. 3A-Cshows examples of knowledge graphs that can be stored in knowledge store114and accessed and modified by filtering component110, in accordance with an exemplary embodiment of the present invention. The example inFIG. 3A-Cfollows story arcs related to a fictitious event in Toronto, Ontario, used here for the purpose of illustration, from the perspective of a hypothetical user, named John, of computing device104.

FIG. 3Ashows John's personal knowledge graph, referred to herein as preliminary knowledge graph300(FIG. 3A), after accessing a first article concerning the arrest of Jane Jones, a member of the internationally famous Prankster Group, for vandalism at the CN Tower in Toronto. Preliminary knowledge graph300shows the entities and relationships related to Jane Jones and the Prankster Group and extracted by filtering component110from the first article. The first article (not shown) states that “Jane Jones, a Hamilton-based member of the Prankster Group, was arrested this week for vandalism at the CN Tower, having caused damage to property in the process of putting up an art installation intended as an act of protest.” Nodes302-316of preliminary knowledge graph300represent entities (e.g., “Jane Jones,” “CN Tower”) and connections318-330represent relationships between nodes302-316(e.g., “Agent Of,” “Resides In”) related to Jane Jones. Nodes332-334represent facts and entities related to the Prankster Group, and connection336represents a relationship between node332and node334.

FIG. 3Bshows prospective knowledge graph340constructed by filtering component110upon arrival of a second article (not shown), for comparison with preliminary knowledge graph300(not shown) in order to determine a novelty score for the second article. The second article contains information that was not included in the first article, such as previous acts that the Prankster Group committed in Vancouver. Nodes342-350represent the new entities extracted from the second article and connections352-360represent relationships between nodes342-350. Prospective knowledge graph340does not replace preliminary knowledge graph300as John's personal knowledge graph unless John accesses the second article.

FIG. 3Cshows prospective knowledge graph370constructed by filtering component110upon arrival of a third article (not shown). In this example, John has accessed the second article, and prospective knowledge graph340has replaced preliminary knowledge graph300as John's personal knowledge graph. Connection372represents a relationship that was not included in the first and second articles. Filtering component110uses prospective knowledge graph370for the purpose of determining the novelty of the third article. Prospective knowledge graph370does not become John's personal knowledge graph unless John accesses the third article.

FIG. 4depicts a block diagram400of components of computing device104in computing environment100, in accordance with illustrative embodiments of the present invention. It should be appreciated thatFIG. 4provides only an illustration of one implementation and does not imply any limitations with regard to the environments in which different embodiments may be implemented. Many modifications to the depicted environment may be made.

Memory406and persistent storage408are computer readable storage media. In this embodiment, memory406includes random access memory (RAM) and cache memory414. In general, memory406can include any suitable volatile or non-volatile computer readable storage media. Cache414is a fast memory that enhances the performance of computer processor(s)404by holding recently accessed data, and data near accessed data, from memory406.

Communications unit410, in these examples, provides for communications with other data processing systems or devices. Communications unit410can include one or more network interface cards. Communications unit410can provide communications through the use of either or both physical and wireless communications links. Component(s)416can be downloaded to persistent storage408through communications unit410.

I/O interface(s)412allows for input and output of data with other devices that may be connected to computing device104. For example, I/O interface412can provide a connection to external devices418such as a keyboard, keypad, a touch screen, and/or some other suitable input device. External devices418can also include portable computer readable storage media such as, for example, thumb drives, portable optical or magnetic disks, and memory cards. Software and data used to practice embodiments of the present invention, e.g., component(s)416, can be stored on such portable computer readable storage media and can be loaded onto persistent storage408via I/O interface(s)412. I/O interface(s)412also connect to a display420.

Display420provides a mechanism to display data to a user and may be, for example, a touchscreen.