The present disclosure relates to the field of behavioral targeting of on-line user behaviour. In particular, to a method and a system for machine-learning based user profiling.
Behavioral targeting is a technique that is used to increase the effectiveness of advertisements, or goods and services offerings, to be presented to a potential consumer (a.k.a. a user) based on historic behaviors (e.g. actions, activities) by the user. Analysis of the user's previous actions in on-line interactions (e.g. web pages viewed, multimedia items selected, and products purchased) using rules or algorithms can result in a characterization of the user's preferences that can be embodied in a user profile.
Typically the rules or algorithms used to generate a user profile (i.e. profiling) are adapted to the specific domain (e.g. searching or viewing Internet web pages) in which the user is participating. The rules or algorithms are typically derived from the analysis of the behaviors of a set of users having activities in the specific domain. In the previous art, the rules or algorithms used in the analysis have been the result of either human development or machine-learning Human developed rules or algorithms are labor intensive and can be error prone. Machine-learned rules derived by data mining of user historic data can be computing intensive, time consuming and as such is done as an off-line (i.e. not real-time) activity.
Accordingly, method and system that enable improved machine-learning based profiling of user on-line actions remains highly desirable.
In accordance with an aspect of the present disclosure there is provided a method of profiling a user of a computing device, connected to a network, based upon a user's on-line actions. The method comprising: receiving a user event generated by actions performed by the user on the computing device, the user event identifying event identification information indicating content requested by the user and a user identifier; performing a look-up in a cached web map using the event identification information to determine classification information associated with the content requested by the user, the classification information providing a text-score record comprising at least a text string and a score associated with the text string, the text string defined in relation to a lexical ontology comprising a hierarchy of categories, and the score representing a strength of association of the text string to the content; retrieving classification information associated with the event identification information from the cached web map if classification information is present for the event identification information; retrieving a user profile associated with the user identification information from a profile database; generating profile update information by applying profiling rules defining known associations between user action events and user behaviours to the retrieved classification information for the user event, wherein the profile update information identifies how to modify the user profile by adding classification identification information or modifying existing classification identification information scores stored in the profile; updating the user profile based upon the update information, the user profile providing a characterization of the user's preferences; and storing the updated user profile wherein the user profile can be accessed by an external advertising server.
In accordance with another aspect of the present disclosure there is provided a system for profiling a user of a computing device, connected to a network based upon a user's on-line actions. The system comprising: an event receiver module for receiving a user event generated by the actions performed by the user on the computing device, the user event identifying event identification information indicating content requested by the user and a user identifier; a web map module for storing classification information associated a plurality of event identification information instances, the classification information providing a text-score record comprising at least a text string and a score associated with the text string, the text string defined in relation to a lexical ontology comprising a hierarchy of categories and fine grain text, and the score representing a strength of association of the text string to the content; an event processor module for processing the received user event to determine classification information from the web map based upon the event identification information; a profile database comprising a plurality of user profiles, each profile identifying classification information associated with a unique user identifier and providing a characterization of the user's preferences; and a profiling engine module for retrieving a user profile form the profile database based upon the received user identifier and for generating update information by applying profiling rules defining known associations between user action events and user behaviours to the retrieved classification information to update the retrieved user profile, wherein the profile update information identifies how to modify the user profile by either adding classification identification information or modifying existing classification identification information score stored in the profile.
In accordance with another aspect of the present disclosure there is provided a computer-readable storage medium containing instructions for execution on a processor for performing a method of profiling a user of a computing device, connected to a network, based upon a user's on-line actions. The instructions comprising: receiving a user event generated by actions performed by the user on the computing device, the user event identifying event identification information indicating content requested by the user and a user identifier; performing a look-up in a cached web map using the event identification information to determine classification information associated with the content requested by the user, the classification information providing a text-score record comprising at least a text string and a score associated with the text string, the text string defined in relation to a lexical ontology comprising a hierarchy of categories, and the score representing a strength of association of the text string to the content; retrieving classification information associated with the event identification information from the cached web map if classification information is present for the event identification information; retrieving a user profile associated with the user identification information from a profile database; generating profile update information by applying profiling rules defining known associations between user action events and user behaviours to the retrieved classification information for the user event, wherein the profile update information identifies how to modify the user profile by adding classification identification information or modifying existing classification identification information scores stored in the profile; updating the user profile based upon the update information, the user profile providing a characterization of the user's preferences; and storing the updated user profile wherein the user profile can be accessed by an external advertising server.
Further features and advantages of the present disclosure will become apparent from the following detailed description, taken in combination with the appended drawings, in which:
It will be noted that throughout the appended drawings, like features are identified by like reference numerals.
Embodiments are described below, by way of example only, with reference to
Behavioral targeting is a technique that is used to increase the effectiveness of advertisements, or goods and services offerings, to be presented to a potential consumer (a.k.a. a user) based on historic behaviors (e.g. actions, activities) by the user. Analysis of the user's previous actions during interaction with interactive computer devices such as web pages viewed, multimedia items selected or viewed, and products purchased, are analyzed using rules or algorithms that result in a characterization of the user's preferences that can be embodied in a user profile. The interactions of a user in an on-line interactive environment with web pages or multimedia content through a web browser, interactive viewing devices such as computers, set-top boxes, interactive television applications such as internet protocol television (IPTV), media computing devices, smart phones, or mobile computing platforms can be tracked.
A method and system for machine-learning based profiling generates a user profile by receiving user events (e.g. web page views), obtaining classification information associated with an object of the event (e.g. the web page), and applying modeling rules obtained from a modeling system. The user profile can be provided to an external system such as, for example, an advertising server that uses the user profile in the targeting (i.e. selecting based on the user's profile) of content (e.g. advertisements) to be presented to the user. The user events can be provided to the modeling system where they are used in the generation of the modeling rules.
The event receiver 210 receives events from the ISP infrastructure. Each event represents an action or activity initiated by the user. For the purposes of this description the event is a web page view. In an alternative embodiment the event can, for example, be a multimedia item selection or a product purchase. Each event includes identifying information specific to the user and to the event. For example, an event representing a web page view includes a Universal Resource Locator (URL) which identifies the viewed web page. The event receiver 210 forwards events to the event processor 220. The event receiver 210 can remove personally identifying information (PII) from the events while still allowing the event to be associated with a specific user before forwarding the event to the event processor 220. This may include, for example, substituting an anonymous identifier for an Internet Protocol (IP) number of the user. Further the event receiver 210 can filter events associated with sensitive web pages or content and not forward them to the event processor 220. This filtering may be done using a list of sensitive web pages.
The event processor 220 receives events from the event receiver 210. The event processor 220 uses the event identifying information (e.g. the web page URL) included in the event to look-up the web page associated with the event in the cached web map module 260. When the viewed web page (i.e. the URL) is found in the cached web map module 260, classification information corresponding to the viewed web page is sent from the cached web map module 260 to the event processor 220. The classification information together with user identity information associated with the event are sent by the event processor 220 to the profiling engine 250 to generate or update a profile associated with a particular user ID. When the viewed web page (i.e. the URL) is not found in the cached web map module 260, the URL is sent to the modelling platform processor 280 of modeling system 110 that can include a web map/crawler module 280 for mapping target website (or content) and generating associated classification information for the website. The web map/crawler module 282 may then send the generated classification information for the website to the cached web map module 260. Each received event is sent by the event processor 220 to the clickstream collection unit 230.
In an alternative embodiment where the event involves an action other than a web page view (e.g. viewing a television program or consuming a media presentation), reference herein to the cached web map module 260 can be replaced with reference to an event categorization and attribution lookup module which provides corresponding functionality for non-web-page view events.
Referring again to
As described above, the profiling engine 250 may adjust a user's profile based on the characterisation information associated with a web page. Additionally the profiling engine 250 can use the text-timestamp records 420 associated with a user as input when determining an update to the user's profile 400. The text-timestamp records 420 can provide a history of the user's interest and so help determine possible patterns in the history and so better characterize the user.
The profiling engine 250 may use the characterisation information of the event, the user's profile, including the fine grain category activity and the profiling rules generated by the modelling system 110 in order to modify the user's profile based on the current events, and past, events represented in the fine grain category activity information.
Referring again to
The clickstream collection unit 230 receives the event from the event processor, removes the user identifier and then sends the event to the modeling data aggregator 240.
The modeling data aggregator 240 aggregates one or more events received over time from the clickstream collection unit 230. The events can be aggregated for a pre-determined time period (e.g. a day, a week, thirty days, etc) before being sent to the modeling system 110 for analysis. Further, the modeling data aggregator 240 can select a sample set of the events received (as opposed to all of the events) to be sent to the modeling platform 280 of modelling system 110.
Referring again to when it is determined if the URL is in the web map at 514, if a match for the event identification information is not found in the map, NO at 514, the event identifying information (e.g. the URL) is sent 530 to the modeling system 110 to, for example, be provided to the web map crawler 282. When the modeling system 110 has visited the URL it can then provide classification information associated with the event identification information (e.g. URL) to update the cached web map module 260 at 532.
As shown in
The updated profiling models and rules received at the profiling engine are used by the profiling engine when generating the profile update information. The rules allow the profiling engine to identify patterns or trends in the information the user shows an interest in and update the user profile information accordingly.
The method 500 according to the present disclosure can be implemented by a computer program product comprising computer executable instructions stored on a computer-readable storage medium such as read only memory, random access memory, hard drive or solid state storage, optical storage, or flash memory for execution by a processor of a computing device.
It will be apparent to one skilled in the art that numerous modifications and departures from the specific embodiments described herein may be made without departing from the spirit and scope of the present disclosure.
This application claims priority, under 35 U.S.C. § 119(e), to U.S. Provisional Patent Application Ser. No. 61/116,667, filed on Nov. 22, 2008. U.S. Provisional Patent Application Ser. No. 61/116,667 is hereby incorporated by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
4975840 | DeTore et al. | Dec 1990 | A |
6327580 | Pierce et al. | Dec 2001 | B1 |
6336099 | Barnett et al. | Jan 2002 | B1 |
6778982 | Knight et al. | Aug 2004 | B1 |
6883008 | Crivella et al. | Apr 2005 | B2 |
6898598 | Himmel et al. | May 2005 | B2 |
7120790 | LoPresti | Oct 2006 | B1 |
7162451 | Berger et al. | Jan 2007 | B2 |
7181438 | Szabo | Feb 2007 | B1 |
7213032 | Mascarenha | May 2007 | B2 |
7281054 | Ishioka et al. | Oct 2007 | B2 |
7373336 | Jasinschi et al. | May 2008 | B2 |
7379946 | Carus et al. | May 2008 | B2 |
7383203 | Feldstein et al. | Jun 2008 | B1 |
7409393 | Gregoire et al. | Aug 2008 | B2 |
7421725 | Hane et al. | Sep 2008 | B2 |
7467414 | Schlesinger | Dec 2008 | B2 |
7533399 | Ma et al. | May 2009 | B2 |
7689536 | Weissman et al. | Mar 2010 | B1 |
7756509 | Rajagopalan et al. | Jul 2010 | B2 |
7793213 | Shmukler et al. | Sep 2010 | B2 |
7797305 | Basson et al. | Sep 2010 | B2 |
7801896 | Szabo | Sep 2010 | B2 |
7870279 | Chuang et al. | Jan 2011 | B2 |
7962471 | Adar et al. | Jun 2011 | B2 |
7979468 | DeWoolfson | Jul 2011 | B2 |
8005833 | Adar et al. | Aug 2011 | B2 |
8032395 | Helmus et al. | Oct 2011 | B2 |
8185553 | Carus et al. | May 2012 | B2 |
8219585 | DeWoolfson | Jul 2012 | B2 |
8224855 | DeWoolfson | Jul 2012 | B2 |
8510340 | Carus et al. | Aug 2013 | B2 |
8515997 | DeWoolfson | Aug 2013 | B2 |
8782088 | Carus et al. | Jul 2014 | B2 |
20020059395 | Liou | May 2002 | A1 |
20030149975 | Eldering et al. | Aug 2003 | A1 |
20050228815 | Carus et al. | Oct 2005 | A1 |
20050234753 | Pinto et al. | Oct 2005 | A1 |
20070073682 | Adar et al. | Mar 2007 | A1 |
20080091634 | Seeman | Apr 2008 | A1 |
20080255884 | Carus et al. | Oct 2008 | A1 |
20090171760 | Aarnio et al. | Jul 2009 | A1 |
20090254540 | Musgrove et al. | Oct 2009 | A1 |
20090313278 | Dewoolfson | Dec 2009 | A1 |
20100293057 | Haveliwala et al. | Nov 2010 | A1 |
20110295900 | DeWoolfson | Dec 2011 | A1 |
20110295911 | DeWoolfson | Dec 2011 | A1 |
20120209626 | Carus et al. | Aug 2012 | A1 |
20120232923 | Carus et al. | Sep 2012 | A1 |
20120317118 | DeWoolfson | Dec 2012 | A1 |
20140288973 | Carus et al. | Sep 2014 | A1 |
Number | Date | Country |
---|---|---|
2079046 | Jul 2009 | EP |
2169854 | Mar 2010 | EP |
Entry |
---|
Nasraoui, Olfa, Maha Soliman, Esin Saka, Antonio Badia, and Richard Germain. “A web usage mining framework for mining evolving user profiles in dynamic web sites.” Knowledge and Data Engineering, IEEE Transactions on 20, No. 2 (2008): 202-215. |
Gauch, Susan, Mirco Speretta, and Alexander Pretschner. “Ontology-based user profiles for personalized search.” in Ontologies, pp. 665-694. Springer US, 2007. |
Challam, Vishnu Kanth Reddy. “Contextual information retrieval using ontology based user profiles.” PhD diss., university of Kansas, 2004. |
Zhu, Xiaolan, Susan Gauch, Lutz Gerhard, Nicholas Kral, and Alexander Pretschner. “Ontology-based web site mapping for information exploration.” In CIKM, vol. 99, pp. 188-194. 1999. |
Preliminary Research Report and Written Opinion issued in related French Patent Application No. 1002120, dated Dec. 27, 2010, and English translation thereof, 18 pages. |
Number | Date | Country | |
---|---|---|---|
20100138370 A1 | Jun 2010 | US |
Number | Date | Country | |
---|---|---|---|
61116667 | Nov 2008 | US |