US20210382953A1 - Methods and systems for adjusting self-tuning personalization engines in near real-time - Google Patents
Methods and systems for adjusting self-tuning personalization engines in near real-time Download PDFInfo
- Publication number
- US20210382953A1 US20210382953A1 US16/538,491 US201916538491A US2021382953A1 US 20210382953 A1 US20210382953 A1 US 20210382953A1 US 201916538491 A US201916538491 A US 201916538491A US 2021382953 A1 US2021382953 A1 US 2021382953A1
- Authority
- US
- United States
- Prior art keywords
- user
- personalization
- content
- website
- presentation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000004458 analytical method Methods 0.000 claims abstract description 24
- 230000003993 interaction Effects 0.000 claims abstract description 15
- 230000002452 interceptive effect Effects 0.000 claims description 3
- 230000009471 action Effects 0.000 description 34
- 230000006399 behavior Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 24
- 230000000875 corresponding effect Effects 0.000 description 19
- 238000004364 calculation method Methods 0.000 description 17
- 238000012545 processing Methods 0.000 description 9
- 238000000605 extraction Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 210000003813 thumb Anatomy 0.000 description 3
- 238000012800 visualization Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003247 decreasing effect Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000009474 immediate action Effects 0.000 description 1
- 230000003116 impacting effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000004091 panning Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 238000007790 scraping Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 230000003442 weekly effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/134—Hyperlinking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/906—Clustering; Classification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04847—Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/197—Version control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
Definitions
- the present invention relates to filtering and classification of data. More specifically, the present invention relates to filtering and classifying data used as a component in artificial intelligence-based personalization systems.
- RSS Rich Site Summary
- an embodiment of the present invention provides an interface control device for a computer system configured to provide personalized website content to a user.
- the computer system includes a database for storage of data representative of the user's interaction with existing content presented on the website and one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions.
- the personalized segments represent a plurality new content categories for presentation to the user via the website.
- the interface control device includes a graphical user interface (GUI) configured to allow the user to control presentation of the new content and an adjuster permitting the user to control presentation of selective ones of the personalized segments between a range of values.
- GUI graphical user interface
- a suitable online platform such as a dynamic news website, is populated with relevant multimedia content of interest to a consumer or user.
- This content is correlated with weighted maps or histograms of related nodes or entities and the relations in between. These maps are used to create and adjust profiles associated with the user's content interaction activity.
- the resulting user related maps are stored in a database, such as a graph database, where existing entity weights are adjusted, and where new weighted entities are added based upon the user's continued interactions.
- the nodes and entities are individually analyzed, including their associated data, for an estimate of relevant value of each word to a given consumer.
- the results are the individual's intent profile, which continues to evolve over time as additional information is added to it.
- a database of documents is analyzed on a standalone basis: either via scraping websites for articles, RSS feeds or other text delivery internet methods. These documents are likewise parsed, and entities extracted in the creation of a profile of each document. The profiles for each document are then compared against the consumers profiles and are ranked based on similarity or using more advanced techniques such word distance.
- Embodiments of the present invention then permit the data to be collected in the profile substantially in real-time. Further, the data can be presented and viewed and then edited with the ability to determine the intensity and the sentiment—from negative—to positive, with neutral in between. The updated data is saved into the profile, thereby impacting the relevancy of the ranking for the content to be recommended.
- the profile is being constantly updated via passive information as the user searches and interacts with content and commerce. This inferred approach impacts the profile but the individual weightings are not as great as the results of user selectable fine tuning.
- FIG. 1 illustrates an example graph database structured to form a content personalization model in accordance with embodiments of the present invention.
- FIG. 2 illustrates a more detailed view of the personalization model graph database illustrated in FIG. 1 .
- FIG. 3 illustrates a more detailed view of the content personalization model graph database of FIG. 2 in accordance with the embodiments.
- FIG. 4 illustrates a further detailed view of the content personalization model graph database of FIG. 3 .
- FIG. 5 is a tabular illustration of example personalization types mapped with the personalization engines depicted in FIG. 4 .
- FIG. 6 depicts an example profile of interest DNA (PIDNA) user interface tool constructed in accordance with the embodiments.
- PIDNA profile of interest DNA
- FIG. 7 illustrates an example summary of a user's personalization profile created in accordance with the embodiments.
- FIG. 8 illustrates a sample use case of an example slider interface tool permitting a user to fine tune the summary depicted in FIG. 7 .
- FIG. 9 illustrates another sample use case of the slider interface tool depicted in FIG. 8 .
- FIG. 10 is a flowchart an exemplary method of practicing an embodiment of the invention.
- FIG. 11 illustrates one example of a non-generic computer system configured for implementing the embodiments.
- the embodiments include (or assumes the presence of) a personalization or recommendation engine (the terms are used inter changeably throughout).
- the personalization engine uses artificial intelligence (machine learning) in the area of textual analysis to identify the media with which one interacts (scrolls, clicks or and includes other personal information). Once the media document that is interacted with is identified, a text parser is used to separate the words. The words are then fed into an entity extraction application—which identifies the major entities (mostly proper nouns) by comparing the parse text against a dictionary (database) of proper nouns/known entities.
- entity extraction application which identifies the major entities (mostly proper nouns) by comparing the parse text against a dictionary (database) of proper nouns/known entities.
- a consumer using the system will be able to directly customize the personalization system, altering the recommendation results via an interface for the manipulation of data that is being accumulated on the consumer, in near real-time.
- Additional embodiments provide customization of the personalization process by not only type or kind, but also by degree or intensity of like or interest. The results of the customization immediately impact the ranking of the content or commerce offering that is recommended to the user, in essence being real-time, or near real-time.
- embodiments of the present invention present a new way of transforming and displaying a personalization profile for the ease of data management and to provide an easier viewing and comparing format for mobile devices.
- FIG. 1 illustrates an example graph database 100 structured to form a content personalization model in accordance with embodiments of the invention.
- the graph database 100 stores and maps structures (i.e., nodes and links) that define queries and relationships that are interconnected represent the user's content related interests.
- the structures stored and mapped in the database 100 also define the type of information that can be stored in the graph database 100 and the corresponding functionality that can be extracted therefrom. This information and functionality are fundamental to creation of the personalization models described below.
- the graph database 100 , and personalization models derived therefrom, provide several ultimate user implementation benefits. Among these many benefits are providing interactive website content personalization and customization. Dynamic news websites are merely one example of where these user benefits can be realized and appreciated.
- each of the circles shown is a node representing key objects being tracked when performing personalization.
- the lines (i.e., links) between the nodes (and their corresponding arrows) are relations that represent an understanding of how the nodes relate to each other.
- These links such as link 104 between the user 102 a and the source 102 b , are developed and created in near real-time, as the user 102 a interacts, as one example, with an interactive personalized news website.
- the links can be created based on the user's explicit actions, as well as the user's implicit behaviors.
- a sample personalized news website referred to herein as “slim-spider” (not shown) may ask the user one or more questions, such as “do you like this particular news source,” “do you believe this article was useful?” The user's responses to these, or similar questions, represents the user's explicit actions.
- Slim-spider's personalization engines also monitor the user's implicit behaviors, such as specific links the user clicks on to read the article and/or the particular source of the link and article. User explicit actions and implicit behaviors are discussed in greater detail below.
- the website's personalization engine may observe the user routinely chooses a particular source, such as USA Today, which for filtering purposes, the user will not be asked “do you like this?” Alternatively, the personalization engine may observe that the user never clicks on USA Today, or they tend to filter USA Today.
- These, or similar actions represent the user's implicit behaviors. These are the types of explicit actions and implicit behaviors that create the links between users, between topics, between articles, or between various iterations thereof. Consider the following detailed example shown in FIG. 2 .
- FIG. 2 illustrates a more detailed view 200 of the graph database 100 illustrated in FIG. 1 .
- the user 102 a logs into the sample Slim-Spider website and clicks on the article 102 c related in part to President Donald Trump. More specifically, for purposes of illustration, the title of the article 102 c is “Peace Talks with North Korea Planned,” and the source 102 b of the article is “USA Today.”
- the user 102 a clicks on a hyperlink on the Slim-Spider website for the article 102 b several things happen.
- the personalization engines (discussed in detail below) initially create a fairly weak link (i.e., the relation 104 ) between the user 102 a and the USA Today source 102 b .
- the link 104 between the user 102 a and the source 102 b is captured in the database 100 by a numerical value, or floating-point number, between zero (0) and one (1).
- a small numerical value such as 0.0001 (not shown) is assigned to represent a strength or weighting of the relation 104 .
- the length of lines between a category and a topic may also be indicative of the level of interest or strength. For example, the relatively long line between the category 102 e (politics) and the topic 102 f (Trump) indicates a high numerical value, and correspondingly higher weight of member_of link 214 .
- the relation 104 is referred to as “interested_in” personalization link 229 , having a dark gray (user implicit) box in FIG. 2 .
- the dark gray box corresponds with the user implicit engine 238 , shown to the right, and discussed in more detail below.
- the “interested_in” link 229 enhances the connections and visualizations captured in the graph database 100 .
- the interested_in link 229 depicts a type of weighting represented by the numerical value of the relation 104 conveying “we noticed that you clicked on the article 102 c ,” in response to the implicit behavior of the user 102 a.
- a link 106 is established between the source 102 b (USA Today) and the article 102 c (Peace Talks with North Korea Planned).
- the developing personalization of the sample Slim-Spider website now has two relations: 104 and 106 .
- Part of the process for completing the personalization includes the personalization engine performing textual analysis on all the articles it collects and that users may ultimately end up reading.
- Tracking of the nodes and creation of the links is the heart of a first portion of the personalization process—initiated by the user's interaction (e.g., user explicit actions and implicit behaviors).
- the first portion occurs while the user is online and in near real-time and involves the use of several personalization engines.
- a second portion of the personalization process occurs afterwards, off-line.
- the second portion also includes the combined functionality of several personalization engines. More specifically, separately and independently, occurring after the user 102 a has concluded their current Slim-Spider web session, several processes continue to run on the website off-line.
- the off-line processes collect information covering a variety of different topics. In furtherance to the user 102 a 's explicit actions and implicit behaviors. These processes, triggered by the user's now concluded web session, attempts to understand the user's actions and behaviors that occurred during the web session, more deeply. These processes also seek to identify users similar to the user 102 a and identify articles similar to articles the user 102 a interacted with.
- off-line processes occur on multiple levels and collect articles and other information on topics such as Trump, bit coins, sports, cars, etc.
- the collections occur using topline sources, and watches to define additional relationships.
- topline sources the personalization engines go to all topline news sources and attempt to capture every new available article on each topic. Watches represent criteria people establish to watch for a specific trend, such as politics, sports, or similar.
- the sample Slim-Spider news website performs content queries on those topics or watches (i.e., criteria) the user has created. Accordingly, the news website will specifically seek “Trump” and “Lebron James” related information. In addition to new information that emerges on Trump and Lebron James, there is an ongoing historical backfill that occurs on those trends.
- An additional feature permits searches of older articles about Trump and Lebron James via a calendar control that enables searching for any terms, back to a specific year and day. The purpose of such a search would be to determine what articles appear, for those particular terms, the specific year and day specified.
- one of the personalization engines that conducts the separate and independent processes discussed above is compute engine 230 (e.g., light gray background).
- the compute engine 230 performs computations necessary to define relationships and links that are stored in the graph database 100 during the off-line processes above.
- the compute engine 230 is the primary news gathering engine and one of the several personalization engines that combine functionality to provide content personalization. Every article a user will encounter is eventually analyzed, at some level, by the compute engine 230 . That is, whenever a user queries or interacts with a new article, the compute engine 230 adds that article to the database 100 . Subsequent to storage in the database 100 , the links created by the compute engine 230 are only computed once and are not re-computed, or revised, by the compute engine 230 .
- the compute engine 230 essentially collects new articles related to the user's Slim-Spider web sessions and adds them to the graph database 100 .
- a new article is received, such as the article 102 c (Peace Talks . . . )
- the entity extraction feature, performed by the compute engine 230 determines that the Trump is a topic related to the article 102 c (Peace Talks . . . ).
- An “is about” link 210 d is calculated between the article 102 c and politics category 102 e .
- the strength of the “is about” link is also immediately calculated—on the spot, in near real-time. As noted earlier, these calculations determine relations between topics and articles and are only performed once, in the absence of human intervention.
- An analytics engine 232 (e.g., zigzag pattern), also shown in FIG. 2 , performs calculations that determine relations, or similarities, between users.
- the analytics engine 232 performs its calculations during certain times of the day, several times per day, or several times per week, etc.
- the analytics engine 232 analyzes all news articles collected by the compute engine 230 , and that are sequentially stored in the graph database 100 , to determine how the articles relate to each other.
- the analytics engine 232 analyzes the articles independently and within the context of the explicit actions and implicit behaviors of users interacting with the articles. For example, the analytics engine 232 may evaluate the explicit actions and implicit behavior of one user and compare those actions and behaviors with several other users and analyze other factors to determine similarities, the users.
- An analytics cycle engine 234 (e.g., vertical line pattern) also computes, among other things, links representing user/user similarities and article/article similarities. These links are used for specific types of recommendations and are recomputed as frequently as possible.
- a fundamental assumption behind the analytics cycle engine 234 is that the user 102 a (any user) would consider a recommendation from another user, similar to themselves, to be relevant. The greater the similarities between the other user to the user 102 a , the greater the relevance the user will give the recommendation of the other user.
- the analytics cycle engine 234 can perform computations throughout the day to analyze data relevant to similarities.
- the analytics cycle engine 234 may analyze current interests of the user 102 a , and user 406 and calculate, based on various factors, how similar those interests are. It may also adjust the numerical weight, assigned to the corresponding link, several times per day, weekly, monthly. The timeframe of these calculations is variable.
- the exemplary analytics cycle engine 234 provides a unique approach to analyzing both the explicit and implicit behaviors of users, and other factors to recalculate the strength of related links over time, and identify users that are objectively more similar, based on more relevant traits.
- a user explicit engine 236 (e.g., horizontal pattern) permits instant action on user explicit actions.
- a user implicit engine 238 (dark gray solid color) permits instant actions on user implicit behaviors.
- an on-demand function connected to a content server, captures the user's immediate actions and adds those actions to the graph database 100 .
- the user explicit engine 236 or the user implicit 238 engines respectively calculate a relational link and adds that calculated link to the graph database 100 .
- the administrative manual engine 240 (e.g., diagonal stripe pattern) provides the human intervention mentioned above; a human in the loop concept; a team of administrative people that might may be able to subtleties or nuances in an article. These nuances and subtleties may not be recognizable by a computer.
- the idea behind the human in the loop concept is that a human can perhaps over-ride, or tweak, a recommendation.
- entity extraction one of the off-line processes it performs is referred to herein as entity extraction.
- entity extraction specific elements of the article are extracted, such as the names of individuals, locations, company names, etc.
- the purpose of the entity extraction is to understand, on a deeper level, the underlying purpose of a particular article.
- An additional off-line process performed by the compute engine 230 is textual analysis.
- textual analysis is a technique to analyze the content, structure, and functions of the messages contained in texts or visual images.
- the compute engine 230 performs a textual analysis on every article it collects as a result of articles the user 102 a interacts with either explicitly or implicitly.
- Sentiment analysis is performed for all keywords extracted from articles identified during the off-line processes to understand whether the article's sentiment is positive or negative with respect to the keyword. For example, with Trump, this can be an article that is a pro-Trump, or it could be an anti-Trump article. From the standpoint of understanding what the user's interests are in the personalization model, it may be important to know whether the user is reading pro-Trump articles or anti-trump articles.
- the entity extraction, textual analysis, and sentiment analysis, performed by the compute engine 230 builds light gray colored personalization links (relations) 210 a - 210 e illustrated in FIG. 2 , which match the background color of the compute engine 230 depicted in FIG. 2 .
- the “is_about” feature Within the personalization links 210 a - 210 e is the “is_about” feature, provided to establish that a particular article is about a given topic.
- the “is_about” feature may establish that a particular article is about Trump, which is a keyword extracted from the article that aids recognition of what the article is about.
- the “is_about” feature is desirably added to the graph database 100 to enhance the personalization accuracy of the database.
- the accuracy of the database 100 can be enhanced by recognizing by adding these underlying relations in a manner similar to the “interested in” feature above.
- a corresponding numerical value would similarly be assigned to each of the “is_about” links 210 a - 210 e , with respect to a relation between the depicted articles (Peace Talks . . . , Clinton, and Jobs Report) and the respective topics (Sarah Huckabee Sanders, Hillary Clinton, and Trump).
- the numerical value, noted above, and assigned to each link represents the level of confidence in the assessment that the article is actually about the topic.
- the link 210 b indicates the article 102 c (Peace Talks with North Korea Planned) “is_about” the topic of topic Trump 102 f .
- the article could be several paragraphs about North Korea with one sentence about Trump.
- the “is_about” link would represent a very weak relation and would have a correspondingly low numerical value. If it mentions Trump a significant number of times and provides more information about the topic, the link would be stronger, and its numerical value would correspondingly be higher.
- each of the light gray colored links 210 a - 210 e also includes a small diagonal stripe pattern portion.
- the link 210 a includes a light gray portion 216 corresponding to the compute engine 230 .
- the link 210 a also includes a diagonal stripe pattern portion 218 corresponding to the admin manual engine 240 .
- the pattern portion 218 is better described below, in the description of FIG. 3 .
- FIG. 3 is a more detailed view 300 of the graph database 200 depicted in FIG. 2 .
- the compute engine 230 also depicted in FIG. 3 , at least in-part, creates “related_to” links 212 a - 212 c , “member_of” link 214 , and contra link 220 .
- the “related_to” links 212 a - 212 c establish whether, and to what extent, one topic might relate to another topic.
- the member_of link 214 determines if, and to what extent, the Trump topic 102 f falls within the politics category 102 e.
- the is_about link 210 a includes the larger light gray solid colored portion 216 and the much smaller patterned (diagonally striped) portion 218 .
- This, combined color/pattern arrangement indicates that most of the link 210 a , about 85%, was determined by the compute engine 230 . However, about 15% of the link 210 a is calculated by the administrative manual personalization engine 240 .
- a human using another interface via the admin manual personalization engine 240 , adjusts, tweaks, and/or strengthens the underlying relationship 210 a .
- These manual adjustments may be desirable because of the possibility that certain types of relations can sometimes be hard to determine and/or the algorithms calculating the link can be prone to error.
- the user may desire results that are distinctly different from recommendations and preferences based on the user's profile. Specifically, the user may desire contra-PersonalizationTM.
- the contra_link 220 includes a mix of calculations from the compute engine 230 and the admin manual processing 240 engine, and provides contra personalization.
- the contra_link 220 is independent of related_to links (e.g., the link 212 c ). While contra relationships are created automatically, as depicted in the example of the contra_link 220 , contra links also permit manual adjustments. These manual adjustments will also generate contra-personalized recommendations. Thus, automatic and manually adjusted contra recommendations are both possible and part of the embodiments.
- Contra-personalization includes recommending articles, for example, that are outside the sphere of articles the user would predictably prefer and repeatedly read. Contra-personalization enables the user to escape their so-called echo chamber by providing a type of filtering where the user receives articles from a different perspective or a different point of view. Since contra-personalization is calculated primarily by the administrative manual engine 240 , humans can tweak or manually adjust the weights between the links to enhance their reliability.
- the “is_about” links 210 a - 210 e , “related_to” links 212 a - 212 c , “member_of” link 214 , and “contra” link 220 that include both the solid color and diagonal stripe pattern background provide a type of multi-factored processing, and an integration of man-machine cooperation.
- the processing is performed by the admin manual engine 240 , and the compute engine 230 and create a single link between two nodes. In other situations, involving links related to users, the embodiments can use separate processing engines to create multiple completely independent links (of the same type) between two nodes, as illustrated in FIG. 4 .
- FIG. 4 illustrates an even more detailed view (personalization model) 400 of the graph database view 300 in FIG. 3 , in accordance with the embodiments.
- FIG. 4 consider user node 406 and topic node 102 g . These two nodes are connected by completely independent “interested_in” links 408 and 410 . That is, the “interested_in” link 408 was calculated by the analytics cycle engine 234 while the “interested_in” link 410 was calculated independently by the user explicit engine 236 . In other words, “interested_in” is both explicit and recomputed regularly by watching actual behavior.
- FIG. 5 is a table 500 of example personalization types mapped with the personalization engines depicted in FIG. 4 .
- a vertical column in the table 500 contrasts several personalization types 502 with a horizontal column 504 including personalization engines.
- the user explicit engine 236 and the user implicit engine 238 perform instant personalization.
- the compute engine 230 , analytics engine 232 , analytics cycle engine 234 , and the admin manual engine 240 all perform the intra-session and extra-session personalization, as illustrated in FIG. 5 .
- Instant personalization includes actions that can immediately be calculated and/or tweaked, from one click to the next, and can be changed instantly, in real-time or near real-time.
- the server processes that action immediately and stores its corresponding data in the graph database 100 .
- a significant challenge in performing real-time personalization is reducing the amount of computing required when a user clicks on an image or opens a new webpage.
- the desire, as with instant personalization discussed above, is that when the user clicks on the image or opens the new webpage, that the very next thing they see should be different—that the responses to their actions be instantaneous.
- some of the resulting calculations can be computationally expensive, for example, comparing one user to other users, or one topic to other topics, these operations and calculations can be time intensive and expensive.
- the entity extraction, textual analysis, and sentiment analysis performed by the compute engine 230 are designed for “off-line” execution to facilitate application of additional processing power.
- These processes can be segmented, or sub-divided, into a number of smaller processes that can all desirably be completed before the user finishes their current web session or exits an application. That is, before the user clicks away to a new website, the personalization engines will have created and provided the user with one or more new recommendations.
- Extra-session personalization refers to calculations performed between a user's last web session (e.g., last month, last week, or yesterday) and their current web session (e.g., today). That is, between their last web session and the next time the user logs on, additional calculations have been performed by the personalization engines and one or more new recommendations are ready to be provided. These tasks can be the most computationally expensive.
- the personalization engines may have analyzed the user explicit actions and user implicit behaviors of millions of other users that interacted with the same links as the user of interest, since that user's last visit, one month ago. Analyzing such a large number of behaviors and actions would require an analysis of many different factors in a variety of categories. As such, the computational and time requirements to complete the analysis could potentially be enormous.
- similarities between the user 102 a and the user 406 can be created via the analytics cycle engine 234 with a relatively high strength and weight using extra-session personalization.
- the user explicit engine 236 and the user implicit engine 238 instantly capture all the interactions the user 102 a had with the articles and other information, and immediately store that information in the graph database 100 .
- the analytics cycle engine 234 After the user 102 a logs out of the web browsing session, the analytics cycle engine 234 performs similar functions (storing user explicit actions and user implicit behaviors) related to additional users, perhaps millions of additional users, and up to thousands or millions of other data points. This analysis is performed until the user 102 a logs onto the website (e.g., Slim-Spider) for the next, or ensuing, web session, perhaps several weeks later.
- the website e.g., Slim-Spider
- the analytics cycle engine 234 creates a similarity link 407 (e.g., vertical pattern) between the user 102 a and the user 406 , and immediately assigns a weighting value.
- a similarity link 407 e.g., vertical pattern
- any recommendations provided to the user 102 a from the user 406 may carry more relevance than recommendations from other nodes or entities. Accordingly, any topics the user 406 might be interested in, such as the topic 102 g , may also be relevant to the user 102 a.
- the multi-level processing example is particularly helpful in creating links connecting users to nodes or other entities.
- the user 406 had a strong interest in the topic 102 g Sarah Huckabee Sanders (i.e., presidential candidate Donald Trump) five weeks ago. Four weeks ago, however, presidential candidate Donald Trump lost the election.
- the user 406 has not clicked a thumbs up, given a positive swipe, or provided a 5-star rating to any article about the topic 102 g within the last four weeks.
- the user 406 Although the user 406 said things and did things four weeks ago, indicating a strong interest in the topic 102 g , that strong interest is no longer valid. Additionally, the user explicit “interested_in” link 410 cannot capture sudden lack of interest the user 406 is now expressing toward the topic 102 g , as the user's interest decays or evolves.
- the analytics cycle engine 234 can capture this evolution in the interests and behavior of the user 406 .
- the analytics cycle engine 234 can collect more data over several days. Since the user 406 is no longer interacting with articles relevant to Donald Trump, the topic 102 g is no longer as relevant in terms of recommendations. Accordingly, over time, the weight of the link 408 between the user 406 and the topic 102 g , will also decay. That is, as the user 406 ceases to interact with articles over time, the analytics cycle engine 234 will detect this diminished level of activity and will adjust the strength of the corresponding link. The analytics cycle engine 234 performs these calculations only, once in relation to the link 408 between the user 406 and the topic 102 g , unless the link 408 is tweaked by the user admin engine 240 .
- the analytics engine 232 may perform calculations to create a slightly different type of similarity link 404 (relating an article to an article).
- an article 402 is entitled “Syrian President to Meet Kim Jong Un in North Korea”.
- the compute engine 230 collected the article 402 , as a new article, one month ago.
- the article 102 c (Peace Talks with North Korea Planned) was collected five minutes ago.
- there is a separate analytics process performed by the analytics engine 232 that attempts to relate all new articles to past articles previously stored in the database 100 .
- the separate analytics function is primarily performed by the analytics engine 232 , which relates and finds relations between new articles based on how similar they are in their content, etc.
- the analytics engine 232 begins finding articles using techniques described above understood by those of skill in the art, it begins recommending articles to the user.
- the analytics engine 232 never attempts to recompute the similarities between those articles.
- An additional feature depicted in FIG. 4 referred to herein as “read-with” 430 can be used to kickstart calculations of the similarity link 404 , along with a straight comparison of topic overlap.
- FIG. 6 depicts an example profile of interest DNA (PIDNA) user interface, for example, graphical user interface (GUI) tool 600 , constructed in accordance with the embodiments.
- the PIDNA bar 600 provides the user with a graphical summary of news categories or information categories corresponding to the user's personalization interests.
- An adjustments bar 601 enables the user to personalize the data represented in the PIDNA bar 600 in the various categories 602 .
- the adjustments bar 601 is depicted as being associated with the PIDNA bar 600 , its portability can be extended to the broader personalization model 400 .
- the PIDNA bar 600 is constructed in the form of slivers 602 - 622 , each representing an entity, such as a news categories, or information categories, corresponding to the user's personalization preferences.
- the PIDNA bar 600 provides the user with a visualization of the user's interests relative to a size (e.g., width) of the slivers 602 - 622 .
- a size e.g., width
- Increasing or decreasing the width of one of the slivers (e.g., sub-entities) 602 - 622 changes the relative interest in that category which may translate into more or fewer articles in the category of the personalization model 400 .
- the corresponding sliver will automatically narrow. If the user reads more of a particular category, the corresponding sliver will widen.
- the PIDNA bar 600 indicates that the user has significant interests in politics 608 , technology 620 , crime 616 , sports 606 , etc. Further, tapping directly on a sliver, such as the politics sliver 608 , enables the sliver to become an interface to perform a category keyword search. Panning over a sliver may increase the width of the sliver and reveal additional subcategories and controls. This interface feature, via the PIDNA bar 600 , makes the underlying content personalization model particularly suitable for mobile platforms.
- a PIDNA similarity calculation can be performed by the analytics cycle engine 234 , comparing similarities between content of the PIDNA bar 600 of one user (e.g., 102 a ) to content of the PIDNA bar 600 of another user (e.g., 406 ) as a further step to establish objective similarities.
- Arbitrary cluster membership is not represented here.
- the controls may be used to change how the visualization itself (e.g., from a bar to a pie chart) with a person's image in the center—with the relative size of the pie wedges based on the relative interest value as a percentage. Still other controls may reveal the settings and information collected from a given website—so a person can see what is being collected and or personalized. Additional controls may reveal contra-personalization, discussed above, which provides the user with recommendations that are different or opposite from the user's typical sentiments, or interests as a way of avoiding the echo chamber affect or filter bubbles.
- a control 640 e.g., icon, button, physical switch, etc. gives the user an ability to instantly activate or deactivate the website's personalization functionality.
- FIG. 7 illustrates an example summary of a user's personalization profile 700 , created based on the personalization model 400 illustrated of FIG. 4 .
- the personalization profile summary 700 includes profile entities 702 - 712 that roughly correspond to the nodes ( 102 b , 102 c , 102 d , 102 e , etc.), illustrated in FIGS. 1-4 . That is, the personalization profile summary 700 represents a quick look at the actual entities (i.e., locations 702 , organizations 704 , people 706 , titles 708 , sources 712 , etc.) that are extracted by the compute engine 230 from articles the user clicks or interacts with or may be directly utilizing. These clicks or interactions occur through the user's explicit actions or implicit behaviors.
- the lighter and darker shades represent level, frequency, or intensity of the user's interaction: the lighter shades representing less and darker shades representing more activity.
- a solid versus pattern background represents the user's positive or negative sentiment about the article.
- a completely white background represents neutrality.
- the user's explicit actions and implicit behaviors demonstrated a slight interest, with positive sentiment (i.e., slightly liked) in South Africa 714 as well as a very strong interest with positive sentiment (i.e., strongly liked) in Jay-Z 716 .
- embodiments of the present invention give the user a unique tool that provides personalization fine tuning.
- the embodiments also provide a method for users to view and consider the specific factors used in the personalization engines.
- FIG. 8 illustrates a sample use case of an example interface (e.g., GUI) tool 800 that allows a user to fine tune their personalization profile 700 , shown in FIG. 7 .
- the interface tool 800 allows the user to focus on any of the specific entities identified in the user's profile summary 700 and fine grain tune, or drive the weighting and connections for the specific entity The user can control whether to see more of, or less of, the entity in future updates of the user's personalization.
- the interface tool 800 includes a tuning control 802 (e.g., a slider, a button, a dial etc.) allowing the user to adjust their entity interest level within a range from disinterested 806 to interested 808 .
- a tuning control 802 e.g., a slider, a button, a dial etc.
- the interface tool 800 provides the user the ability to fine tune how much, or how little, of a specific entity appears in their personalization profile 700 and their personalization model 400 .
- the user By moving the slider left or right, the user literally adjusts the numerical value (weighting) assigned to corresponding interested_in links, such as the link 410 associated with the user 406 , or the links 229 and 422 associated with the user 102 a .
- moving the slider 802 instantly affects the personalization model, especially for links culminating from the user's explicit actions and implicit behaviors.
- the user has chosen to focus on the specific source entity usatoday.com 722 , identified in their profile summary 700 of FIG. 7 . If the user moves the slider 802 all the way to the left (disinterested 806 ), the weighting numerical value of the associated links is decreased. As a result, the usa.com. source 722 will not appear in future updates to the user's future personalization models. By moving the slider all the way to the right (interested 808 ), the weighting numerical values are increased. Correspondingly, the usa.com source 722 will appear with increased frequency as the user clicks on those topics in the future.
- FIG. 9 illustrates another sample use case 900 of the slider interface tool 800 depicted in FIG. 8 .
- the user decided to stop seeing all articles from the video.foxnews.com source 718 . Accordingly, the user moved the slider 802 all the way to the left, adjusting the weighting numerical value of the associated link. As a consequence, the user will no longer receive recommendations of articles from the source. Unless the user's implicit behavior alters the profile over time, indicating the user's preferences have changed with an interest in that source, the personalization is dynamic and organic.
- the adjustment tool 800 provides the user with a unique personalization, customization feature: the ability to carefully fine tune their personalization profile not only type or kind, but also by degree or intensity of like or interest.
- FIG. 10 is a flow chart of an exemplary method 1000 of practicing an embodiment of the present invention.
- the exemplary method 1000 provides personalization of a website's news content to a user beginning with block 1002 , receiving data (i) representative of the user's interaction with the existing content and (ii) indicative of content entities of interest to the user.
- Block 1004 includes storing the received data indicative of the content entities of interest as nodes in a graph database, and then analyzing, via one or more processors, relations between one or more pairs of the nodes, in block 1006 . Each relation is associated with a link and a structure of each of the links is a function of the user's interaction with the existing content.
- personalizing the website's new content occurs, via the processors, for a corresponding one of the links when a type of the link is within a first category.
- FIG. 11 illustrates one example of a non-generic computer 1100 configured for implementing the embodiments of the personalization model 400 depicted in FIG. 4 .
- FIG. 11 depicts a system 1100 that includes an application-specific processor 1114 configured to perform tasks specific to providing tools that enable content customization and personalization.
- the processor 1114 has a specific structure imparted by instructions stored in a memory 1102 and/or by instructions 1118 that can be fetched by the processor 1114 from a storage 1120 .
- Storage 1120 may be co-located with the processor 1114 or may be located elsewhere and be communicatively coupled to the processor 1114 via a communication an interface 1116 , for example.
- the entity and relation information associated with the nodes and links, and illustrated in FIGS. 1-4 are stored in the graph database 1122 and provide unique and novel end user benefits, discussed herein.
- the system 1100 can be a stand-alone programmable system, or it can be a programmable module located in a much larger system.
- the system 1100 can be part of a server.
- the processor 1114 may include one or more hardware and/or software components configured to fetch, decode, execute, store, analyze, distribute, evaluate, and/or categorize information.
- the processor 1114 can include an input/output module (I/O module 1112 ) that can be configured to ingest data pertaining to single assets or fleets of assets.
- the processor 1114 may include one or more processing devices or cores (not shown). In some embodiments, the processor 1114 may be a plurality of processors, each having either one or more cores.
- the processor 1114 can be configured to execute instructions fetched from the memory 1102 , i.e. from one of memory block 1104 , memory block 1106 , memory block 1108 , and memory block 1110 .
- the storage 1120 , the graph database 1122 , and/or the memory 1102 may include a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, read-only, random-access, or any type of non-transitory computer-readable computer medium.
- the storage 1120 may be configured to log data processed, recorded, or collected during the operation of the processor 1114 .
- the data may be time-stamped, location-stamped, cataloged, indexed, or organized in a variety of ways consistent with data storage practice.
- the storage 1120 , the graph database 1122 , and/or the memory 1102 may include programs and/or other information that may be used by the processor 1114 to perform tasks consistent with those described herein.
- the processor 1114 may be configured by instructions from the memory block 1104 , the memory block 1106 , the memory block 1108 , the memory block 1110 , and the memory block 1111 to perform operations related to the compute engine 230 , the analytics engine 232 , the analytics cycle engine 234 , the user explicit engine 236 , and the user implicit engine 238 , respectively.
- the processor 1114 may execute the aforementioned instructions from the memory blocks, 1104 , 1106 , 1108 , 1110 , and 1111 and output a data stream 1136 via the I/O module 1112 by way of an output 1124 , such as the Internet.
- the instructions stored in the memory blocks 1104 , 1106 , 1108 , 1110 , and 1111 are among the features that contribute to the specific, non-generic, functionality of the computer 1100 .
- the graph database 1122 is configured for storage of the specific graph structures associated with the nodes and relations that form the personalization model 400 , discussed above and illustrated in the drawings.
Abstract
Provided are systems for an interface control device for a computer system configured to provide personalized website content to a user. The computer system includes a database for storage of data representative of the user's interaction with existing content presented on the website and one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions. The personalized segments represent a plurality new content categories for presentation to the user via the website. The interface control device includes a graphical user interface (GUI) configured to allow the user to control presentation of the new content and an adjuster permitting the user to control presentation of selective ones of the personalized segments between a range of values.
Description
- This application is a continuation of U.S. application Ser. No. 16/513,668, filed Jul. 16, 2019, which claims the benefit of U.S. Provisional Application No. 62/698,719, filed Jul. 16, 2018, both of which are incorporated herein by reference in their entirety.
- The present invention relates to filtering and classification of data. More specifically, the present invention relates to filtering and classifying data used as a component in artificial intelligence-based personalization systems.
- At the dawn of the internet age (early 1990s), one of the earliest problems was determining how to automate the process by which information was gathered, sorted and delivered to consumers (or businesses) in an efficient enough time to use. Information aggregation (first under scarce data conditions), particularly for news was one of the major needs for consumers, representing opportunities for inventors and entrepreneurs.
- The solutions that emerged were Rich Site Summary (RSS) and other content syndication-based tools combined with search algorithms. These solutions enabled news portals such as Yahoo, MSNBC and CNN or new software and new media firms such as Google News, Flipboard, and Microsoft News (now Bing News). The news portal got larger and larger, requiring greater storage with information having been aggregated from many other sites, plus the news that was created and sourced by the news portals themselves. This massive amount of information required more time to find the information that one was interested in finding.
- In addition to the news portal sites, individual and small group sites became more accessible due to their availability online and by using the new news search technology provided by sources such as Google. Over the last decade, this model continued with many perspectives and sentiments and sources democratized by the new search technology that frequently placed large portal content on the same results pages as niche and fringe sites.
- Continuously adding to the total amount of information available had caused new problems to arise, most centered around information overload. Common search solutions are not adequate, largely because they assume the user knows what to explicitly search for, and because search technologies don't know the user and cannot learn.
- Conventional solutions primarily include two approaches: recommendation engines and social referral models (i.e., friends and contacts refer content to each other). As currently implemented, these two solutions are largely responsible for fake news, spam, and other noise permeating media channels.
- Given the aforementioned deficiencies, a need exists for optimizing top-performing personalization engines. More particularly, what is needed are tools to customize the personalization engines to recommend more transparent results and for individual consumers to be able to provide fine grain tuning of the personalization engine. Additionally, systems are needed to provide such recommendations and fine tuning substantially in real-time (i.e., near real-time).
- In certain circumstances, an embodiment of the present invention provides an interface control device for a computer system configured to provide personalized website content to a user. The computer system includes a database for storage of data representative of the user's interaction with existing content presented on the website and one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions. The personalized segments represent a plurality new content categories for presentation to the user via the website. The interface control device includes a graphical user interface (GUI) configured to allow the user to control presentation of the new content and an adjuster permitting the user to control presentation of selective ones of the personalized segments between a range of values.
- A suitable online platform, such as a dynamic news website, is populated with relevant multimedia content of interest to a consumer or user. This content is correlated with weighted maps or histograms of related nodes or entities and the relations in between. These maps are used to create and adjust profiles associated with the user's content interaction activity. The resulting user related maps are stored in a database, such as a graph database, where existing entity weights are adjusted, and where new weighted entities are added based upon the user's continued interactions.
- The nodes and entities are individually analyzed, including their associated data, for an estimate of relevant value of each word to a given consumer. The results are the individual's intent profile, which continues to evolve over time as additional information is added to it.
- Concurrently, a database of documents is analyzed on a standalone basis: either via scraping websites for articles, RSS feeds or other text delivery internet methods. These documents are likewise parsed, and entities extracted in the creation of a profile of each document. The profiles for each document are then compared against the consumers profiles and are ranked based on similarity or using more advanced techniques such word distance.
- Embodiments of the present invention then permit the data to be collected in the profile substantially in real-time. Further, the data can be presented and viewed and then edited with the ability to determine the intensity and the sentiment—from negative—to positive, with neutral in between. The updated data is saved into the profile, thereby impacting the relevancy of the ranking for the content to be recommended. In the embodiments, the profile is being constantly updated via passive information as the user searches and interacts with content and commerce. This inferred approach impacts the profile but the individual weightings are not as great as the results of user selectable fine tuning.
- Additional features, modes of operations, advantages, and other aspects of various embodiments are described below with reference to the accompanying drawings. It is noted that the present disclosure is not limited to the specific embodiments described herein. These embodiments are presented for illustrative purposes. Additional embodiments, or modifications of the embodiments disclosed, will be readily apparent to persons skilled in the relevant art(s) based on the teachings provided.
- Illustrative embodiments may take form in various components and arrangements of components. Illustrative embodiments are shown in the accompanying drawings, throughout which like reference numerals may indicate corresponding or similar parts in the various drawings. The drawings are only for purposes of illustrating the embodiments and are not to be construed as limiting the disclosure. Given the following enabling description of the drawings, the novel aspects of the present disclosure should become evident to a person of ordinary skill in the relevant art(s).
-
FIG. 1 illustrates an example graph database structured to form a content personalization model in accordance with embodiments of the present invention. -
FIG. 2 illustrates a more detailed view of the personalization model graph database illustrated inFIG. 1 . -
FIG. 3 illustrates a more detailed view of the content personalization model graph database ofFIG. 2 in accordance with the embodiments. -
FIG. 4 illustrates a further detailed view of the content personalization model graph database ofFIG. 3 . -
FIG. 5 is a tabular illustration of example personalization types mapped with the personalization engines depicted inFIG. 4 . -
FIG. 6 depicts an example profile of interest DNA (PIDNA) user interface tool constructed in accordance with the embodiments. -
FIG. 7 illustrates an example summary of a user's personalization profile created in accordance with the embodiments. -
FIG. 8 . illustrates a sample use case of an example slider interface tool permitting a user to fine tune the summary depicted inFIG. 7 . -
FIG. 9 illustrates another sample use case of the slider interface tool depicted inFIG. 8 . -
FIG. 10 is a flowchart an exemplary method of practicing an embodiment of the invention. -
FIG. 11 illustrates one example of a non-generic computer system configured for implementing the embodiments. - Prior to discussing the drawings of the present disclosure at length, several terms and concepts are covered in order to facilitate the detailed description of the exemplary embodiments depicted in the drawings. It is noted that however that these terms and concepts do not limit the disclosure and that one of ordinary skill in the relevant art(s) will readily recognize modifications and changes applicable to the following ancillary systems and/or concepts that do not limit the scope of the present teachings.
- The embodiments include (or assumes the presence of) a personalization or recommendation engine (the terms are used inter changeably throughout). The personalization engine uses artificial intelligence (machine learning) in the area of textual analysis to identify the media with which one interacts (scrolls, clicks or and includes other personal information). Once the media document that is interacted with is identified, a text parser is used to separate the words. The words are then fed into an entity extraction application—which identifies the major entities (mostly proper nouns) by comparing the parse text against a dictionary (database) of proper nouns/known entities.
- In the embodiments, a consumer using the system will be able to directly customize the personalization system, altering the recommendation results via an interface for the manipulation of data that is being accumulated on the consumer, in near real-time. Additional embodiments provide customization of the personalization process by not only type or kind, but also by degree or intensity of like or interest. The results of the customization immediately impact the ranking of the content or commerce offering that is recommended to the user, in essence being real-time, or near real-time.
- Additionally, embodiments of the present invention present a new way of transforming and displaying a personalization profile for the ease of data management and to provide an easier viewing and comparing format for mobile devices.
-
FIG. 1 illustrates anexample graph database 100 structured to form a content personalization model in accordance with embodiments of the invention. In the embodiments described herein, thegraph database 100 stores and maps structures (i.e., nodes and links) that define queries and relationships that are interconnected represent the user's content related interests. - The structures stored and mapped in the
database 100 also define the type of information that can be stored in thegraph database 100 and the corresponding functionality that can be extracted therefrom. This information and functionality are fundamental to creation of the personalization models described below. Thegraph database 100, and personalization models derived therefrom, provide several ultimate user implementation benefits. Among these many benefits are providing interactive website content personalization and customization. Dynamic news websites are merely one example of where these user benefits can be realized and appreciated. - In
FIG. 1 , each of the circles shown is a node representing key objects being tracked when performing personalization. By way of example only and not limitation, among the categories of nodes in thegraph database 100 areuser 102 a,source 102 b,article 102 c,organization 102 d,category 102 e,topic 102 f, etc. The lines (i.e., links) between the nodes (and their corresponding arrows) are relations that represent an understanding of how the nodes relate to each other. These links, such aslink 104 between theuser 102 a and thesource 102 b, are developed and created in near real-time, as theuser 102 a interacts, as one example, with an interactive personalized news website. - In the illustrious embodiments, the links can be created based on the user's explicit actions, as well as the user's implicit behaviors. For example, to begin the personalization process, a sample personalized news website, referred to herein as “slim-spider” (not shown) may ask the user one or more questions, such as “do you like this particular news source,” “do you believe this article was useful?” The user's responses to these, or similar questions, represents the user's explicit actions. Slim-spider's personalization engines also monitor the user's implicit behaviors, such as specific links the user clicks on to read the article and/or the particular source of the link and article. User explicit actions and implicit behaviors are discussed in greater detail below.
- For example, the website's personalization engine may observe the user routinely chooses a particular source, such as USA Today, which for filtering purposes, the user will not be asked “do you like this?” Alternatively, the personalization engine may observe that the user never clicks on USA Today, or they tend to filter USA Today. These, or similar actions, represent the user's implicit behaviors. These are the types of explicit actions and implicit behaviors that create the links between users, between topics, between articles, or between various iterations thereof. Consider the following detailed example shown in
FIG. 2 . -
FIG. 2 illustrates a moredetailed view 200 of thegraph database 100 illustrated inFIG. 1 . In the example depicted inFIG. 2 , theuser 102 a logs into the sample Slim-Spider website and clicks on thearticle 102 c related in part to President Donald Trump. More specifically, for purposes of illustration, the title of thearticle 102 c is “Peace Talks with North Korea Planned,” and thesource 102 b of the article is “USA Today.” When theuser 102 a clicks on a hyperlink on the Slim-Spider website for thearticle 102 b, several things happen. - Once the
user 102 a clicks the hyperlink, the personalization engines (discussed in detail below) initially create a fairly weak link (i.e., the relation 104) between theuser 102 a and theUSA Today source 102 b. Thelink 104 between theuser 102 a and thesource 102 b is captured in thedatabase 100 by a numerical value, or floating-point number, between zero (0) and one (1). In the present example, assume a small numerical value such as 0.0001 (not shown) is assigned to represent a strength or weighting of therelation 104. Additionally, the length of lines between a category and a topic may also be indicative of the level of interest or strength. For example, the relatively long line between thecategory 102 e (politics) and thetopic 102 f (Trump) indicates a high numerical value, and correspondingly higher weight of member_of link 214. - In this manner, the
relation 104 is referred to as “interested_in”personalization link 229, having a dark gray (user implicit) box inFIG. 2 . The dark gray box corresponds with the userimplicit engine 238, shown to the right, and discussed in more detail below. The “interested_in”link 229 enhances the connections and visualizations captured in thegraph database 100. Specifically, the interested_in link 229 depicts a type of weighting represented by the numerical value of therelation 104 conveying “we noticed that you clicked on thearticle 102 c,” in response to the implicit behavior of theuser 102 a. - In addition to the “interested_in” link 229 (relation 104), a
link 106 is established between thesource 102 b (USA Today) and thearticle 102 c (Peace Talks with North Korea Planned). Thus, the developing personalization of the sample Slim-Spider website now has two relations: 104 and 106. Part of the process for completing the personalization includes the personalization engine performing textual analysis on all the articles it collects and that users may ultimately end up reading. - Tracking of the nodes and creation of the links is the heart of a first portion of the personalization process—initiated by the user's interaction (e.g., user explicit actions and implicit behaviors). The first portion occurs while the user is online and in near real-time and involves the use of several personalization engines. A second portion of the personalization process occurs afterwards, off-line. The second portion also includes the combined functionality of several personalization engines. More specifically, separately and independently, occurring after the
user 102 a has concluded their current Slim-Spider web session, several processes continue to run on the website off-line. - The off-line processes collect information covering a variety of different topics. In furtherance to the
user 102 a's explicit actions and implicit behaviors. These processes, triggered by the user's now concluded web session, attempts to understand the user's actions and behaviors that occurred during the web session, more deeply. These processes also seek to identify users similar to theuser 102 a and identify articles similar to articles theuser 102 a interacted with. - In
FIG. 2 , off-line processes occur on multiple levels and collect articles and other information on topics such as Trump, bit coins, sports, cars, etc. The collections occur using topline sources, and watches to define additional relationships. By use of the term topline sources, the personalization engines go to all topline news sources and attempt to capture every new available article on each topic. Watches represent criteria people establish to watch for a specific trend, such as politics, sports, or similar. - In addition to capturing each new article from the topline news sources, the sample Slim-Spider news website performs content queries on those topics or watches (i.e., criteria) the user has created. Accordingly, the news website will specifically seek “Trump” and “Lebron James” related information. In addition to new information that emerges on Trump and Lebron James, there is an ongoing historical backfill that occurs on those trends. An additional feature permits searches of older articles about Trump and Lebron James via a calendar control that enables searching for any terms, back to a specific year and day. The purpose of such a search would be to determine what articles appear, for those particular terms, the specific year and day specified.
- In the example of
FIG. 2 , one of the personalization engines that conducts the separate and independent processes discussed above is compute engine 230 (e.g., light gray background). Thecompute engine 230 performs computations necessary to define relationships and links that are stored in thegraph database 100 during the off-line processes above. In the illustrious embodiments, thecompute engine 230 is the primary news gathering engine and one of the several personalization engines that combine functionality to provide content personalization. Every article a user will encounter is eventually analyzed, at some level, by thecompute engine 230. That is, whenever a user queries or interacts with a new article, thecompute engine 230 adds that article to thedatabase 100. Subsequent to storage in thedatabase 100, the links created by thecompute engine 230 are only computed once and are not re-computed, or revised, by thecompute engine 230. - In the example of news websites, such as the sample Slim-Spider, there are several types of off-line processes that are computed 24/7. Within the context of content personalization, the
compute engine 230 essentially collects new articles related to the user's Slim-Spider web sessions and adds them to thegraph database 100. When a new article is received, such as thearticle 102 c (Peace Talks . . . ) the entity extraction feature, performed by thecompute engine 230, determines that the Trump is a topic related to thearticle 102 c (Peace Talks . . . ). An “is about”link 210 d is calculated between thearticle 102 c andpolitics category 102 e. The strength of the “is about” link is also immediately calculated—on the spot, in near real-time. As noted earlier, these calculations determine relations between topics and articles and are only performed once, in the absence of human intervention. - An analytics engine 232 (e.g., zigzag pattern), also shown in
FIG. 2 , performs calculations that determine relations, or similarities, between users. Theanalytics engine 232 performs its calculations during certain times of the day, several times per day, or several times per week, etc. Theanalytics engine 232 analyzes all news articles collected by thecompute engine 230, and that are sequentially stored in thegraph database 100, to determine how the articles relate to each other. Theanalytics engine 232 analyzes the articles independently and within the context of the explicit actions and implicit behaviors of users interacting with the articles. For example, theanalytics engine 232 may evaluate the explicit actions and implicit behavior of one user and compare those actions and behaviors with several other users and analyze other factors to determine similarities, the users. - An analytics cycle engine 234 (e.g., vertical line pattern) also computes, among other things, links representing user/user similarities and article/article similarities. These links are used for specific types of recommendations and are recomputed as frequently as possible. A fundamental assumption behind the
analytics cycle engine 234 is that theuser 102 a (any user) would consider a recommendation from another user, similar to themselves, to be relevant. The greater the similarities between the other user to theuser 102 a, the greater the relevance the user will give the recommendation of the other user. - Specifically, in the exemplary embodiments, the
analytics cycle engine 234 can perform computations throughout the day to analyze data relevant to similarities. For example, theanalytics cycle engine 234 may analyze current interests of theuser 102 a, anduser 406 and calculate, based on various factors, how similar those interests are. It may also adjust the numerical weight, assigned to the corresponding link, several times per day, weekly, monthly. The timeframe of these calculations is variable. - This capability eliminates the shortcomings associated with conventional approaches that are limited to evaluating similarities between users by applying, for example, “five-star” evaluation systems, “left-to-right” swipe systems, thumbs-up or thumbs down, and/or “likes.” The conventional approaches provided very little real information (if any) about the users providing these explicit actions. The exemplary
analytics cycle engine 234 provides a unique approach to analyzing both the explicit and implicit behaviors of users, and other factors to recalculate the strength of related links over time, and identify users that are objectively more similar, based on more relevant traits. - A user explicit engine 236 (e.g., horizontal pattern) permits instant action on user explicit actions. A user implicit engine 238 (dark gray solid color) permits instant actions on user implicit behaviors. For the user explicit actions and implicit behaviors, an on-demand function, connected to a content server, captures the user's immediate actions and adds those actions to the
graph database 100. For example, the moment the user clicks on an article or opens a webpage in a personalization website, or answers a questionnaire, or likes an article, the userexplicit engine 236 or the user implicit 238 engines respectively calculate a relational link and adds that calculated link to thegraph database 100. - User explicit and implicit links (i.e. created by the explicit and
implicit engines FIG. 2 , the more articles about peace talks (article 102 c), or the more articles about Clinton (article 250) the user clicks on or interacts with, their corresponding relations will get stronger. - The administrative manual engine 240 (e.g., diagonal stripe pattern) provides the human intervention mentioned above; a human in the loop concept; a team of administrative people that might may be able to subtleties or nuances in an article. These nuances and subtleties may not be recognizable by a computer. The idea behind the human in the loop concept is that a human can perhaps over-ride, or tweak, a recommendation.
- Referring back to the
compute engine 230, one of the off-line processes it performs is referred to herein as entity extraction. During entity extraction, specific elements of the article are extracted, such as the names of individuals, locations, company names, etc. The purpose of the entity extraction is to understand, on a deeper level, the underlying purpose of a particular article. An additional off-line process performed by thecompute engine 230 is textual analysis. As understood by those of skill in the art, textual analysis is a technique to analyze the content, structure, and functions of the messages contained in texts or visual images. Thecompute engine 230 performs a textual analysis on every article it collects as a result of articles theuser 102 a interacts with either explicitly or implicitly. - An additional off-line process performed by the
compute engine 230 is referred to as sentiment analysis. Sentiment analysis is performed for all keywords extracted from articles identified during the off-line processes to understand whether the article's sentiment is positive or negative with respect to the keyword. For example, with Trump, this can be an article that is a pro-Trump, or it could be an anti-Trump article. From the standpoint of understanding what the user's interests are in the personalization model, it may be important to know whether the user is reading pro-Trump articles or anti-trump articles. - The entity extraction, textual analysis, and sentiment analysis, performed by the
compute engine 230, builds light gray colored personalization links (relations) 210 a-210 e illustrated inFIG. 2 , which match the background color of thecompute engine 230 depicted inFIG. 2 . Within the personalization links 210 a-210 e is the “is_about” feature, provided to establish that a particular article is about a given topic. For example, the “is_about” feature may establish that a particular article is about Trump, which is a keyword extracted from the article that aids recognition of what the article is about. - The “is_about” feature is desirably added to the
graph database 100 to enhance the personalization accuracy of the database. The accuracy of thedatabase 100 can be enhanced by recognizing by adding these underlying relations in a manner similar to the “interested in” feature above. Thus, a corresponding numerical value would similarly be assigned to each of the “is_about” links 210 a-210 e, with respect to a relation between the depicted articles (Peace Talks . . . , Clinton, and Jobs Report) and the respective topics (Sarah Huckabee Sanders, Hillary Clinton, and Trump). The numerical value, noted above, and assigned to each link, represents the level of confidence in the assessment that the article is actually about the topic. - For example, the
link 210 b indicates thearticle 102 c (Peace Talks with North Korea Planned) “is_about” the topic oftopic Trump 102 f. In reality, the article could be several paragraphs about North Korea with one sentence about Trump. In this situation, the “is_about” link would represent a very weak relation and would have a correspondingly low numerical value. If it mentions Trump a significant number of times and provides more information about the topic, the link would be stronger, and its numerical value would correspondingly be higher. - In addition to the entity extraction, textual analysis, and sentiment analysis that occurs off-line, a team of personalization administrators (live people) are available in the loop and can manually assist the process, provided by the administrative
manual engine 240. However, this “human in the loop,” or manual assist, feature is optional. As shown inFIG. 2 , each of the light gray colored links 210 a-210 e also includes a small diagonal stripe pattern portion. As one example, thelink 210 a includes a lightgray portion 216 corresponding to thecompute engine 230. Thelink 210 a, however, also includes a diagonalstripe pattern portion 218 corresponding to theadmin manual engine 240. Thepattern portion 218 is better described below, in the description ofFIG. 3 . -
FIG. 3 is a moredetailed view 300 of thegraph database 200 depicted inFIG. 2 . Thecompute engine 230, also depicted inFIG. 3 , at least in-part, creates “related_to” links 212 a-212 c, “member_of”link 214, andcontra link 220. The “related_to” links 212 a-212 c establish whether, and to what extent, one topic might relate to another topic. The member_of link 214 determines if, and to what extent, theTrump topic 102 f falls within thepolitics category 102 e. - The is_about link 210 a includes the larger light gray solid
colored portion 216 and the much smaller patterned (diagonally striped)portion 218. This, combined color/pattern arrangement, in the example of the is aboutlink 210 a, indicates that most of thelink 210 a, about 85%, was determined by thecompute engine 230. However, about 15% of thelink 210 a is calculated by the administrativemanual personalization engine 240. - That is, after the first portion of the calculations are completed by the
compute engine 230, a human, using another interface via the adminmanual personalization engine 240, adjusts, tweaks, and/or strengthens theunderlying relationship 210 a. These manual adjustments may be desirable because of the possibility that certain types of relations can sometimes be hard to determine and/or the algorithms calculating the link can be prone to error. Additionally, the user may desire results that are distinctly different from recommendations and preferences based on the user's profile. Specifically, the user may desire contra-Personalization™. - The
contra_link 220 includes a mix of calculations from thecompute engine 230 and theadmin manual processing 240 engine, and provides contra personalization. Thecontra_link 220 is independent of related_to links (e.g., thelink 212 c). While contra relationships are created automatically, as depicted in the example of thecontra_link 220, contra links also permit manual adjustments. These manual adjustments will also generate contra-personalized recommendations. Thus, automatic and manually adjusted contra recommendations are both possible and part of the embodiments. - Contra-personalization includes recommending articles, for example, that are outside the sphere of articles the user would predictably prefer and repeatedly read. Contra-personalization enables the user to escape their so-called echo chamber by providing a type of filtering where the user receives articles from a different perspective or a different point of view. Since contra-personalization is calculated primarily by the administrative
manual engine 240, humans can tweak or manually adjust the weights between the links to enhance their reliability. - As an example, in most cases it's probably easy to automatically compute that Trump and Hillary Clinton are opposing topics. In some cases, however, it may be difficult to determine this fact. In this case, an administrative team may be able to review the data and construct the
link 220, or tweak initial calculations, or numerical values assigned to the links, more effectively than an algorithm. That is, a human may be more effective in situations that require recognition of subtleties or require and exercise of judgment. - Thus, the “is_about” links 210 a-210 e, “related_to” links 212 a-212 c, “member_of”
link 214, and “contra”link 220, that include both the solid color and diagonal stripe pattern background provide a type of multi-factored processing, and an integration of man-machine cooperation. The processing is performed by theadmin manual engine 240, and thecompute engine 230 and create a single link between two nodes. In other situations, involving links related to users, the embodiments can use separate processing engines to create multiple completely independent links (of the same type) between two nodes, as illustrated inFIG. 4 . -
FIG. 4 illustrates an even more detailed view (personalization model) 400 of thegraph database view 300 inFIG. 3 , in accordance with the embodiments. InFIG. 4 , consideruser node 406 andtopic node 102 g. These two nodes are connected by completely independent “interested_in”links link 408 was calculated by theanalytics cycle engine 234 while the “interested_in”link 410 was calculated independently by the userexplicit engine 236. In other words, “interested_in” is both explicit and recomputed regularly by watching actual behavior. - The purpose of this type of multi-level processing is because embodiments of the invention, such as the sample Slim-Spider system discussed above, attempt to separate what a user says they are interested_in from their actual behavior. Exemplary systems in accordance with the embodiments, such as the
personalization model 400, also attempt to capture decay in a user's interest in a topic, or evolution in the user's behavior. - As an example, five weeks ago and prior to a presidential election,
user 406 indicated a very strong interest in thetopic 102 g “Sarah Huckabee Sanders” (i.e., presidential candidate Donald Trump by extension) by several explicit actions during a single Slim-Spider web session. For example, theuser 406 gave a thumbs-up, and liked several articles highly favorable to thetopic 102 g and indicated a 5-stars on other articles. The moment theuser 406 took each of these explicit actions, each action was stored (i.e., instantly) in thegraph database 100. Correspondingly, the “interested_in”link 410 was created and a numerical weighting value (assessing the strength of the interest level of the user 406) was assigned. A more in-depth discussion about instant type personalization actions is necessary before continuing the discussion of multi-level processing. -
FIG. 5 is a table 500 of example personalization types mapped with the personalization engines depicted inFIG. 4 . For purposes of discussion herein, a vertical column in the table 500 contrastsseveral personalization types 502 with ahorizontal column 504 including personalization engines. By way of example, the userexplicit engine 236 and the userimplicit engine 238 perform instant personalization. Thecompute engine 230,analytics engine 232,analytics cycle engine 234, and theadmin manual engine 240 all perform the intra-session and extra-session personalization, as illustrated inFIG. 5 . - Instant personalization includes actions that can immediately be calculated and/or tweaked, from one click to the next, and can be changed instantly, in real-time or near real-time. When a user opens a webpage and a clickable image appears, the moment the user clicks the image, the server (not shown) processes that action immediately and stores its corresponding data in the
graph database 100. - For example, when the user posts a thumbs up on Facebook or Netflix, or response to an online questionnaire on Yelp, or some other page, those user actions are recorded immediately, and the underlying personalization model graph database (e.g., the graph database 100) is updated. The very next image the user sees is an updated image because the corresponding link in the database was updated instantly. Intra-session and extra-session user actions do not occur instantly or in near real-time.
- A significant challenge in performing real-time personalization is reducing the amount of computing required when a user clicks on an image or opens a new webpage. The desire, as with instant personalization discussed above, is that when the user clicks on the image or opens the new webpage, that the very next thing they see should be different—that the responses to their actions be instantaneous. In reality, because some of the resulting calculations can be computationally expensive, for example, comparing one user to other users, or one topic to other topics, these operations and calculations can be time intensive and expensive.
- In particular, some calculations can literally require several minutes before an answer can be calculated or recalculated in response to a user action during a web session. It's undesirable to have the user waiting several minutes between clicks, during an active web session, for a new web page to open. Therefore, during intra-session personalization, some processes are designed for “off-line” operation.
- For example, the entity extraction, textual analysis, and sentiment analysis performed by the
compute engine 230, are designed for “off-line” execution to facilitate application of additional processing power. These processes can be segmented, or sub-divided, into a number of smaller processes that can all desirably be completed before the user finishes their current web session or exits an application. That is, before the user clicks away to a new website, the personalization engines will have created and provided the user with one or more new recommendations. - Extra-session personalization, as used herein, refers to calculations performed between a user's last web session (e.g., last month, last week, or yesterday) and their current web session (e.g., today). That is, between their last web session and the next time the user logs on, additional calculations have been performed by the personalization engines and one or more new recommendations are ready to be provided. These tasks can be the most computationally expensive.
- For example, when determining similarities between the user and other users, the personalization engines may have analyzed the user explicit actions and user implicit behaviors of millions of other users that interacted with the same links as the user of interest, since that user's last visit, one month ago. Analyzing such a large number of behaviors and actions would require an analysis of many different factors in a variety of categories. As such, the computational and time requirements to complete the analysis could potentially be enormous.
- User to user similarities are significant, because users may consider recommendations from users, similar to themselves, particularly relevant and weighty. That is, users may think they are similar to another user, based on one or two clicks during a web session. However, those one or two clicks do not reveal any real information about the additional users. This lack of information can limit the relevance of any recommendations the user or users may provide.
- By way of example, in the exemplary embodiment depicted in
FIG. 4 , similarities between theuser 102 a and theuser 406 can be created via theanalytics cycle engine 234 with a relatively high strength and weight using extra-session personalization. During a current web session, the userexplicit engine 236 and the userimplicit engine 238 instantly capture all the interactions theuser 102 a had with the articles and other information, and immediately store that information in thegraph database 100. - After the
user 102 a logs out of the web browsing session, theanalytics cycle engine 234 performs similar functions (storing user explicit actions and user implicit behaviors) related to additional users, perhaps millions of additional users, and up to thousands or millions of other data points. This analysis is performed until theuser 102 a logs onto the website (e.g., Slim-Spider) for the next, or ensuing, web session, perhaps several weeks later. - During this ensuing web session, the
analytics cycle engine 234 creates a similarity link 407 (e.g., vertical pattern) between theuser 102 a and theuser 406, and immediately assigns a weighting value. After thesimilarity link 407 is established, any recommendations provided to theuser 102 a from theuser 406 may carry more relevance than recommendations from other nodes or entities. Accordingly, any topics theuser 406 might be interested in, such as thetopic 102 g, may also be relevant to theuser 102 a. - The multi-level processing example, discussed earlier, is particularly helpful in creating links connecting users to nodes or other entities. Returning now to the example above. In that example, the
user 406 had a strong interest in thetopic 102 g Sarah Huckabee Sanders (i.e., presidential candidate Donald Trump) five weeks ago. Four weeks ago, however, presidential candidate Donald Trump lost the election. As a result, theuser 406 has not clicked a thumbs up, given a positive swipe, or provided a 5-star rating to any article about thetopic 102 g within the last four weeks. Nor have there been any other additional user explicit actions or implicit behaviors exhibited by theuser 406 related to thetopic 102 g in the last four weeks. - Although the
user 406 said things and did things four weeks ago, indicating a strong interest in thetopic 102 g, that strong interest is no longer valid. Additionally, the user explicit “interested_in”link 410 cannot capture sudden lack of interest theuser 406 is now expressing toward thetopic 102 g, as the user's interest decays or evolves. - The
analytics cycle engine 234 can capture this evolution in the interests and behavior of theuser 406. Theanalytics cycle engine 234 can collect more data over several days. Since theuser 406 is no longer interacting with articles relevant to Donald Trump, thetopic 102 g is no longer as relevant in terms of recommendations. Accordingly, over time, the weight of thelink 408 between theuser 406 and thetopic 102 g, will also decay. That is, as theuser 406 ceases to interact with articles over time, theanalytics cycle engine 234 will detect this diminished level of activity and will adjust the strength of the corresponding link. Theanalytics cycle engine 234 performs these calculations only, once in relation to thelink 408 between theuser 406 and thetopic 102 g, unless thelink 408 is tweaked by theuser admin engine 240. - In the exemplary embodiment depicted in
FIG. 4 , just as theanalytics cycle engine 234 performs calculations to create the similarity link 407 (relating a user to a topic), the analytics engine 232 (zigzag pattern) may perform calculations to create a slightly different type of similarity link 404 (relating an article to an article). For example, inFIG. 4 anarticle 402 is entitled “Syrian President to Meet Kim Jong Un in North Korea”. For purposes of illustration, assume thecompute engine 230 collected thearticle 402, as a new article, one month ago. However, thearticle 102 c (Peace Talks with North Korea Planned) was collected five minutes ago. In this example, there is a separate analytics process performed by theanalytics engine 232, that attempts to relate all new articles to past articles previously stored in thedatabase 100. - The separate analytics function, mentioned above, is primarily performed by the
analytics engine 232, which relates and finds relations between new articles based on how similar they are in their content, etc. As theanalytics engine 232 begins finding articles using techniques described above understood by those of skill in the art, it begins recommending articles to the user. Once thesimilarity link 404 is calculated, theanalytics engine 232 never attempts to recompute the similarities between those articles. There may be revisions to the articles that people post to the website, based on the recommendations. However, in this situation, that revised article will appear as new, as computed by thecompute engine 230. An additional feature depicted inFIG. 4 , referred to herein as “read-with” 430 can be used to kickstart calculations of thesimilarity link 404, along with a straight comparison of topic overlap. -
FIG. 6 depicts an example profile of interest DNA (PIDNA) user interface, for example, graphical user interface (GUI)tool 600, constructed in accordance with the embodiments. ThePIDNA bar 600 provides the user with a graphical summary of news categories or information categories corresponding to the user's personalization interests. An adjustments bar 601 enables the user to personalize the data represented in thePIDNA bar 600 in thevarious categories 602. Although the adjustments bar 601 is depicted as being associated with thePIDNA bar 600, its portability can be extended to thebroader personalization model 400. - In
FIG. 6 , thePIDNA bar 600 is constructed in the form of slivers 602-622, each representing an entity, such as a news categories, or information categories, corresponding to the user's personalization preferences. ThePIDNA bar 600 provides the user with a visualization of the user's interests relative to a size (e.g., width) of the slivers 602-622. Increasing or decreasing the width of one of the slivers (e.g., sub-entities) 602-622 changes the relative interest in that category which may translate into more or fewer articles in the category of thepersonalization model 400. Also, if the user reads fewer articles in each category, the corresponding sliver will automatically narrow. If the user reads more of a particular category, the corresponding sliver will widen. - For example, the
PIDNA bar 600 indicates that the user has significant interests inpolitics 608,technology 620,crime 616,sports 606, etc. Further, tapping directly on a sliver, such as thepolitics sliver 608, enables the sliver to become an interface to perform a category keyword search. Panning over a sliver may increase the width of the sliver and reveal additional subcategories and controls. This interface feature, via thePIDNA bar 600, makes the underlying content personalization model particularly suitable for mobile platforms. In another example, a PIDNA similarity calculation can be performed by theanalytics cycle engine 234, comparing similarities between content of thePIDNA bar 600 of one user (e.g., 102 a) to content of thePIDNA bar 600 of another user (e.g., 406) as a further step to establish objective similarities. Arbitrary cluster membership is not represented here. - The controls may be used to change how the visualization itself (e.g., from a bar to a pie chart) with a person's image in the center—with the relative size of the pie wedges based on the relative interest value as a percentage. Still other controls may reveal the settings and information collected from a given website—so a person can see what is being collected and or personalized. Additional controls may reveal contra-personalization, discussed above, which provides the user with recommendations that are different or opposite from the user's typical sentiments, or interests as a way of avoiding the echo chamber affect or filter bubbles. A control 640 (e.g., icon, button, physical switch, etc.) gives the user an ability to instantly activate or deactivate the website's personalization functionality.
-
FIG. 7 illustrates an example summary of a user'spersonalization profile 700, created based on thepersonalization model 400 illustrated ofFIG. 4 . Thepersonalization profile summary 700 includes profile entities 702-712 that roughly correspond to the nodes (102 b, 102 c, 102 d, 102 e, etc.), illustrated inFIGS. 1-4 . That is, thepersonalization profile summary 700 represents a quick look at the actual entities (i.e.,locations 702,organizations 704,people 706,titles 708,sources 712, etc.) that are extracted by thecompute engine 230 from articles the user clicks or interacts with or may be directly utilizing. These clicks or interactions occur through the user's explicit actions or implicit behaviors. - In
FIG. 7 , the lighter and darker shades represent level, frequency, or intensity of the user's interaction: the lighter shades representing less and darker shades representing more activity. A solid versus pattern background represents the user's positive or negative sentiment about the article. A completely white background represents neutrality. For example, in thepersonalization profile summary 700, the user's explicit actions and implicit behaviors demonstrated a slight interest, with positive sentiment (i.e., slightly liked) inSouth Africa 714 as well as a very strong interest with positive sentiment (i.e., strongly liked) in Jay-Z 716. - The user demonstrated complete neutrality about the source blogs.wsj.com 720. However, the user strongly liked usatoday.com 722, but strongly disliked video.foxnews.com 718. Given all users' unique preferences (i.e., interests, likes, dislikes, etc.) for various entities (702-712), embodiments of the present invention give the user a unique tool that provides personalization fine tuning. The embodiments also provide a method for users to view and consider the specific factors used in the personalization engines.
-
FIG. 8 . illustrates a sample use case of an example interface (e.g., GUI)tool 800 that allows a user to fine tune theirpersonalization profile 700, shown inFIG. 7 . Theinterface tool 800 allows the user to focus on any of the specific entities identified in the user'sprofile summary 700 and fine grain tune, or drive the weighting and connections for the specific entity The user can control whether to see more of, or less of, the entity in future updates of the user's personalization. Theinterface tool 800 includes a tuning control 802 (e.g., a slider, a button, a dial etc.) allowing the user to adjust their entity interest level within a range from disinterested 806 to interested 808. - The
interface tool 800 provides the user the ability to fine tune how much, or how little, of a specific entity appears in theirpersonalization profile 700 and theirpersonalization model 400. By moving the slider left or right, the user literally adjusts the numerical value (weighting) assigned to corresponding interested_in links, such as thelink 410 associated with theuser 406, or thelinks 229 and 422 associated with theuser 102 a. In other words, moving theslider 802 instantly affects the personalization model, especially for links culminating from the user's explicit actions and implicit behaviors. - In example of
FIG. 8 , the user has chosen to focus on the specific source entity usatoday.com 722, identified in theirprofile summary 700 ofFIG. 7 . If the user moves theslider 802 all the way to the left (disinterested 806), the weighting numerical value of the associated links is decreased. As a result, the usa.com.source 722 will not appear in future updates to the user's future personalization models. By moving the slider all the way to the right (interested 808), the weighting numerical values are increased. Correspondingly, theusa.com source 722 will appear with increased frequency as the user clicks on those topics in the future. -
FIG. 9 illustrates anothersample use case 900 of theslider interface tool 800 depicted inFIG. 8 . InFIG. 9 , for example, the user decided to stop seeing all articles from thevideo.foxnews.com source 718. Accordingly, the user moved theslider 802 all the way to the left, adjusting the weighting numerical value of the associated link. As a consequence, the user will no longer receive recommendations of articles from the source. Unless the user's implicit behavior alters the profile over time, indicating the user's preferences have changed with an interest in that source, the personalization is dynamic and organic. Theadjustment tool 800 provides the user with a unique personalization, customization feature: the ability to carefully fine tune their personalization profile not only type or kind, but also by degree or intensity of like or interest. -
FIG. 10 is a flow chart of anexemplary method 1000 of practicing an embodiment of the present invention. InFIG. 10 , theexemplary method 1000 provides personalization of a website's news content to a user beginning withblock 1002, receiving data (i) representative of the user's interaction with the existing content and (ii) indicative of content entities of interest to the user.Block 1004 includes storing the received data indicative of the content entities of interest as nodes in a graph database, and then analyzing, via one or more processors, relations between one or more pairs of the nodes, inblock 1006. Each relation is associated with a link and a structure of each of the links is a function of the user's interaction with the existing content. In ablock 1008, personalizing the website's new content occurs, via the processors, for a corresponding one of the links when a type of the link is within a first category. -
FIG. 11 illustrates one example of anon-generic computer 1100 configured for implementing the embodiments of thepersonalization model 400 depicted inFIG. 4 .FIG. 11 depicts asystem 1100 that includes an application-specific processor 1114 configured to perform tasks specific to providing tools that enable content customization and personalization. Theprocessor 1114 has a specific structure imparted by instructions stored in amemory 1102 and/or byinstructions 1118 that can be fetched by theprocessor 1114 from astorage 1120.Storage 1120 may be co-located with theprocessor 1114 or may be located elsewhere and be communicatively coupled to theprocessor 1114 via a communication aninterface 1116, for example. The entity and relation information associated with the nodes and links, and illustrated inFIGS. 1-4 , are stored in thegraph database 1122 and provide unique and novel end user benefits, discussed herein. - The
system 1100 can be a stand-alone programmable system, or it can be a programmable module located in a much larger system. For example, thesystem 1100 can be part of a server. Theprocessor 1114 may include one or more hardware and/or software components configured to fetch, decode, execute, store, analyze, distribute, evaluate, and/or categorize information. - Furthermore, the
processor 1114 can include an input/output module (I/O module 1112) that can be configured to ingest data pertaining to single assets or fleets of assets. Theprocessor 1114 may include one or more processing devices or cores (not shown). In some embodiments, theprocessor 1114 may be a plurality of processors, each having either one or more cores. Theprocessor 1114 can be configured to execute instructions fetched from thememory 1102, i.e. from one ofmemory block 1104,memory block 1106,memory block 1108, andmemory block 1110. - Furthermore, the
storage 1120, thegraph database 1122, and/or thememory 1102 may include a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, read-only, random-access, or any type of non-transitory computer-readable computer medium. Thestorage 1120 may be configured to log data processed, recorded, or collected during the operation of theprocessor 1114. The data may be time-stamped, location-stamped, cataloged, indexed, or organized in a variety of ways consistent with data storage practice. Thestorage 1120, thegraph database 1122, and/or thememory 1102 may include programs and/or other information that may be used by theprocessor 1114 to perform tasks consistent with those described herein. - For example, the
processor 1114 may be configured by instructions from thememory block 1104, thememory block 1106, thememory block 1108, thememory block 1110, and thememory block 1111 to perform operations related to thecompute engine 230, theanalytics engine 232, theanalytics cycle engine 234, the userexplicit engine 236, and the userimplicit engine 238, respectively. Theprocessor 1114 may execute the aforementioned instructions from the memory blocks, 1104, 1106, 1108, 1110, and 1111 and output adata stream 1136 via the I/O module 1112 by way of anoutput 1124, such as the Internet. - By way of example, the instructions stored in the memory blocks 1104, 1106, 1108, 1110, and 1111—configured to perform the operations of the
personalization engines computer 1100. Additionally, thegraph database 1122 is configured for storage of the specific graph structures associated with the nodes and relations that form thepersonalization model 400, discussed above and illustrated in the drawings. - Those skilled in the relevant art(s) will appreciate that various adaptations and modifications of the embodiments described above can be configured without departing from the scope and spirit of the disclosure. Therefore, it is to be understood that, within the scope of the appended claims, the teachings featured herein may be practiced other than as specifically described herein.
Claims (20)
1. An interface tool for a computer system configured to provide personalized website content to a user, wherein the computer system includes:
a database for storage of data representative of the user's interaction with existing content presented on the website; and
one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions;
wherein the personalized segments represent a plurality of new content categories for presentation to the user via the website, the interface control device comprising:
a graphical user interface (GUI) configured to allow the user to control presentation of the new content; and
an adjuster permitting the user to control presentation of selective ones of the personalized segments between a range of values.
2. The interface tool of claim 1 , wherein the range of values includes a frequency of presentation of the personalized segments.
3. The interface tool of claim 2 , wherein the range of values includes from interested to disinterested.
4. The interface tool of claim 1 , wherein the adjuster includes at least one of a slider, a button, and a dial.
5. The interface tool of claim 1 , wherein the user controls the selection.
6. The interface tool of claim 1 , wherein the database is a graph database.
7. The interface tool of claim 6 , wherein the data (i) is indicative of content entities of interest to the user and (ii) is stored as nodes.
8. The interface tool of claim 7 , wherein the one or more personalization engines are configured to analyze relations between one or more pairs of the nodes, each analyzed relation creating a respective link, and a structure of each of the links being a function of the user's interaction with the existing content.
9. The interface tool of claim 8 , wherein the structure is associated with a numerical value corresponding to a relative weight of the of the user's level of interest in the respective link.
10. The interface tool of claim 1 , wherein the personalization occurs substantially immediately.
11. A tangible computer-readable medium having stored thereon, computer executable instructions that, if executed by a computing device, cause the computing device to perform a method for provide an interface tool for a computer system configured to provide personalized website content to a user, wherein the computer system includes:
a database for storage of data representative of the user's interaction with existing content presented on the website; and
one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions;
wherein the personalized segments represent a plurality of new content categories for presentation to the user via the website, the method comprising:
allowing the user, via a graphical user interface (GUI), to control presentation of the new content; and
facilitating control, via an adjuster, of the presentation of selective ones of the personalized segments between a range of values.
12. The tangible computer-readable medium of claim 11 , wherein the range of values includes a frequency of presentation of the personalized segments.
13. The tangible computer-readable medium of claim 12 , wherein the range of values includes from interested to disinterested.
14. The tangible computer-readable medium of claim 11 , wherein the adjuster includes at least one of a slider, a button, and a dial.
15. The tangible computer-readable medium of claim 11 , wherein the user controls the selection.
16. The tangible computer-readable medium of claim 11 , wherein the database is a graph database.
17. The tangible computer-readable medium of claim 16 , wherein the data (i) is indicative of content entities of interest to the user and (ii) is stored as nodes.
18. The tangible computer-readable medium of claim 17 , wherein the one or more personalization engines are configured to analyze relations between one or more pairs of the nodes, each analyzed relation creating a respective link, and a structure of each of the links being a function of the user's interaction with the existing content.
19. A profile analysis tool for a computer system configured to provide personalized website content to a user, wherein the profile analysis tool comprising:
a database for storage of data representative of the user's interaction with existing content presented on the website; and
one or more personalization engines configured to (i) analyze relations between portions of the stored data and (ii) personalize segments of new content based upon the analysis, each segment corresponding to a respective one of the portions;
wherein each of the personalized segments corresponds to at least one new content entity type for presentation to the user; and
an interactive interface configured to display a statistical graph (i) representative of the new content entity type and (ii) comprised of slices;
wherein each slice corresponds to one sub-entity within the new entity type, a relative size of each slice being representative a level of the user's interest in the sub-entity.
20. The profile analysis tool of claim 19 , wherein the statistical graph represents a cross-section of the user's personalization profile;
wherein the relative size of the slice is adjustable by the user; and
wherein adjusting the relative size adjusts a proportionate percentage of the sub-entity appearing in the user's personalization profile.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/538,491 US20210382953A1 (en) | 2018-07-16 | 2019-08-12 | Methods and systems for adjusting self-tuning personalization engines in near real-time |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862698719P | 2018-07-16 | 2018-07-16 | |
US201916513668A | 2019-07-16 | 2019-07-16 | |
US16/538,491 US20210382953A1 (en) | 2018-07-16 | 2019-08-12 | Methods and systems for adjusting self-tuning personalization engines in near real-time |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US201916513668A Continuation | 2018-07-16 | 2019-07-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
US20210382953A1 true US20210382953A1 (en) | 2021-12-09 |
Family
ID=78817572
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/538,491 Abandoned US20210382953A1 (en) | 2018-07-16 | 2019-08-12 | Methods and systems for adjusting self-tuning personalization engines in near real-time |
US16/538,484 Active US11687604B2 (en) | 2018-07-16 | 2019-08-12 | Methods and systems for self-tuning personalization engines in near real-time |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/538,484 Active US11687604B2 (en) | 2018-07-16 | 2019-08-12 | Methods and systems for self-tuning personalization engines in near real-time |
Country Status (1)
Country | Link |
---|---|
US (2) | US20210382953A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210248326A1 (en) * | 2020-02-12 | 2021-08-12 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190325863A1 (en) * | 2018-04-20 | 2019-10-24 | Facebook, Inc. | Assisting Users with Personalized and Contextual Communication Content |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003096669A2 (en) * | 2002-05-10 | 2003-11-20 | Reisman Richard R | Method and apparatus for browsing using multiple coordinated device |
US20150032717A1 (en) * | 2006-05-02 | 2015-01-29 | Surf Canyon Incorporated | Real time implicit user modeling for personalized search |
US8442973B2 (en) * | 2006-05-02 | 2013-05-14 | Surf Canyon, Inc. | Real time implicit user modeling for personalized search |
US8180804B1 (en) * | 2010-04-19 | 2012-05-15 | Facebook, Inc. | Dynamically generating recommendations based on social graph information |
US8572129B1 (en) * | 2010-04-19 | 2013-10-29 | Facebook, Inc. | Automatically generating nodes and edges in an integrated social graph |
US8185558B1 (en) * | 2010-04-19 | 2012-05-22 | Facebook, Inc. | Automatically generating nodes and edges in an integrated social graph |
US9633121B2 (en) * | 2010-04-19 | 2017-04-25 | Facebook, Inc. | Personalizing default search queries on online social networks |
US8769434B2 (en) * | 2010-08-11 | 2014-07-01 | Nike, Inc. | Intelligent display of information in a user interface |
US8527497B2 (en) * | 2010-12-30 | 2013-09-03 | Facebook, Inc. | Composite term index for graph data |
WO2012174565A2 (en) * | 2011-06-16 | 2012-12-20 | Radiumone, Inc. | Building a social graph with sharing activity between users of the open web |
US9779385B2 (en) * | 2011-06-24 | 2017-10-03 | Facebook, Inc. | Inferring topics from social networking system communications |
US20130238778A1 (en) * | 2011-08-26 | 2013-09-12 | Reincloud Corporation | Self-architecting/self-adaptive model |
US20130103628A1 (en) | 2011-10-20 | 2013-04-25 | Sidebar, Inc. | User activity dashboard for depicting behaviors and tuning personalized content guidance |
US9292616B2 (en) * | 2014-01-13 | 2016-03-22 | International Business Machines Corporation | Social balancer for indicating the relative priorities of linked objects |
US9836765B2 (en) * | 2014-05-19 | 2017-12-05 | Kibo Software, Inc. | System and method for context-aware recommendation through user activity change detection |
US9563923B2 (en) * | 2014-08-04 | 2017-02-07 | Linkedin Corporation | Revising connection strengths in a social graph |
US9754037B2 (en) * | 2014-08-27 | 2017-09-05 | Facebook, Inc. | Blending by query classification on online social networks |
US20160379270A1 (en) * | 2015-06-24 | 2016-12-29 | OpenDNA Limited | Systems and methods for customized internet searching and advertising |
US10580024B2 (en) * | 2015-12-15 | 2020-03-03 | Adobe Inc. | Consumer influence analytics with consumer profile enhancement |
US20170206276A1 (en) * | 2016-01-14 | 2017-07-20 | Iddo Gill | Large Scale Recommendation Engine Based on User Tastes |
US10911551B2 (en) * | 2017-01-11 | 2021-02-02 | Facebook, Inc. | Methods and systems for providing content to users of a social networking service |
US10810214B2 (en) * | 2017-11-22 | 2020-10-20 | Facebook, Inc. | Determining related query terms through query-post associations on online social networks |
US20190155916A1 (en) * | 2017-11-22 | 2019-05-23 | Facebook, Inc. | Retrieving Content Objects Through Real-time Query-Post Association Analysis on Online Social Networks |
US11657094B2 (en) * | 2019-06-28 | 2023-05-23 | Meta Platforms Technologies, Llc | Memory grounded conversational reasoning and question answering for assistant systems |
-
2019
- 2019-08-12 US US16/538,491 patent/US20210382953A1/en not_active Abandoned
- 2019-08-12 US US16/538,484 patent/US11687604B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190325863A1 (en) * | 2018-04-20 | 2019-10-24 | Facebook, Inc. | Assisting Users with Personalized and Contextual Communication Content |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210248326A1 (en) * | 2020-02-12 | 2021-08-12 | Samsung Electronics Co., Ltd. | Electronic apparatus and control method thereof |
Also Published As
Publication number | Publication date |
---|---|
US20210390150A1 (en) | 2021-12-16 |
US11687604B2 (en) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9892109B2 (en) | Automatically coding fact check results in a web page | |
US8442923B2 (en) | Temporal document trainer and method | |
US8935197B2 (en) | Systems and methods for facilitating open source intelligence gathering | |
US10803245B2 (en) | Compiling documents into a timeline per event | |
US20170091838A1 (en) | Product recommendation using sentiment and semantic analysis | |
EP3189449A2 (en) | Sentiment rating system and method | |
US20160055235A1 (en) | Determining sentiments of social posts based on user feedback | |
US20180181667A1 (en) | System and method to model recognition statistics of data objects in a business database | |
US20150161174A1 (en) | Content-based image ranking | |
US20130046771A1 (en) | Systems and methods for facilitating the gathering of open source intelligence | |
TWI449410B (en) | Personalized Sorting Method of Internet Audio and Video Data | |
KR20160057475A (en) | System and method for actively obtaining social data | |
US20210019213A1 (en) | Systems and methods for the analysis of user experience testing with ai acceleration | |
US10482142B2 (en) | Information processing device, information processing method, and program | |
US10387805B2 (en) | System and method for ranking news feeds | |
US20170193531A1 (en) | Intelligent Digital Media Content Creator Influence Assessment | |
US11687604B2 (en) | Methods and systems for self-tuning personalization engines in near real-time | |
Ashraf et al. | Personalized news recommendation based on multi-agent framework using social media preferences | |
Zamith | Editorial judgment in an age of data: How audience analytics and metrics are influencing the placement of news products | |
US9965766B2 (en) | Method to expand seed keywords into a relevant social query | |
WO2021030636A1 (en) | Systems and methods for the analysis of user experience testing with ai acceleration | |
Cardoso Coutinho et al. | Making social media analysis more efficient through taxonomy supported concept suggestion | |
AU2016204641A1 (en) | Infer a users interests and intentions by analyzing their interaction and behavior with content accessed in the past, present & future | |
Nambissan et al. | Recommender Systems-The Lifeline Of The Current Streaming Zeitgeist | |
Massad | Stimulating Engagement Through Negative Emotional Sentiment on Twitter |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER |
|
STPP | Information on status: patent application and granting procedure in general |
Free format text: FINAL REJECTION MAILED |
|
STCV | Information on status: appeal procedure |
Free format text: NOTICE OF APPEAL FILED |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |