US20070233671A1 - Group Customized Search - Google Patents

Group Customized Search Download PDF

Info

Publication number
US20070233671A1
US20070233671A1 US11/675,057 US67505707A US2007233671A1 US 20070233671 A1 US20070233671 A1 US 20070233671A1 US 67505707 A US67505707 A US 67505707A US 2007233671 A1 US2007233671 A1 US 2007233671A1
Authority
US
United States
Prior art keywords
group
user
profile
computer
search
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
Application number
US11/675,057
Inventor
Bilgehan Oztekin
Bryan Horling
Darya Antonova
Ye Zhou
Adam Klein
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Priority to US11/675,057 priority Critical patent/US20070233671A1/en
Assigned to GOOGLE INC. reassignment GOOGLE INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: ANTONOVA, DARYA GENNADIEVNA, HORLING, BRYAN, KLEIN, ADAM, OZTEKIN, BILGEHAN UYGAR, ZHOU, YE
Publication of US20070233671A1 publication Critical patent/US20070233671A1/en
Assigned to GOOGLE LLC reassignment GOOGLE LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: GOOGLE INC.
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Definitions

  • the present invention relates generally to the field of a search engine in a computer network system, in particular to a system and method of customizing rankings of search results in response to search queries submitted by members of one or more user groups.
  • Search engines are powerful tools for locating and retrieving documents from the Internet (or an intranet).
  • the search results produced by a search engine are independent of the user who issued the search query.
  • the search engine generates the same search result for the search query “apple” irrespective of whether the search query is from users interested in Apple® computers or the fruit malus domestica.
  • the search results returned for the search query “apple” are likely to include some results of little interest to these respective groups of users.
  • search engine that can customize its search results so as to highlight information items in the search results that are most likely to be of interest to the users who submit the search queries. Further, it would be desirable for such a system to operate without explicit input from a user with regard to the user's personal preferences and interests, and for the system to protect the privacy interests of its users.
  • a computer-implemented method associates a plurality of groups with a user. Each group may have at least one profile. The method also includes receiving a search query from the user and identifying information items associated with the search query. The method computes adjusted scores for the information items based on the groups' profiles, and ranks the information items accordingly before providing the ranked information items to the user.
  • a computer-implemented method associates a group having a plurality of profiles with a user.
  • the method also includes receiving a search query from the user and identifying information items associated with the search query.
  • the method computes adjusted scores for the information items based on the group's profiles, and ranks the information items accordingly before providing the ranked information items to the user.
  • Some embodiments may be implemented on either the client side or the server side of a client-server network environment.
  • FIG. 1 is a block diagram of an exemplary distributed system that includes a plurality of groups and clients requesting information from an information server in accordance with some embodiments.
  • FIG. 2 is a flow diagram of a process for generating a group profile using search queries, search results and user activities.
  • FIG. 3 is a block diagram of a process for updating a group profile by merging an incremental group profile into the group profile.
  • FIG. 4 is a prophetic example of a curve characterizing the popularity distribution of search queries.
  • FIG. 5A is a block diagram illustrating how a website group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 5B is a block diagram illustrating how an internet address group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 5C is a block diagram illustrating how a group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 6A is a block diagram of an exemplary category map that may be used for generating category-based group profiles in accordance with some embodiments.
  • FIG. 6B is a block diagram of an exemplary data structure that may be used for storing category-based group profiles in accordance with some embodiments of the present invention.
  • FIG. 6C is a block diagram “snapshot” of an exemplary data structure that may be used for storing groups and profiles associated with a user at a particular point in time in accordance with some embodiments.
  • FIG. 7 is a block diagram of an exemplary data structure that may be used for storing term-based group profiles in accordance with some embodiments.
  • FIG. 8 is a block diagram of an exemplary data structure that may be used for storing link-based group profiles in accordance with some embodiments.
  • FIG. 9 is a flow diagram of a process for generating group-dependent search results using group profiles in accordance with some embodiments.
  • FIG. 10 is a block diagram of exemplary data structures that may be used for storing category-based, term-based, and link-based boost factors for documents in the search results in accordance with some embodiments.
  • FIG. 11 is a flow diagram of another process for generating group-dependent search results using group profiles in accordance with some embodiments.
  • FIG. 12 is a block diagram of an exemplary information server in accordance with some embodiments.
  • FIG. 13 is a flow diagram of a process for providing a user with customized group-dependent search results according to some embodiments.
  • FIG. 14 is a flow diagram of another process for providing a user with customized group-dependent search results according to some embodiments.
  • FIG. 1 is a block diagram of an exemplary environment 100 for implementing some embodiments of the present invention.
  • One or more websites 102 and clients 103 can be connected to a communication network 104 .
  • the communication network 104 can be connected to an information server 106 .
  • the information server 106 may include a front end server 120 , a search engine 122 , a document profiler 125 , a group profiler 129 , a search result ranker 126 , a document profile database 123 , a content database 124 , a search history database 127 , and a group profile database 128 .
  • the information server 106 contains a subset or superset of the elements illustrated in FIG. 1 .
  • FIG. 1 shows the information server 106 as a number of discrete items, the figure is intended more as a functional description of the various features which may be present in the information server 106 rather than a structural schematic of the various embodiments.
  • items shown separately could be combined and some items could be further separated, as would be recognized by one of ordinary skill in the art of designing such systems.
  • the four different databases 123 , 124 , 127 , and 128 shown separately in the figure could be implemented by a single database server.
  • the actual number of computers constituting the information server 106 and the allocation of features among the computers will vary from one implementation to another, and may depend in part on the amount of traffic that the information server 106 must handle during peak usage periods as well as during average usage periods.
  • a website 102 is typically a collection of webpages associated with a domain name on the Internet. Each website (or webpage) has a universal resource locator (URL) that uniquely identifies the location of the website (or webpage) on the Internet. Any visitor can visit the website by entering its URL in a browser window.
  • a website can be hosted by a web server exclusively owned by the owner of the domain name or by an Internet service provider wherein its web server manages multiple websites associated with different domain names.
  • the website 102 includes webpage 116 , which may have an associated search box. From the search box, a visitor to the webpage 114 can search the website 102 or the entire Internet for relevant information by entering a search query into the search box.
  • website refers to a logical location (e.g., an Internet or intranet location) identified by a URL, or it refers to a web server hosting the website represented by the URL.
  • a logical location e.g., an Internet or intranet location
  • some “websites” are distributed over multiple Internet or network locations, but have a shared web server hosting those locations, and in many situations it is logical to consider those network locations to all be part of “a website.”
  • a client 103 can be any of a number of devices (e.g., a computer, an internet kiosk, a personal digital assistant, a cell phone, a gaming device, a desktop computer, or a laptop computer) and can include a client application 132 , a client assistant 134 , and/or client memory 136 .
  • the client application 132 can be a software application that permits a user to interact with the client 103 and/or network resources to perform one or more tasks.
  • the client application 132 can be a browser (e.g., the computer program available under the trademark Firefox®) or other type of application that permits a user to search for, browse, and/or use resources (e.g., webpages and web services) at the website 102 from the client 103 and/or accessible via the communication network 104 .
  • the client assistant 134 can be a software application that performs one or more tasks related to monitoring or assisting a user's activities with respect to the client application 132 and/or other applications.
  • the client assistant 134 assists a user at the client 103 with browsing for resources (e.g., files) hosted by the website 102 ; processes information (e.g., search results) received from the information server 106 ; and monitors the user's activities on the search results.
  • the client assistant 134 is part of the client application 132 , available as a plug-in or extension to the client application 132 (provided, for example, from various online sources), while in other embodiments the client application is a stand-alone program separate from the client application 132 .
  • the client assistant 134 is embedded in one or more webpages or other documents downloaded from one or more servers, such as the information server 106 .
  • Client memory 136 can store information such as webpages, documents received from the information server 106 , system information, and/or information about a user.
  • the communication network 104 can be any wired or wireless local area network (LAN) and/or wide area network (WAN), such as an intranet, an extranet, or the Internet. It is sufficient that the communication network 104 provide communication capability between the websites 102 , the clients 103 and the information server 106 .
  • the communication network 104 uses the HyperText Transport Protocol (HTTP) to transport information using the Transmission Control Protocol/Internet Protocol (TCP/IP).
  • HTTP permits client computers to access various resources available via the communication network 104 .
  • the various embodiments of the invention are not limited to the use of any particular protocol.
  • resource refers to any piece of information or service that is accessible via a URL and can be, for example, a webpage, a document, a database, an image, a computational object, a search engine, or other online information service.
  • a user from client 103 may send to a website 102 a request for a webpage.
  • the website responds by identifying the requested webpage and returning it to the requesting client 103 .
  • the webpage may include a document of interest to the user (e.g., a newspaper article).
  • the webpage may also include a search box (e.g., at or near the top of the webpage). While or after browsing the content of the webpage, the user may be interested in getting more information. To do so, the user can enter a search query and submit the search query to the website 102 , a search engine, or the like.
  • the search query may include one or more query terms.
  • the website 102 upon receipt of the search query, the website 102 generates and sends a search request to the information server 106 .
  • the client 103 generates and sends the search request directly to the information server 106 without routing the request through the website 102 .
  • the user may choose to use the website of a third party search engine directly.
  • the search request may include the search query and unique identifiers of one or more of the following entities: the website 102 being viewed, a website previously viewed by the user, the requesting user, and the requesting client 103 .
  • the identifier for a website may be a URL of a particular web page, or a prefix portion of the URL that identifies the website or a portion of the website.
  • the search engine 122 or other portion of the information server 106 may determine the appropriate portion of the URL to use for determining a group associated with the user.
  • the front end server 120 is configured to handle a variety of requests from the websites 102 and the clients 103 via their respective connections with the communication network 104 .
  • the front end server 120 is connected to the search engine 122 and the search engine 122 is connected to the content database 124 , respectively.
  • the content database 124 stores a large number of indexed documents retrieved from different websites. Alternately, or in addition, the content database 124 stores an index of documents stored at various websites.
  • each indexed document is assigned a page rank according to the document's link structure. The page rank serves as a query-independent measure of the document's importance.
  • the front end server 120 passes the search request onto the search engine 122 .
  • the search engine 122 then communicates with the content database 124 to select a plurality of information items (e.g., documents) in response to the search request.
  • the search engine 122 assigns a generic ranking score to each information item based on the item's page rank, the text associated with the item, and the search query.
  • information items will often be referred to as “documents;” but it is to be understood that information items need not be documents, and may include other types or forms of information.
  • the search engine 122 is also connected to the document profile database 123 .
  • the document profile database 123 may store a document profile for each indexed document in the content database 124 .
  • Both the document profile database 123 and the content database 124 are connected to the document profiler 125 .
  • the document profiler For each document in the content database 124 , the document profiler generates a document profile by analyzing the content of the document and its link structure. The generation of document profiles is independent of the operation of the search engine 122 .
  • the document profiler 125 is invoked to generate a document profile whenever the information server 106 identifies a new document or a new version of an existing document on the Internet.
  • the document profiler 125 is invoked periodically to generate document profiles for all new files identified during a predetermined time period.
  • the document profile database 123 and the content database 124 are merged together so that a document and its associated profile can be located by a single database query.
  • the search engine 122 sends the identified documents and their associated document profiles to the search result ranker 126 .
  • the search result ranker 126 has a connection to the group profile database 128 .
  • the group profile database 128 stores a large number of group profiles including group profiles of one or more groups associated with a requesting user.
  • the search result ranker 126 may use a group profile associated with users of a website 102 (e.g., a website currently or recently visited by the user) to convert the generic ranking score of each identified document into a group-dependent ranking score. The documents are then re-ordered in accordance with their respective group-dependent ranking scores.
  • the search result ranker 126 creates a search result in accordance with the updated order of the documents.
  • the search result includes multiple document links, at least one for each document.
  • the search result, or a portion of the search result (e.g., information identifying the top 10, 15 or 20 information items or documents), is returned to the requesting client 103 and displayed to the user through the client application 132 .
  • the user after browsing the search result, may click one or more document links in the search result to download and view one or more documents identified by the search result.
  • the group profile (associated with the user from whom a search query is received) may be transmitted with the search query to the search engine 122 , and the search engine 122 may use that information to compute group specific document scores for ranking the search results. In effect, this would merge the search result ranker 126 into the search engine 122 .
  • an identifier of the group profile may be transmitted with the search query to the search engine 122 . If the search engine 122 has a copy of the group profile or has access to the group profile, it can then use that information to compute group specific document scores. In yet other embodiments, other divisions of tasks may be used.
  • a group profile should reflect the interests of the users of the associated group, and in many embodiments the group profile will be unique to its associated group. For example, users of a consumer electronics website should have a group profile that boosts webpages related to electronic products while users of an on-line grocery store should have a group profile that promotes webpages related to food. Users of both the consumer electronics website and the on-line grocery store may be associated with both groups.
  • a group profile is not static, because a static group profile is unlikely to result in the information server 106 serving the most relevant search results to users of the associated group. Instead, a group profile is updated from time to time, (i.e., periodically) so as to re-align the group profile with the current interest of the users associated with the group. While some group profiles may remain virtually static for long periods of time (e.g., for groups associated with a small, static population of users, and/or users having interests focused on a very narrow range of topics), many group profiles will vary over time as the associated users change and as the users' interests vary over time.
  • a respective group profile may be based on dated information, with older information receiving lower weightings than newer information when constructing a vector or other representation of the group profile.
  • the information for each successively older time period may be down weighted by a predefined scaling factor, so that information from a period that is more than N (e.g., a value between 5 and 20) periods old has less than half the impact on the group profile as information from the current period.
  • the profile for a particular group may include weights depending on the number of “clicks” or visits by the users to a particular website, webpage, or set of websites during a particular window in time. For example, if users associated with a particular location group (e.g., Alexandria, Va.) frequently visit the website of a local park (e.g. Mason Neck State Park), the weight for the local park website within the local group profile would be increased.
  • the weights in a group profile may be associated with one or more half-lives or other time modulations to allow the information server to provide the most relevant and timely search results.
  • “clicks” on the Mason Neck State Park website may be more frequent on Fridays and Saturdays in the months of April through October than at other times, so the weight for the Mason Neck Park website for users associated with the Alexandria, Va. group might be higher for a search done on a Friday in July than for a search done on a Tuesday in December.
  • users associated with a consumer electronics group may “click” on information about Shakira at a particularly high frequency at a particular time, but the frequency of “clicks” may decay over a year, a week, a day, a minute, or other time period.
  • the time decay rate of “clicks” is stored in the form of half lives over several different periods of time.
  • a group profile can also be based on characteristics other than user clicks.
  • Other characteristics of user behavior that can be used in a group profile include one or more of the following: the length of time that a user interacts with the website, the proportion of the website viewed by the user, actions (in addition to clicks) taken by a user while visiting the website (e.g., printing, bookmarking, cutting and pasting, annotating), and a user's activity subsequent to the interaction with the website.
  • a typical user profile is generated by analyzing an individual user's search history. This user profile is only used to modulate search results responsive to search queries submitted by the same user. For the same search query, two different users may receive different search results from the same search engine if they have different user profiles.
  • a group profile is usually generated by analyzing the search history of multiple users so as to characterize the multiple users' interests.
  • the size of a group may range, for example from a predefined minimum value to approximately one million, or as many as the number of users for whom characteristics may be reasonably stored.
  • the minimum size of a group may be selected or determined so as to preserve the privacy interests of the group members.
  • a group profile can be used to modulate search results responsive to search queries submitted by any user from the same group, including new users of the group who made no prior “contribution” to the group profile. Therefore, the same user submitting the same search query from two different locations (e.g. websites, computers, ip addresses, or geolocations) may receive different search results if the two locations have different group profiles.
  • a group profile also has an important advantage over the user profile in terms of protecting a user's privacy.
  • a group profile is based on information associated with at least a sufficient number of users to protect the privacy of those users.
  • a group profile contains at least approximately 256 users to protect individual users' privacy, while in other embodiments the minimum size of a respective group is a value between ten and 512 , while in another embodiment the minimum size is between ten and 10,000).
  • a user profile is associated with an individual user. To create the user profile, the individual user, either explicitly or implicitly (e.g., by monitoring or logging search queries and other online activities of the user), needs to complete a survey of his or her personal preferences. This survey indicates what information items may be of interest to the user.
  • the user must have an account at a website or a search engine system and the user must log into his or her account to invoke the user profile to personalize the search results.
  • the creation and usage of the group profile does not require any personal information from any user.
  • a group profile is associated with a group of users, not an individual user. Any individual user's activity is attributed to all the users in the corresponding group or groups. A user does not need to log into his or her account at the website in order to use the group profile. As long as the user may be associated with a group, the information server automatically “personalizes” the corresponding search result in accordance with the group profile.
  • the group profiler 129 is responsible for generating and updating group profiles.
  • the group profiler 129 may need to have access to the users' search history.
  • the users' search history includes the search queries submitted by users, the search results responsive to the search queries, the users' activities on the search results (e.g., selection of a document link, sometimes called “clicking” on a search result, amount of time spent at a document after selecting the document link, mouse hovering time over a document link, or the like), the current website viewed by the user, the last n websites viewed by the user (where n is a whole number, typically on the order of five to ten), the user's favorite websites, or the like.
  • the front end server 120 when the front end server 120 receives a search, it submits a copy of the search query to the search engine 122 in order to solicit a search result. In addition, the front end server 120 sends another copy of the search query to the search history database 127 . The search history database 127 then generates a record, the record including at least the search query and one or more group identifiers or other information from which one or more group identifiers can be derived.
  • the search result ranker 126 prepares search results responsive to the search query.
  • the search result i.e., information representing at least a portion of the search results
  • the search result is sent back to the requesting client through the front end server 120 .
  • a copy of the search result, or a portion of the search result, is also stored in the search history database 127 together with the search query record.
  • the client assistant 134 at the requesting client monitors the requesting user's activities on the search result, e.g., recording the user's selection(s) of the document links in the search result and/or the mouse hovering time on different document links.
  • the client assistant 134 or the group profiler 129 determines the document “dwell time” for a document selected by the user, by determining the amount of time between user selection of the corresponding document link and the user exiting from the document.
  • the client assistant 134 includes executable instructions, stored in the webpage(s) containing the search result, for monitoring the user's actions with respect to the search results and transmitting information about the monitored user actions back to the information server 106 .
  • the search results are served to the requesting users with an embedded client assistant 134 that sends information about the user activities on the search results to the group profiler 127 .
  • the information server 106 stores information about these user activities in the search history database 127 for subsequent use.
  • the search history database 127 may allocate amounts of storage space for different groups. As a result, the volume of search history associated with a group does not exhaust its designated space or waste too much space before the next scheduled profile updating.
  • the group profiler 129 records the moment that a user submits a search query (t 0 ), the moment that the user clicks the first document link in the corresponding search result (t 1 ), and the moment that the user clicks the second document link in the search result (t 2 ), etc.
  • the differences between two consecutive moments e.g., t 1 ⁇ t 0 or t 2 ⁇ t 1 ) are reasonable approximations of the amount of time spent viewing the search result or the document whose link was selected by the user.
  • the group profiler 129 has no information about the user's dwell time for the last document in the search result that the user selects for viewing.
  • the group profiler 129 also receives click and timestamp information for user actions after the user finishes viewing documents from a search result.
  • the group profiler 129 further records the moment that the user submits a second query (t 3 ), the moment the user selects a document from the second search results (t 4 ), and so on.
  • the group profiler 129 may record the moment (t 5 ) when the user either closes the browser window that was being used to view search results and documents listed in the search results or navigates away from the webpage or document with the search results.
  • This additional information enables the group profiler 129 to determine the user dwell time for all search result documents (i.e., documents listed in search results) viewed by a user, which in turn enables the group profiler 129 to generate a more accurate group profile for a group.
  • FIG. 2 is a flow diagram of a process for generating a group profile using characteristics associated with the user in accordance with some embodiments of the present invention.
  • the group profiler 129 identifies characteristics associated with the user ( 210 ).
  • the group profiler 129 may identify a website; a location (including a geolocation) such as a country, region, city or the like; an internet address (e.g.
  • ip Internet Protocol
  • TCP/IP address TCP/IP address
  • Ethernet address network address
  • subnet address or the like
  • domain name or a portion of a domain name a host name
  • users' history including past viewed websites, past search queries, selected search results, dwell time or the like
  • user profiles or portions thereof, a language and/or other characteristics that may be associated with more than one user (such as a user type, for example a power user or a teenager).
  • Some groups associated with a user may be determined based on known affiliations of the user, such as membership in a mailing list, membership of a website, clubs, teams, businesses, schools, etc. At least some of these groups may be groups that the user has explicitly or implicitly joined.
  • These user characteristics may include some or all search queries submitted by users.
  • the identified search queries may comprise a subset or sampling of the submitted search queries. Search queries submitted during a predetermined time period presumably represent the general interest of the users submitting the queries.
  • the search queries may capture dynamic user interests that vary by time.
  • the group profiler 129 may identify online activities of users. Identified user activities may include user clicks on document links in search results. In another example, identified user activities may include mouse hovering time on the document links. Generally speaking, a user clicks a document link if the user is interested in the document's content. Similarly, the fact that the mouse moves onto a particular document link and stays there for a substantial amount of time indicates that this document is relevant to the user's interest. In some embodiments, information about the mouse hovering time may be unavailable.
  • the group profiler 129 can identify documents selected by the users. In some embodiments, the group profiler 129 visits the content database 124 to retrieve the profiles of the corresponding documents. As noted above, each identified document may have a profile (e.g., a document profile) that was previously generated. If any of the identified documents do not yet have profiles, those documents can be ignored, or the group profiler may call upon the document profiler 125 to produce document profiles for those documents.
  • a profile e.g., a document profile
  • the group profiler 129 may also identify other users having one or more of the same characteristics ( 215 ). User characteristics may be correlated by topic, time or the like to form groups. The group profiler 129 then associates the user with other users having the same characteristics in at least one group ( 220 ). One or more group profiles are then generated ( 230 ). The group profiler 129 may generate a group profile based on the user characteristics, the retrieved document profiles, or the like. Some of the group profiles may be website profiles, the generation and use of which are described in patent application Ser. No. 11/394,620. A group profile may be validated, for example, by comparing the group to an average of other groups of the same type, by averaging the differences between groups, or other validation procedures.
  • the group profile may include one or more of the following: a weighted listing or vector of categories (sometimes called a category-profile), key terms from search queries and/or user visited documents (sometimes called a term profile), and information about links to user visited documents (sometimes called a link profile).
  • the group profile is stored in the group profile database 128 .
  • the search result ranker 126 can retrieve the group profile to re-order the ranks of the documents within a search result.
  • operation 230 may include a clustering operation in which user characteristics are clustered using statistical analysis to determine suitable groupings.
  • the clustering may be based on, for example, the fact that a user clicks a link.
  • the group profiler may directly match a document's URL against a known set of URLs associated with a particular category. In either case, the group profiler 129 does not need to access the documents' contents in order to generate the group profile.
  • operation 230 may be augmented by a process that maps the user characteristics to a set of categories.
  • the categorization of queries can be based on the terms in the queries themselves, or by accessing the profiles of the top N search results (e.g., the top 5, 10, 15 or 20 search results) produced by those queries, merging those document profiles to produce a query profile for each query, and merging the query profiles, weighted in accordance with their frequency of submission to generate a group profile.
  • this process may exclude queries that are deemed to be unlikely to be related to the primary interests of the users.
  • a group profile may be updated from time to time in order to keep track of the current interests of the users associated with the group.
  • a group profile is updated at a predetermined time interval (e.g., every week or every day).
  • a group profile is updated whenever the number of new search queries by members of the group reaches a threshold value since a last (i.e., most recent) update.
  • the group profiler 129 repeats the aforementioned process to update the group profile.
  • different groups generate substantially different magnitudes of traffic and therefore should be treated differently in terms of profile updating. For instance, a group associated with a popular domain name may generate heavy traffic, on the order of tens of thousands of clicks per day while a smaller group may have a much lower click rate.
  • Some groups may generate so much traffic that the group definition should be refined. For example, a group based on grouping the users' ip addresses in a range could include users of a proxy, which would be unlikely to have any correlation with user's interests. In such a case, the outlier ip address (the suspected proxy ip address in this example) could be excluded from the group.
  • the group's profile may be biased by this traffic peak. Special care may be required to make sure that the group profile has an appropriate balance between the short-term and long-term interests of the users, such as by excluding or down-weighting the associated elements of the group profile.
  • the search history database 127 may not have the space to store all the search history.
  • One approach to solve this issue is to intentionally ignore some of the search queries, search results and user activities. This may be accomplished by sampling the search queries, search results and/or user activities so as to produce an unbiased sample of the search history. While the extent of the sampling may vary from one embodiment to another, experiments suggest that a search history encompassing several months of user activities will have sufficient data to generate a reliable group profile, for most groups, so long as (A) the sampling is done in a manner that avoids significant biases, and (B) it includes user activity data corresponding to a few weeks of representative search history.
  • the space shortage issue can be solved by generating a series of incremental group profiles for different portions of the search history and merging the incremental group profiles into the group profile.
  • the group profiler 129 first generates an incremental profile 311 for the search history section 301 .
  • Each search history section 301 , 303 , 305 may include a predefined quantity of search history information, or it may include search history information for a predefined length of time (e.g., an hour), or it may include a portion of the search history selected in accordance with predefined selection criteria.
  • the process of generating an incremental group profile is similar to the process discussed above in connection with FIG. 2 .
  • the incremental profile 311 is equivalent to the search history section 301 in terms of characterizing the interests of the users. Once the incremental profile 311 has been created, the corresponding search history section 301 in the database can be overwritten by new entries entering the database. Similarly, the search history section 303 can be overwritten after the incremental profile 313 is generated. After the creation of the incremental profile 315 , the group profiler 129 can create the new group profile 337 by merging the incremental profiles 311 , 313 , and 315 into the old group profile 331 .
  • the group profiler 129 is able to take into account the entire search history by creating incremental group profiles for search history sections 301 , 303 , and 305 and by merging an existing group profile with incremental profiles 311 , 313 , and 315 .
  • a group profile may be used for anonymously “personalizing” search results responsive to search queries submitted by a user associated with a group.
  • An underlying assumption in the present specification is that a user's search queries are, more or less, related to at least one of the groups associated with the user. If not carefully filtered out, the search history associated with popular, but irrelevant, terms may seriously “contaminate” the group profile and twist the search results in an unexpected direction.
  • Another source of contamination of the group profile is query terms that have very low popularity. Special treatment may be necessary to make sure that user activities with respect to very low popularity query terms do not significantly bias the search results.
  • the group profiler 129 ( FIG. 1 ) identifies search queries, and potentially other user behavior or user information, that differentiate the group from the general population of online users, and then either filters the received information or weights it so as to emphasize characteristics of the group that are distinct from characteristics of the general population of online users.
  • FIG. 4 is an exemplary curve 400 characterizing the popularity distribution of search queries submitted by members of a group. All the search queries are divided into three categories by the two thresholds 415 and 425 .
  • the leftmost category 410 includes those search queries that are “abnormally” popular, but may be less relevant to the specific interests of the group.
  • the search query “Britney Spears” being submitted by a user associated with a Northern California group is an example of a search query in this category.
  • the group profiler 129 may eliminate or reduce the influence of the search history associated with these queries on the group profile by giving them relatively low weights.
  • the middle category 420 includes those search queries that are reasonably popular and relevant to the group. The search history corresponding to these search queries may be granted higher weights to make a major contribution to the group profile.
  • the rightmost category 430 includes those queries that are only made occasionally or by a single user associated with the group. They may be treated in a manner similar to the queries in the leftmost category 410 .
  • search query or a corresponding search result
  • the popularity of the search query and the amount of user activities on the search result affect the contribution of the search query and the search result on the group profile.
  • Time is another important factor.
  • recent search history plays a more prominent role than less recent search history in the formation of the group profile.
  • One skilled in the art can easily apply similar principles to other aspects of the search history associated with the group.
  • FIGS. 5A-5C are block diagrams illustrating various types of groups, including group i, group j, and group k, having multiple profiles produced by one or more group profilers 129 .
  • a particular user may be associated with these groups, or a subset or superset thereof.
  • FIG. 5A is a block diagram illustrating how website_i group 530 may be associated with multiple profiles in accordance with some embodiments.
  • a user may be associated with one or more website groups.
  • i may be any whole number and a user may be associated with a website — 1 group and a website — 2 group.
  • the profiles 531 , 533 , 535 , and 537 are produced by one or more group profilers 129 , based on the online behavior (sometimes called the online history) of the users in the group. Online behavior of the group includes the search history of users associated with the website_i.
  • the search history involves different types of information from different sources, such as search queries 501 submitted by users associated with website_i, search results 503 generated by the search engine in response to the search queries from users associated with website_i, and activities 505 of users associated with website_i on the search results.
  • sources such as search queries 501 submitted by users associated with website_i, search results 503 generated by the search engine in response to the search queries from users associated with website_i, and activities 505 of users associated with website_i on the search results.
  • group profile generation is divided into multiple sub-processes. Each sub-process produces a specific type of group profile characterizing the interests of the website users from a particular perspective.
  • Four examples of the types of group profiles that may be produced by sub-processes of the group profiler 129 ( FIG. 1 ) are:
  • the website_i group 530 may have only a subset of the group profiles 531 , 533 , 535 , and 537 .
  • the website_i group 530 may include a single term-based group profile 533 .
  • the group 530 includes a plurality of group profiles.
  • at least one of plurality of group profiles is a combination of two or more of the aforementioned group profiles 531 , 533 , 535 , and 537 .
  • the category-based, term-based and/or link-based group profiles are further processed to generate a cluster-based group profile.
  • the cluster-based group profile appears in the form of multiple cluster-based sub-profiles characterizing different aspects of the group.
  • the cluster based group profile 537 is generated independently of the category-based, term-based, and link-based group profiles using statistical methods.
  • the category-based group profile 531 may be constructed, for instance, by mapping search history items (e.g., search queries, content terms, and/or user-selected documents) to categories, and then aggregating the resulting sets of the categories and weighting the categories.
  • the categories may be weighted based on their frequency of occurrence in the search history items.
  • the categories may be weighted based on the relevance of the search history items to the categories.
  • the search history items accumulated over a period of time may be treated as a group for mapping into weighted categories. Other suitable ways of mapping the search history into weighted categories may also be used.
  • category-based group profiles may also be based on, or take into account, information about the language(s) used by the websites visited by a group of users, the reading level of such websites, and other characteristics of the websites that may be used for re-scoring search engine search results.
  • FIG. 5B is a block diagram illustrating how an ip address type group may be associated with multiple profiles in accordance with some embodiments.
  • each of these profiles may be associated with a separate group, based on the online behavior of the group.
  • Online group behavior includes the search history of users associated with the ip address range _j, where j may be any whole number.
  • the ip address range _j may be, for example, the set of Internet Protocol addresses having the same first 24 bits or having the last 8 bits fall into a predetermined range.
  • the search history involves different types of information from different sources, such as the search queries 506 submitted by users associated with ip address range _j, the search results 507 generated by the search engine in response to the search queries from users associated with ip address range _j, and the activities 508 of users associated with ip address range _j on the search results.
  • the ip address range _j group may have one or more of the following types of group profiles: a category-based group profile 541 , a term-based group profile 543 , a link-based group profile 545 , and a cluster-based group profile 547 as described above with respect to the website_i group 530 .
  • a user may be associated with one or more groups, including one or more ip address range groups. For example, a user may be associated with website — 1 group, ip address range — 2 group, and ip address range — 3 group or a subset or superset thereof.
  • FIG. 5C is a block diagram illustrating how any type of group_k 550 may be associated with multiple group profiles in accordance with some embodiments.
  • the group profiles are created based on online behavior of the group. Online behavior of the group includes the search history of users associated with the group_k.
  • the search history involves different types of information from different sources, such as the search queries 511 submitted by users associated with group_k, the search results 513 generated by the search engine in response to the search queries from users associated with group_k, and the activities 515 of users associated with group_k on the search results.
  • the group_k group may have one or more of the following types of group profiles: a category-based group profile 551 , a term-based group profile 553 , a link-based group profile 555 , and a cluster-based group profile 557 as described above with respect to the website_i group 530 .
  • a user may be associated with one or more groups, since k may indicate any whole number. For example, a user may be associated with website — 1 group, ip address range — 2 group, and group 3 or a subset or superset thereof.
  • FIG. 6A illustrates a hierarchal category map 600 according to the Open Directory Project (http://dmoz.org/). Starting from the root level of map 600 , documents are organized under several major topics, such as “Art”, “News”, “Sports”, etc. These major topics are often too broad to delineate the specific interest of a user. They are further divided into multiple more specific sub-topics.
  • the topic “Art” may comprise the sub-topics like “Movie”, “Music”, and “Literature” and the sub-topic “Music” may further comprise sub-sub-topics like “Lyrics”, “News”, and “Reviews.”
  • each topic (or sub-topic) is associated with a unique category identifier like 1.1 for “Art”, 1.4.2.3 for “Talk Show”, and 1.6.1 for “Basketball.”
  • the categories shown in FIG. 6A are only for illustrative purposes.
  • One skilled in the art will appreciate that there are many other ways of categorizing documents. For example, different concepts can be extracted from the contents of the documents and different categories of relevant information are grouped in accordance with these concepts.
  • the interests of users associated with a particular group may be associated with multiple categories at different levels, each having a weight indicative of the category's relevance to the group users' interest.
  • the categories and their associated weights can be determined from analyzing the online behaviors of users associated with the group.
  • FIG. 6B is a block diagram of an exemplary data structure, a category-based group profile table 650 , which may be used for storing category-based group profiles in accordance with some embodiments of the present invention.
  • the category-based group profile table 650 includes a table 640 having a plurality of records 642 , each record including a GROUP_ID, a PROFILE_ID and a pointer pointing to another data structure, such as table 660 - 1 .
  • a group may have one or more profiles to better serve different user groups.
  • the group “GROUP — 1” has at least two different profiles, “PROFILE — 1” and “PROFILE — 2.” These two different profiles may, for example, correspond to search histories aggregated over different time periods.
  • Table 660 - 1 includes two columns, CATEGORY_ID and WEIGHT.
  • the CATEGORY_ID column contains a category's identifier, for example as shown in FIG. 6A , and the value in the WEIGHT column indicates the relevance of the category to the interests of the users.
  • Different profiles for the same time period can be generated in different ways, to reflect different aspects of the users in the group (e.g., short term, medium term, or long term interests). This may be accomplished by putting different emphasis or different weighting on different portions of the data used to generate the group profiles.
  • Some group profiles may be generated for special time periods, such as holidays and events (e.g., Christmas, Olympics, etc.) during which the behavior of users may change significantly. The data for such special time periods may also be removed, or down-weighted, when generating “regular” profiles for a group of users.
  • the search history items are automatically classified in different clusters.
  • Clusters may be more dynamic than categories, since categories are typically pre-generated. Search history items associated with different groups are classified against the same set of categories. In contrast, there may not be a predefined set of clusters for a particular group. The search history may fall into a dynamically generated set of clusters. Therefore, clusters may be better tailored to characterize the interests and preferences of the group's users or provide additional information about a group to improve the customization of search results. For convenience, many of the discussions of profiles in this document use categories as an example. But it will be clear to one skilled in the art that the underlying algorithms are also applicable to clusters with no or little adjustment.
  • a category-based group profile is a topic-oriented implementation of a group profile.
  • the items in a category-based profile can also be organized in other ways.
  • the interests of the website users can be categorized based on the formats of the documents identified by the website users, such as HTML, plain text, PDF, Microsoft Word, etc. Different formats may have different weights.
  • the interests of the website users can be categorized according to the types of the identified documents, e.g., an organization's homepage, a person's homepage, a research paper, or a news group posting, each type having an associated weight.
  • Documents can also be categorized by document origin, for instance the country associated with each document's host.
  • two or more of the above-identified category-based profiles may co-exist, with each one reflecting a respective aspect of the interests of the website users.
  • FIG. 6C is a block diagram “snapshot” of an exemplary data structure which may be used for storing groups and profiles associated with a user in accordance with some embodiments. Since the groups associated with the user may change over time and group profiles are dynamically changing, the snapshot 670 will change accordingly.
  • the snapshot 670 includes a plurality of group tables 672 , one for each group associated with the user. For example, in the user associated with snapshot 670 is associated with K groups, so the snapshot 670 includes group table 672 - 1 for records associated with group 1 (website i), group table 672 - 2 for records associated with group 2 (ip address range), and group table 672 -K for records associated with group K (location).
  • Each group table 672 may store a group confidence value record 674 for the group, indicating the weight (also called the confidence value) of the group in the re-ranking process.
  • all groups begin with a default weight or group confidence value of one. Then modifications may be made to the group confidence value to reflect the appropriate weight of the group as associated with the user. For example, if a user is loosely associated with a group, the group confidence value may be lowered. Similarly, if a group is incoherent or has a low coherence, the group confidence value may be lowered.
  • Group confidence values may also vary by group type. For example, location type groups may generally have higher (or perhaps, lower) confidence values than website type groups. Group confidence values may also vary by any other factor that affects the preferred weight of a group in computing the adjusted score for documents in the search result, including by query type (i.e., varying the group confidence value when computing the adjusted scored in response to an image query as opposed to map query, etc.).
  • a high traffic internet address group may reflect the users' proxy server, which is unlikely to have any significant relationship to users' interests and should therefore have a low confidence value relative to groups that more consistently reflect their users' interests.
  • the group confidence value approaches or reaches zero, the user is no longer associated with the group.
  • Each group table 672 may also include profile confidence value records for every group profile of each group, for example 676 - 1 and 676 - 2 for Group 1 , 676 - 3 and 676 - 4 for Group 2 , and 676 - 2 X- 1 and 676 - 2 X for Group X.
  • Each profile confidence value record 676 may include a profile confidence value (e.g., Profile 1 Conf. Value) indicating the weight of each profile as associated with the group in the re-ranking process for a particular user; a unique identification (ID) of the profile associated with each group (e.g.
  • Grp 1 -Prf 1 ID a pointer to a group profile table, such as category-based group profile table 650 , term-based group profile table 700 , link-based group profile table 800 , or the like.
  • all profiles begin with a default profile confidence value of one. Then modifications may be made to the profile confidence value to reflect the appropriate weight of the profile as associated with the user and the group as described with respect to the group confidence value above.
  • group 1 based on website i, may have a short term profile, profile 1 , and a long term profile, profile 2 .
  • the profile confidence value for the short term profile 1 may be raised for a news query when website i is www.cnn.com based on the assumption that current news is more interesting to users associated with www.cnn.com. In some cases, when the profile confidence value approaches or reaches zero, the profile is no longer associated with the user or the group.
  • an information server stores information identifying a limited number of groups per user.
  • one or more groups may be associated with a user on the fly, for instance based on the user's IP address or the website from which the user is submitting a search query. Any groups not associated with a user are implicitly assigned a default confidence value of zero.
  • group memberships i.e., groups associated with a user
  • group memberships are updated from time to time based on “recent history” (new data concerning recent online behavior of the user). This may include increasing the confidence of groups for which there is evidence of continued membership, decreasing the confidence of groups for which there is a lack of evidence of continued membership or evidence of decreased activity.
  • a group may be removed from the set of groups associated with a user when the confidence value of the group falls below a predefined threshold value (e.g., 0.2 or any other appropriate value). Furthermore, since some group membership information may be determined on the fly, confidence values for those groups may be based on other information, such as a website's coherence value (see definition of coherence value, above).
  • FIG. 7 is a block diagram of an exemplary data structure, a term-based group profile table 700 , which may be used for storing term-based group profiles in accordance with some embodiments of the present invention.
  • the table 700 includes a plurality of records 710 , each record corresponding to a group's term-based profile.
  • a term-based group profile record 710 includes a plurality of columns including a GROUP_ID column 720 and multiple columns of (such as TERM, WEIGHT) pairs 740 .
  • the GROUP_ID column stores a group identifier.
  • Each (TERM, WEIGHT) pair 740 includes a term of typically one to three words that is deemed relevant to the interests of the users and a weight associated with the term indicating the relevance of the term. The weight of a term is not necessarily a positive value. A negative weight suggests that the website users disfavor documents including this term in the search results.
  • link-based profile another type of group profile is referred to as a link-based profile.
  • the page rank of a document is based on the link structure that connects the document to other documents on the Internet. A document having more links pointing to it is often assigned a higher page rank and is therefore deemed more popular by the search engine.
  • Link information of documents selected by users can be used to infer the interests of the users.
  • a list of preferred URLs is identified for users by analyzing the click rate of these URLs. Each preferred URL may be further weighted according to the mouse hovering time by the users at the URL.
  • a list of preferred web hosts is identified for the users by analyzing the users' visit rate at different web hosts. When two or more preferred URLs are related to the same web host, the weights of the two or more URLs may be combined as the weight of the web host.
  • FIG. 8 is a block diagram of an exemplary data structure that may be used for storing link-based group profiles in accordance with some embodiments of the present invention.
  • the link-based profile table 800 includes a table 810 that includes a plurality of records 820 , each record including a GROUP_ID and a pointer pointing to another data structure, such as table 810 - 1 .
  • Table 810 - 1 may include two columns, LINK_ID 830 and WEIGHT 840 .
  • the LINK_ID 830 may be associated with a preferred URL or host.
  • the actual URL/host may be stored in the table instead of the LINK_ID, however it is preferable to store the LINK_ID to save storage space.
  • a preferred list of URLs and/or hosts includes URLs and/or hosts that have been directly identified by the users.
  • the preferred list of URLs and/or host may further extend to URLs and/or hosts indirectly identified by using methods such as collaborative filtering or Bibliometric analysis, which are known to one of ordinary skill in the art.
  • the indirectly identified URLs and/or hosts include URLs or hosts that have links to/from the directly identified URLs and/or hosts. These indirectly identified URLs and/or hosts are weighted by the distance between them and the directly identified URLs or hosts. For example, when a directly identified URL or host has a weight of 1, URLs or hosts that are one link away may have a weight of 0.5, URLs or hosts that are two links away may have a weight of 0.25, etc.
  • This procedure can be further refined by reducing the weight of links that are not related to the topic of the original URL or host, e.g., links to copyright pages or web browser software that can be used to view the documents associated with the user-selected URL or host.
  • Irrelevant Links can be identified based on their context or their distribution. For example, copyright links often use specific terms (e.g., “copyright” and “All rights reserved” are commonly used terms in the anchor text of a copyright link); and links to a website from many unrelated websites may suggest that this website is not topically related (e.g., links to the Internet Explorer® website are often included in unrelated websites).
  • the indirect links can also be classified according to a set of topics or categories and links with very different topics or categories may be excluded or be assigned a low weight.
  • the types of group profiles discussed above are generally complementary to one another since different profiles characterize the interests of users from different vantage points. However, this does not mean that one type of group profile, e.g., the category-based profile, is incapable of playing a role that is typically played by another type of group profile.
  • a preferred URL or host in a link-based profile is often associated with a specific topic, e.g., finance.yahoo.com is a URL focusing on financial news. Therefore, what is achieved by a link-based profile that comprises a list of preferred URLs or hosts may also be achievable, at least in part, by a category-based profile that has a set of categories that cover the same topics covered by preferred URLs or hosts.
  • FIG. 9 is a flow diagram of a process for generating group-dependent search results using the various types of group profiles in accordance with some embodiments of the present invention.
  • the search engine 122 receives a search query submitted by a user ( 910 ).
  • the search engine 122 may optionally generate a query strategy ( 915 ).
  • the search query is normalized so as to be in proper form for further processing, and/or the search query may be modified in accordance with predefined criteria so as to automatically broaden or narrow the scope of the search query.
  • the search engine 122 searches the content database 124 for documents that match the search query (or the query strategy, if one is generated).
  • the search engine 122 identifies a set of documents that match the search query ( 920 ), each document having a generic ranking score that depends on the document's page rank and the search query. All three operations ( 910 , 915 and 920 ) are typically conducted by the search engine 122 . The net result is an initial set of search results.
  • Each group associated with the requesting user is identified ( 922 ).
  • some or all of the requesting user's group identifier(s) are embedded in the search query by the client assistant 134 or other means.
  • the search result ranker 126 identifies the associated group profiles in the group profile database 128 ( 925 ). For each document identified by the search engine 122 the search result ranker identifies a document profile ( 930 ), based on which a generic ranking score is derived.
  • the search result ranker 126 analyzes each identified document to determine one or more boost factors using the group and document profiles ( 935 ) and then assigns the document a group-dependent ranking score using the document's generic ranking score and the boost factors ( 940 ).
  • the search result ranker 126 iterates the process for every identified document ( 942 ).
  • the search result ranker 126 re-orders the list of documents according to their group-dependent ranking scores ( 945 ) to produce re-ordered search results. At least a portion of the re-ordered search results (e.g., the top N ranked items, based on the re-ordering), including links to a list of documents, are sent to the requesting client 103 .
  • the analysis of an identified document at 935 includes determining a correlation between the document's content and the group profiles. Furthermore, in some embodiments, this operation includes accessing a previously computed document profile for the document and then determining a correlation between the document profile and the group profiles. In some embodiments, determining the correlation includes one or more operations that are “dot product” computations, which determine the extent of overlap, if any, between the document profile and the group profiles. In addition, instead of determining and then applying a boost factor (as in operations 935 and 940 ), some documents may have their group-dependent ranking score set very high or very low in accordance with information in a group profile. For instance, for a group associated with “Apple computers,” documents from websites associated with fruit and produce may be assigned a predefined very low group-dependent ranking score.
  • FIG. 10 is a block diagram of exemplary data structures that may be used for storing category-based, term-based, and link-based boost factors for documents in the search results in accordance with some embodiments of the present invention.
  • category-based document information table 1010 includes a plurality of identified categories and associated weights
  • term-based document information table 1030 includes multiple pairs of relevant terms and associated weights
  • link-based document information table 1050 includes a set of links and corresponding weights.
  • the rightmost column of each of the three tables ( 1010 , 1030 and 1050 ) stores the boost factor (i.e., a computed score) of a document when the document is evaluated using one specific type of group profile.
  • a document's boost factor can be determined by combining the weights of the items associated with the document. For instance, a category-based or term-based boost factor for users associated with an ip address range group may be computed as follows. The users may favor documents related to science with a weight of 0.6, and disfavor documents related to business with a weight of ⁇ 0.2. Thus, when a science document matches a search query, it will be boosted over a business document. In general, the document topic classification may not be exclusive.
  • a candidate document may be classified as being a science document with probability of 0.8 and a business document with probability of 0.4.
  • a link-based boost factor may be computed based on the relative weights allocated to the preferred URLs or hosts in the link-based profile.
  • the term-based profile rank can be determined using known techniques, such as “term frequency-inverse document frequency” (TF-IDF).
  • TF-IDF term frequency-inverse document frequency
  • the “term frequency” of a term is a function of the number of times the term appears in a document.
  • the “inverse document frequency” of a term is an inverse function of the number of documents in which the term appears within a collection of documents. For example, very common terms like “word” occur in many documents and consequently are assigned a relatively low inverse document frequency, while less common terms like “photograph” and “microprocessor” are each assigned a relatively high inverse document frequency.
  • a candidate document D that satisfies the search query is assigned a query score, QueryScore, in accordance with the search query.
  • This generic ranking score may not appropriately reflect document D's relevance to a particular group of users if the users' interest is measurably different from that of a random user of the search engine.
  • the relevance of document D to the users can be characterized by a set of boost factors, based on the correlation between document D's content and the group's term-based profile, herein called the TermBoostFactor, the correlation between one or more categories associated with document D and the group's category-based profile, herein called the CategoryBoostFactor, and the correlation between the URL and/or host of document D and the group's link-based profile, herein called the LinkBoostFactor.
  • document D may be assigned a group-dependent ranking score that is a function of both the document's generic ranking score and the various group profile-based boost factors.
  • the relative importance of each type of profile or boost factor is implemented by controlling the range of values that are allowed for a given type of boost factor. For example, a boost factor having a range of 0.1 to 10 has more importance in determining the GroupScore than a boost factor having a range of 0.5 to 2.0.
  • the function f( ) is a transform function used to normalize the linear combination of boost factors to a range that is suitable for a combined boost factor.
  • the argument (input value) of the function f( ) may range from ⁇ 1 to 1 (or any other suitable input range), while the value produced by the function f( ) ranges from 0.2 to 2.0 (or any other suitable output range).
  • the f( ) portion of the above equation i.e., the value produced by applying the function corresponds to BoostFactor in the equation in the following paragraph.
  • FIG. 11 is a flow diagram of another process for generating group-dependent search results using group profiles in accordance with some embodiments of the present invention.
  • the search result ranker 126 receives a search query submitted by a user associated with at least one group ( 1110 ).
  • the search result ranker 126 may optionally generate a generic query strategy ( 1115 ).
  • the search result ranker 126 identifies the group profiles associated with the user's group(s) in the group profile database 128 ( 1125 ).
  • the generic query strategy may be modulated by the group's profile to create a group-dependent query strategy ( 1165 ). For example, relevant terms from the group profile may be added to the search query with associated weights.
  • the group-dependent query strategy is created by the search engine 122 , the front end server 120 , or the search result ranker 126 , respectively.
  • a copy of the group profile(s) is generated by the group profiler 129 and the group-dependent query strategy is created by the website 102 from which the user is submitting the search query.
  • the search engine 122 searches the content database 124 (optionally using the group-dependent query strategy) for documents matching the query ( 1170 ).
  • the documents are then ordered according to their group-dependent ranking scores ( 1175 ).
  • the documents identified by the content database 124 may be implicitly ordered by their associated query-dependent ranking score.
  • FIG. 13 is a flow diagram of a process for providing a user with customized group-dependent search results using group profiles according to some embodiments.
  • a database search is performed to identify information items associated with the search query ( 1330 ).
  • the process identifies a plurality of groups associated with the user ( 131 0 ). For example, a user might be associated with an internet address group based on the inclusion of the ip address of the user's computer in an ip address range associated with the internet address group and a location group based on the geolocation of the user's computer as inferred from the computer's ip address.
  • At least one profile for each group is looked up or accessed ( 1320 ).
  • the search result ranker 126 may access the group profile database 128 to access each group's profile.
  • the search result ranker 126 computes an adjusted score or group score for each document based on the document profile and the groups' profiles ( 1340 ).
  • the adjusted score for each document k is a function of the GenericScore (as defined above), GroupProfiles(i, j), GroupConfs(i), ProfileConfs(j), and DocumentProfile(k) for all groups i and profiles j where i, j, and k are whole numbers.
  • 6C include the profiles for groups 1 through X, such as Grp 1 -Prf 1 , Grp 2 -Prf 2 , etc.
  • groups 1 through X such as Grp 1 -Prf 1 , Grp 2 -Prf 2 , etc.
  • GroupConfs(i) are the group confidence values stored in records 674 - 1 through X
  • ProfileConfs(j) are the profile confidence values stored in records 676 - 1 through 676 - 2 X.
  • the DocumentProfile(k) is the profile of each document k and may include indications of the document's content and/or the corresponding document profile stored in document profile database 123 .
  • the information items are ranked accordingly ( 1350 ), and then information identifying at least a portion of the ranked search results (e.g., the top N ranked items, where N is a suitable integer) is provided to the user ( 1360 ).
  • the search engine and search ranker may produce over one thousand ranked search results, but the user may be sent a smaller number of top ranked results, where the number is between ten and 260, or between ten and 130.
  • FIG. 14 is a flow diagram of a process for providing a user with customized group-dependent search results using group profiles according to some embodiments.
  • a database search is performed to identify information items associated with the search query ( 1330 ).
  • the process identifies a group associated with the user ( 1410 ). For example, a user might be associated with an internet address group based on the inclusion of the ip address of the user's computer in an ip address range associated with the internet address group.
  • a plurality of profiles for the group are looked up or accessed ( 1420 ). For example, the search result ranker 126 may access the group profile database 128 to access the group's long term and short term profiles.
  • These two steps ( 1410 , 1420 ) may be done before or after the process identifies information items associated with the search query ( 1330 ). Then an adjusted score is computed based on the group's profiles ( 1430 ). The computation of the adjusted score may be done in a manner explained above. Once the adjusted score for each information item in the search result is computed, the information items are ranked accordingly ( 1350 ), and information identifying at least a portion of the ranked search results (e.g., the top N ranked items, where N is a suitable integer) is provided to the user ( 1360 ).
  • an exemplary information server 1200 typically includes one or more processing units (CPU's) 1202 , one or more network or other communications interfaces 1210 , memory 1212 , and one or more communication buses 1014 for interconnecting these components.
  • the communication buses 1014 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components.
  • the system 1200 may optionally include a user interface, for instance a display and a keyboard.
  • Memory 1212 may include high speed random access memory and may also include non-volatile memory, such as one or more magnetic disk storage devices.
  • Memory 1212 may include mass storage that is remotely located from the CPU's 1202 .
  • memory 1212 stores the following programs, modules and data structures, or a subset or superset thereof:
  • the information server 106 may not have access to all the search history associated with a website. For example, there may be an agreement between a website 102 and the information server 106 with respect to the search queries submitted from the website 102 . According to the agreement, when a user visiting the website 1027 submits a search query to the information server 106 , the information server 106 is required to send the corresponding search result to the website 102 rather than the requesting user at a client 103 .
  • the website 102 may modify the search result, e.g., attaching advertisements or other information to the search result, and then serves the modified search result to the requesting user at the client 103 .
  • the information server 106 may have no information identifying the requesting user and the client 103 , and may also be unable to monitor the user's activities on the search result. For example, the information server 106 may not receive any information identifying the document links in the search result that have been clicked by the user. Similarly, the information server 106 may not receive any information identifying the document links over which the user moves his or her mouse link and the corresponding mouse hovering time. In other words, the information server 106 has very limited or no exposure to the activities of the website users on the search results. Therefore, the information server 106 has to rely on the user activities on search results from other venues to generate the group profile.
  • the information server 106 may identify another website similar to the website in question. Two websites are deemed similar if a predefined number or percentage of search queries submitted from the two websites is identical. It is also reasonable to infer that users of the two similar websites may have similar interests and therefore the user activities associated with one website are a reasonable proxy of the user activities associated with the other one. If the information server 106 can access the user activities associated with one of the two websites (e.g., there is no agreement to deliver the search results to the website), the information server 106 can use the same user activities to create the group profile for the other website.
  • the information server 106 may utilize monitored user activities associated with search queries submitted directly to the search engine (e.g., search queries submitted using a toolbar search box or a webpage associated with the information server 106 ) as the proxy of a particular website.
  • search queries submitted directly to the search engine e.g., search queries submitted using a toolbar search box or a webpage associated with the information server 106
  • the search query “golf courses in mountain view” may be submitted both to a golf-focused website, and to a general purpose search engine.
  • Profile information developed from clicks on the search results of this search query is used to generate a group profile by combining or aggregating statistical information related to the queries received from each respective website.
  • Placed content may be displayed to users of search services, email services, and a variety of other services provided via the Internet or other wide area networks. For example, when search results are returned to a user in response to a search query, often times certain placed content is returned as well. Placed content is usually in the form of advertising, but could be any type of content related to the search query or to a document being sent to the user. Generally, placed is be any type of content where content providers compete or pay for placement. The techniques discussed above for selecting and ranking information items can also be used for selecting and/or ranking placed content to be presented to users. In particular, in some embodiments, group profiles are used to select advertisements or other placed content to be presented to users along with search results. For example, different advertisements may have different sets of key terms.
  • a correlation of the key terms of each advertisement in a set of advertisements with a term-based group profile (or a category-based profile, or both) associated with a group of users produces a booster factor for the advertisement.
  • This boost factor may be used to promote or demote the particular advertisement in response to a search query submitted by a user associated with the group. For example, when the information server 106 receives a search query “world cup 2006” from a member of a group that is positively weighted in the soccer category, it may promote those advertisements covering soccer gear, ticket sale for the 2006 FIFA World Cup Germany, and hotel reservations at the German cities hosting the soccer game, etc.

Abstract

A computer-implemented method associates a plurality of groups with a user. Each group may have at least one profile. The method also includes receiving a search query from the user and identifying information items associated with the search query. The method computes adjusted scores for the information items based on the groups' profiles, and ranks the information items accordingly before providing the ranked information items to the user. Alternately, a computer-implemented method associates a group having a plurality of profiles with a user. The method also includes receiving a search query from the user and identifying information items associated with the search query. The method computes adjusted scores for the information items based on the group's profiles, and ranks the information items accordingly before providing the ranked information items to the user.

Description

    RELATED APPLICATIONS
  • This application is a Continuation in Part of U.S. Patent Application Ser. No. 11/394,620, filed Mar. 30, 2006, entitled “Website Flavored Search,” which is hereby incorporated by reference.
  • This application is related to U.S. patent application Ser. No. 10/890,854, filed Jul. 13, 2004, entitled “Personalization of Placed Content Ordering in Search Results,” which is hereby incorporated by reference.
  • FIELD OF THE INVENTION
  • The present invention relates generally to the field of a search engine in a computer network system, in particular to a system and method of customizing rankings of search results in response to search queries submitted by members of one or more user groups.
  • BACKGROUND OF THE INVENTION
  • Search engines are powerful tools for locating and retrieving documents from the Internet (or an intranet). Traditionally, the search results produced by a search engine are independent of the user who issued the search query. For example, the search engine generates the same search result for the search query “apple” irrespective of whether the search query is from users interested in Apple® computers or the fruit malus domestica. Clearly the search results returned for the search query “apple” are likely to include some results of little interest to these respective groups of users.
  • In view of the aforementioned, it would be desirable to have a search engine that can customize its search results so as to highlight information items in the search results that are most likely to be of interest to the users who submit the search queries. Further, it would be desirable for such a system to operate without explicit input from a user with regard to the user's personal preferences and interests, and for the system to protect the privacy interests of its users.
  • SUMMARY
  • In some embodiments, a computer-implemented method associates a plurality of groups with a user. Each group may have at least one profile. The method also includes receiving a search query from the user and identifying information items associated with the search query. The method computes adjusted scores for the information items based on the groups' profiles, and ranks the information items accordingly before providing the ranked information items to the user.
  • In some embodiments, a computer-implemented method associates a group having a plurality of profiles with a user. The method also includes receiving a search query from the user and identifying information items associated with the search query. The method computes adjusted scores for the information items based on the group's profiles, and ranks the information items accordingly before providing the ranked information items to the user.
  • Some embodiments may be implemented on either the client side or the server side of a client-server network environment.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The aforementioned features and advantages of the invention as well as additional features and advantages thereof will be more clearly understood hereinafter as a result of a detailed description of preferred embodiments when taken in conjunction with the drawings.
  • FIG. 1 is a block diagram of an exemplary distributed system that includes a plurality of groups and clients requesting information from an information server in accordance with some embodiments.
  • FIG. 2 is a flow diagram of a process for generating a group profile using search queries, search results and user activities.
  • FIG. 3 is a block diagram of a process for updating a group profile by merging an incremental group profile into the group profile.
  • FIG. 4 is a prophetic example of a curve characterizing the popularity distribution of search queries.
  • FIG. 5A is a block diagram illustrating how a website group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 5B is a block diagram illustrating how an internet address group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 5C is a block diagram illustrating how a group may be associated with multiple profiles in accordance with some embodiments.
  • FIG. 6A is a block diagram of an exemplary category map that may be used for generating category-based group profiles in accordance with some embodiments.
  • FIG. 6B is a block diagram of an exemplary data structure that may be used for storing category-based group profiles in accordance with some embodiments of the present invention.
  • FIG. 6C is a block diagram “snapshot” of an exemplary data structure that may be used for storing groups and profiles associated with a user at a particular point in time in accordance with some embodiments.
  • FIG. 7 is a block diagram of an exemplary data structure that may be used for storing term-based group profiles in accordance with some embodiments.
  • FIG. 8 is a block diagram of an exemplary data structure that may be used for storing link-based group profiles in accordance with some embodiments.
  • FIG. 9 is a flow diagram of a process for generating group-dependent search results using group profiles in accordance with some embodiments.
  • FIG. 10 is a block diagram of exemplary data structures that may be used for storing category-based, term-based, and link-based boost factors for documents in the search results in accordance with some embodiments.
  • FIG. 11 is a flow diagram of another process for generating group-dependent search results using group profiles in accordance with some embodiments.
  • FIG. 12 is a block diagram of an exemplary information server in accordance with some embodiments.
  • FIG. 13 is a flow diagram of a process for providing a user with customized group-dependent search results according to some embodiments.
  • FIG. 14 is a flow diagram of another process for providing a user with customized group-dependent search results according to some embodiments.
  • Like reference numerals refer to corresponding parts throughout the several views of the drawings.
  • DESCRIPTION OF EMBODIMENTS
  • FIG. 1 is a block diagram of an exemplary environment 100 for implementing some embodiments of the present invention. One or more websites 102 and clients 103 can be connected to a communication network 104. The communication network 104 can be connected to an information server 106. The information server 106 may include a front end server 120, a search engine 122, a document profiler 125, a group profiler 129, a search result ranker 126, a document profile database 123, a content database 124, a search history database 127, and a group profile database 128.
  • In some embodiments, the information server 106 contains a subset or superset of the elements illustrated in FIG. 1. Although FIG. 1 shows the information server 106 as a number of discrete items, the figure is intended more as a functional description of the various features which may be present in the information server 106 rather than a structural schematic of the various embodiments. In practice, items shown separately could be combined and some items could be further separated, as would be recognized by one of ordinary skill in the art of designing such systems. For example, the four different databases 123, 124, 127, and 128 shown separately in the figure could be implemented by a single database server. The actual number of computers constituting the information server 106 and the allocation of features among the computers will vary from one implementation to another, and may depend in part on the amount of traffic that the information server 106 must handle during peak usage periods as well as during average usage periods.
  • A website 102 is typically a collection of webpages associated with a domain name on the Internet. Each website (or webpage) has a universal resource locator (URL) that uniquely identifies the location of the website (or webpage) on the Internet. Any visitor can visit the website by entering its URL in a browser window. A website can be hosted by a web server exclusively owned by the owner of the domain name or by an Internet service provider wherein its web server manages multiple websites associated with different domain names. For illustrative purposes, the website 102 includes webpage 116, which may have an associated search box. From the search box, a visitor to the webpage 114 can search the website 102 or the entire Internet for relevant information by entering a search query into the search box. Depending on the context, the term “website” as used in this document refers to a logical location (e.g., an Internet or intranet location) identified by a URL, or it refers to a web server hosting the website represented by the URL. For example, some “websites” are distributed over multiple Internet or network locations, but have a shared web server hosting those locations, and in many situations it is logical to consider those network locations to all be part of “a website.”
  • A client 103 can be any of a number of devices (e.g., a computer, an internet kiosk, a personal digital assistant, a cell phone, a gaming device, a desktop computer, or a laptop computer) and can include a client application 132, a client assistant 134, and/or client memory 136. The client application 132 can be a software application that permits a user to interact with the client 103 and/or network resources to perform one or more tasks. For example, the client application 132 can be a browser (e.g., the computer program available under the trademark Firefox®) or other type of application that permits a user to search for, browse, and/or use resources (e.g., webpages and web services) at the website 102 from the client 103 and/or accessible via the communication network 104. The client assistant 134 can be a software application that performs one or more tasks related to monitoring or assisting a user's activities with respect to the client application 132 and/or other applications. For instance, the client assistant 134 assists a user at the client 103 with browsing for resources (e.g., files) hosted by the website 102; processes information (e.g., search results) received from the information server 106; and monitors the user's activities on the search results. In some embodiments the client assistant 134 is part of the client application 132, available as a plug-in or extension to the client application 132 (provided, for example, from various online sources), while in other embodiments the client application is a stand-alone program separate from the client application 132. In some embodiments the client assistant 134 is embedded in one or more webpages or other documents downloaded from one or more servers, such as the information server 106. Client memory 136 can store information such as webpages, documents received from the information server 106, system information, and/or information about a user.
  • The communication network 104 can be any wired or wireless local area network (LAN) and/or wide area network (WAN), such as an intranet, an extranet, or the Internet. It is sufficient that the communication network 104 provide communication capability between the websites 102, the clients 103 and the information server 106. In some embodiments, the communication network 104 uses the HyperText Transport Protocol (HTTP) to transport information using the Transmission Control Protocol/Internet Protocol (TCP/IP). The HTTP permits client computers to access various resources available via the communication network 104. The various embodiments of the invention, however, are not limited to the use of any particular protocol. The term “resource” as used throughout this specification refers to any piece of information or service that is accessible via a URL and can be, for example, a webpage, a document, a database, an image, a computational object, a search engine, or other online information service.
  • In order to receive group-dependent search results, a user from client 103 (for example) may send to a website 102 a request for a webpage. The website responds by identifying the requested webpage and returning it to the requesting client 103. The webpage may include a document of interest to the user (e.g., a newspaper article). The webpage may also include a search box (e.g., at or near the top of the webpage). While or after browsing the content of the webpage, the user may be interested in getting more information. To do so, the user can enter a search query and submit the search query to the website 102, a search engine, or the like. The search query may include one or more query terms.
  • As noted above, many websites do not have a dedicated search engine. Their search requests are actually handled by a third-party search engine. In some embodiments, upon receipt of the search query, the website 102 generates and sends a search request to the information server 106. In some other embodiments, the client 103 generates and sends the search request directly to the information server 106 without routing the request through the website 102. In other embodiments, the user may choose to use the website of a third party search engine directly. In any case, the search request may include the search query and unique identifiers of one or more of the following entities: the website 102 being viewed, a website previously viewed by the user, the requesting user, and the requesting client 103. The identifier for a website may be a URL of a particular web page, or a prefix portion of the URL that identifies the website or a portion of the website. The search engine 122 or other portion of the information server 106 may determine the appropriate portion of the URL to use for determining a group associated with the user.
  • Within the information server 106, the front end server 120 is configured to handle a variety of requests from the websites 102 and the clients 103 via their respective connections with the communication network 104. As shown in FIG. 1, the front end server 120 is connected to the search engine 122 and the search engine 122 is connected to the content database 124, respectively. The content database 124 stores a large number of indexed documents retrieved from different websites. Alternately, or in addition, the content database 124 stores an index of documents stored at various websites. In one embodiment, each indexed document is assigned a page rank according to the document's link structure. The page rank serves as a query-independent measure of the document's importance.
  • The front end server 120 passes the search request onto the search engine 122. The search engine 122 then communicates with the content database 124 to select a plurality of information items (e.g., documents) in response to the search request. The search engine 122 assigns a generic ranking score to each information item based on the item's page rank, the text associated with the item, and the search query. For ease of discussion, information items will often be referred to as “documents;” but it is to be understood that information items need not be documents, and may include other types or forms of information.
  • The search engine 122 is also connected to the document profile database 123. The document profile database 123 may store a document profile for each indexed document in the content database 124. Both the document profile database 123 and the content database 124 are connected to the document profiler 125. For each document in the content database 124, the document profiler generates a document profile by analyzing the content of the document and its link structure. The generation of document profiles is independent of the operation of the search engine 122. In some embodiments, the document profiler 125 is invoked to generate a document profile whenever the information server 106 identifies a new document or a new version of an existing document on the Internet. In other embodiments, the document profiler 125 is invoked periodically to generate document profiles for all new files identified during a predetermined time period. In some embodiments, instead of being two separate entities, the document profile database 123 and the content database 124 are merged together so that a document and its associated profile can be located by a single database query.
  • There is a connection from the search engine 122 to the search result ranker 126. Through this connection, the search engine 122 sends the identified documents and their associated document profiles to the search result ranker 126. The search result ranker 126 has a connection to the group profile database 128. Like the document profile database 123, the group profile database 128 stores a large number of group profiles including group profiles of one or more groups associated with a requesting user. For example, the search result ranker 126 may use a group profile associated with users of a website 102 (e.g., a website currently or recently visited by the user) to convert the generic ranking score of each identified document into a group-dependent ranking score. The documents are then re-ordered in accordance with their respective group-dependent ranking scores. Next, the search result ranker 126 creates a search result in accordance with the updated order of the documents. The search result includes multiple document links, at least one for each document. The search result, or a portion of the search result (e.g., information identifying the top 10, 15 or 20 information items or documents), is returned to the requesting client 103 and displayed to the user through the client application 132. The user, after browsing the search result, may click one or more document links in the search result to download and view one or more documents identified by the search result.
  • While the above description divided tasks among the search engine 122, search result ranker 126 and front end server 120 in a particular way, this particular division of tasks is exemplary, and other divisions may be used in other embodiments. For instance, the group profile (associated with the user from whom a search query is received) may be transmitted with the search query to the search engine 122, and the search engine 122 may use that information to compute group specific document scores for ranking the search results. In effect, this would merge the search result ranker 126 into the search engine 122. Alternately, an identifier of the group profile may be transmitted with the search query to the search engine 122. If the search engine 122 has a copy of the group profile or has access to the group profile, it can then use that information to compute group specific document scores. In yet other embodiments, other divisions of tasks may be used.
  • An important aspect of the process of serving group-dependent search results is the generation and maintenance of the group profiles stored in the group profile database 128. A group profile should reflect the interests of the users of the associated group, and in many embodiments the group profile will be unique to its associated group. For example, users of a consumer electronics website should have a group profile that boosts webpages related to electronic products while users of an on-line grocery store should have a group profile that promotes webpages related to food. Users of both the consumer electronics website and the on-line grocery store may be associated with both groups.
  • In most embodiments, a group profile is not static, because a static group profile is unlikely to result in the information server 106 serving the most relevant search results to users of the associated group. Instead, a group profile is updated from time to time, (i.e., periodically) so as to re-align the group profile with the current interest of the users associated with the group. While some group profiles may remain virtually static for long periods of time (e.g., for groups associated with a small, static population of users, and/or users having interests focused on a very narrow range of topics), many group profiles will vary over time as the associated users change and as the users' interests vary over time. In an exemplary embodiment, a respective group profile may be based on dated information, with older information receiving lower weightings than newer information when constructing a vector or other representation of the group profile. For example, the information for each successively older time period may be down weighted by a predefined scaling factor, so that information from a period that is more than N (e.g., a value between 5 and 20) periods old has less than half the impact on the group profile as information from the current period.
  • In some embodiments, the profile for a particular group may include weights depending on the number of “clicks” or visits by the users to a particular website, webpage, or set of websites during a particular window in time. For example, if users associated with a particular location group (e.g., Alexandria, Va.) frequently visit the website of a local park (e.g. Mason Neck State Park), the weight for the local park website within the local group profile would be increased. In some embodiments, the weights in a group profile may be associated with one or more half-lives or other time modulations to allow the information server to provide the most relevant and timely search results. For example, “clicks” on the Mason Neck State Park website may be more frequent on Fridays and Saturdays in the months of April through October than at other times, so the weight for the Mason Neck Park website for users associated with the Alexandria, Va. group might be higher for a search done on a Friday in July than for a search done on a Tuesday in December. In another example, users associated with a consumer electronics group may “click” on information about Shakira at a particularly high frequency at a particular time, but the frequency of “clicks” may decay over a year, a week, a day, a minute, or other time period. In some embodiments, the time decay rate of “clicks” is stored in the form of half lives over several different periods of time. A group profile can also be based on characteristics other than user clicks. Other characteristics of user behavior that can be used in a group profile include one or more of the following: the length of time that a user interacts with the website, the proportion of the website viewed by the user, actions (in addition to clicks) taken by a user while visiting the website (e.g., printing, bookmarking, cutting and pasting, annotating), and a user's activity subsequent to the interaction with the website.
  • There are similarities between a group profile and a user profile, as described above. Both profiles can be used to finely tune the search results generated by the search engine. Both need information about at least one user's search history in order to capture the user's dynamic search interest. But there are also significant differences between the two types of profiles. A typical user profile is generated by analyzing an individual user's search history. This user profile is only used to modulate search results responsive to search queries submitted by the same user. For the same search query, two different users may receive different search results from the same search engine if they have different user profiles. In contrast, a group profile is usually generated by analyzing the search history of multiple users so as to characterize the multiple users' interests. The size of a group may range, for example from a predefined minimum value to approximately one million, or as many as the number of users for whom characteristics may be reasonably stored. The minimum size of a group may be selected or determined so as to preserve the privacy interests of the group members. A group profile can be used to modulate search results responsive to search queries submitted by any user from the same group, including new users of the group who made no prior “contribution” to the group profile. Therefore, the same user submitting the same search query from two different locations (e.g. websites, computers, ip addresses, or geolocations) may receive different search results if the two locations have different group profiles.
  • The group profile also has an important advantage over the user profile in terms of protecting a user's privacy. Thus, in some embodiments, a group profile is based on information associated with at least a sufficient number of users to protect the privacy of those users. In some embodiments a group profile contains at least approximately 256 users to protect individual users' privacy, while in other embodiments the minimum size of a respective group is a value between ten and 512, while in another embodiment the minimum size is between ten and 10,000). A user profile is associated with an individual user. To create the user profile, the individual user, either explicitly or implicitly (e.g., by monitoring or logging search queries and other online activities of the user), needs to complete a survey of his or her personal preferences. This survey indicates what information items may be of interest to the user. Further, the user must have an account at a website or a search engine system and the user must log into his or her account to invoke the user profile to personalize the search results. In contrast, the creation and usage of the group profile does not require any personal information from any user. A group profile is associated with a group of users, not an individual user. Any individual user's activity is attributed to all the users in the corresponding group or groups. A user does not need to log into his or her account at the website in order to use the group profile. As long as the user may be associated with a group, the information server automatically “personalizes” the corresponding search result in accordance with the group profile.
  • As shown in FIG. 1, the group profiler 129 is responsible for generating and updating group profiles. In order to capture the current user interest associated with a particular group, the group profiler 129 may need to have access to the users' search history. The users' search history includes the search queries submitted by users, the search results responsive to the search queries, the users' activities on the search results (e.g., selection of a document link, sometimes called “clicking” on a search result, amount of time spent at a document after selecting the document link, mouse hovering time over a document link, or the like), the current website viewed by the user, the last n websites viewed by the user (where n is a whole number, typically on the order of five to ten), the user's favorite websites, or the like.
  • In some embodiments, when the front end server 120 receives a search, it submits a copy of the search query to the search engine 122 in order to solicit a search result. In addition, the front end server 120 sends another copy of the search query to the search history database 127. The search history database 127 then generates a record, the record including at least the search query and one or more group identifiers or other information from which one or more group identifiers can be derived.
  • The search result ranker 126 prepares search results responsive to the search query. The search result (i.e., information representing at least a portion of the search results) is sent back to the requesting client through the front end server 120. A copy of the search result, or a portion of the search result, is also stored in the search history database 127 together with the search query record. The client assistant 134 at the requesting client monitors the requesting user's activities on the search result, e.g., recording the user's selection(s) of the document links in the search result and/or the mouse hovering time on different document links. In some embodiments, the client assistant 134 or the group profiler 129 determines the document “dwell time” for a document selected by the user, by determining the amount of time between user selection of the corresponding document link and the user exiting from the document. In some embodiments, the client assistant 134 includes executable instructions, stored in the webpage(s) containing the search result, for monitoring the user's actions with respect to the search results and transmitting information about the monitored user actions back to the information server 106. In some embodiments, the search results are served to the requesting users with an embedded client assistant 134 that sends information about the user activities on the search results to the group profiler 127. The information server 106, in turn, stores information about these user activities in the search history database 127 for subsequent use. The search history database 127 may allocate amounts of storage space for different groups. As a result, the volume of search history associated with a group does not exhaust its designated space or waste too much space before the next scheduled profile updating.
  • For example, the group profiler 129 records the moment that a user submits a search query (t0), the moment that the user clicks the first document link in the corresponding search result (t1), and the moment that the user clicks the second document link in the search result (t2), etc. The differences between two consecutive moments (e.g., t1−t0 or t2−t1) are reasonable approximations of the amount of time spent viewing the search result or the document whose link was selected by the user. In some embodiments the group profiler 129 has no information about the user's dwell time for the last document in the search result that the user selects for viewing. In some other embodiments (e.g., where at least some users “opt in” to a version of the client assistant that collects additional information about the users' online activities), the group profiler 129 also receives click and timestamp information for user actions after the user finishes viewing documents from a search result. Continuing the above example, the group profiler 129 further records the moment that the user submits a second query (t3), the moment the user selects a document from the second search results (t4), and so on. Furthermore, the group profiler 129 may record the moment (t5) when the user either closes the browser window that was being used to view search results and documents listed in the search results or navigates away from the webpage or document with the search results. This additional information enables the group profiler 129 to determine the user dwell time for all search result documents (i.e., documents listed in search results) viewed by a user, which in turn enables the group profiler 129 to generate a more accurate group profile for a group.
  • Based on characteristics associated with one or more users, the group profiler 129 generates a group profile. FIG. 2 is a flow diagram of a process for generating a group profile using characteristics associated with the user in accordance with some embodiments of the present invention. Initially, the group profiler 129 identifies characteristics associated with the user (210). The group profiler 129 may identify a website; a location (including a geolocation) such as a country, region, city or the like; an internet address (e.g. the Internet Protocol (ip) address, TCP/IP address, Ethernet address, network address, subnet address, or the like); a domain name or a portion of a domain name; a host name; users' history (including past viewed websites, past search queries, selected search results, dwell time or the like); user profiles or portions thereof, a language; and/or other characteristics that may be associated with more than one user (such as a user type, for example a power user or a teenager). Some groups associated with a user may be determined based on known affiliations of the user, such as membership in a mailing list, membership of a website, clubs, teams, businesses, schools, etc. At least some of these groups may be groups that the user has explicitly or implicitly joined. These user characteristics may include some or all search queries submitted by users. In some cases, the identified search queries may comprise a subset or sampling of the submitted search queries. Search queries submitted during a predetermined time period presumably represent the general interest of the users submitting the queries. The search queries may capture dynamic user interests that vary by time.
  • The group profiler 129 may identify online activities of users. Identified user activities may include user clicks on document links in search results. In another example, identified user activities may include mouse hovering time on the document links. Generally speaking, a user clicks a document link if the user is interested in the document's content. Similarly, the fact that the mouse moves onto a particular document link and stays there for a substantial amount of time indicates that this document is relevant to the user's interest. In some embodiments, information about the mouse hovering time may be unavailable.
  • From the user activities on different search results, the group profiler 129 can identify documents selected by the users. In some embodiments, the group profiler 129 visits the content database 124 to retrieve the profiles of the corresponding documents. As noted above, each identified document may have a profile (e.g., a document profile) that was previously generated. If any of the identified documents do not yet have profiles, those documents can be ignored, or the group profiler may call upon the document profiler 125 to produce document profiles for those documents.
  • In these ways, the group profiler 129 may also identify other users having one or more of the same characteristics (215). User characteristics may be correlated by topic, time or the like to form groups. The group profiler 129 then associates the user with other users having the same characteristics in at least one group (220). One or more group profiles are then generated (230). The group profiler 129 may generate a group profile based on the user characteristics, the retrieved document profiles, or the like. Some of the group profiles may be website profiles, the generation and use of which are described in patent application Ser. No. 11/394,620. A group profile may be validated, for example, by comparing the group to an average of other groups of the same type, by averaging the differences between groups, or other validation procedures. The group profile may include one or more of the following: a weighted listing or vector of categories (sometimes called a category-profile), key terms from search queries and/or user visited documents (sometimes called a term profile), and information about links to user visited documents (sometimes called a link profile). The group profile is stored in the group profile database 128. The search result ranker 126 can retrieve the group profile to re-order the ranks of the documents within a search result.
  • In some other embodiments, operation 230 may include a clustering operation in which user characteristics are clustered using statistical analysis to determine suitable groupings. The clustering may be based on, for example, the fact that a user clicks a link. Alternatively, the group profiler may directly match a document's URL against a known set of URLs associated with a particular category. In either case, the group profiler 129 does not need to access the documents' contents in order to generate the group profile.
  • In yet other embodiments, operation 230 may be augmented by a process that maps the user characteristics to a set of categories. For example, the categorization of queries can be based on the terms in the queries themselves, or by accessing the profiles of the top N search results (e.g., the top 5, 10, 15 or 20 search results) produced by those queries, merging those document profiles to produce a query profile for each query, and merging the query profiles, weighted in accordance with their frequency of submission to generate a group profile. As discussed below with reference to FIG. 4, this process may exclude queries that are deemed to be unlikely to be related to the primary interests of the users.
  • As noted above, a group profile may be updated from time to time in order to keep track of the current interests of the users associated with the group. In some embodiments, a group profile is updated at a predetermined time interval (e.g., every week or every day). In some other embodiments, a group profile is updated whenever the number of new search queries by members of the group reaches a threshold value since a last (i.e., most recent) update. Whenever it is time to update the group profile, the group profiler 129 repeats the aforementioned process to update the group profile.
  • In some embodiments, different groups generate substantially different magnitudes of traffic and therefore should be treated differently in terms of profile updating. For instance, a group associated with a popular domain name may generate heavy traffic, on the order of tens of thousands of clicks per day while a smaller group may have a much lower click rate.
  • Some groups may generate so much traffic that the group definition should be refined. For example, a group based on grouping the users' ip addresses in a range could include users of a proxy, which would be unlikely to have any correlation with user's interests. In such a case, the outlier ip address (the suspected proxy ip address in this example) could be excluded from the group. There are two additional issues with significant traffic during a short time period. First, the group's profile may be biased by this traffic peak. Special care may be required to make sure that the group profile has an appropriate balance between the short-term and long-term interests of the users, such as by excluding or down-weighting the associated elements of the group profile. Second, the search history database 127 may not have the space to store all the search history. One approach to solve this issue is to intentionally ignore some of the search queries, search results and user activities. This may be accomplished by sampling the search queries, search results and/or user activities so as to produce an unbiased sample of the search history. While the extent of the sampling may vary from one embodiment to another, experiments suggest that a search history encompassing several months of user activities will have sufficient data to generate a reliable group profile, for most groups, so long as (A) the sampling is done in a manner that avoids significant biases, and (B) it includes user activity data corresponding to a few weeks of representative search history.
  • Alternatively, the space shortage issue can be solved by generating a series of incremental group profiles for different portions of the search history and merging the incremental group profiles into the group profile. As shown, for example, in FIG. 3, the group profiler 129 first generates an incremental profile 311 for the search history section 301. Each search history section 301, 303, 305 may include a predefined quantity of search history information, or it may include search history information for a predefined length of time (e.g., an hour), or it may include a portion of the search history selected in accordance with predefined selection criteria. The process of generating an incremental group profile is similar to the process discussed above in connection with FIG. 2. The incremental profile 311 is equivalent to the search history section 301 in terms of characterizing the interests of the users. Once the incremental profile 311 has been created, the corresponding search history section 301 in the database can be overwritten by new entries entering the database. Similarly, the search history section 303 can be overwritten after the incremental profile 313 is generated. After the creation of the incremental profile 315, the group profiler 129 can create the new group profile 337 by merging the incremental profiles 311, 313, and 315 into the old group profile 331. In sum, the group profiler 129 is able to take into account the entire search history by creating incremental group profiles for search history sections 301, 303, and 305 and by merging an existing group profile with incremental profiles 311, 313, and 315.
  • A group profile may be used for anonymously “personalizing” search results responsive to search queries submitted by a user associated with a group. An underlying assumption in the present specification is that a user's search queries are, more or less, related to at least one of the groups associated with the user. If not carefully filtered out, the search history associated with popular, but irrelevant, terms may seriously “contaminate” the group profile and twist the search results in an unexpected direction. Another source of contamination of the group profile is query terms that have very low popularity. Special treatment may be necessary to make sure that user activities with respect to very low popularity query terms do not significantly bias the search results.
  • In some embodiments the group profiler 129 (FIG. 1) identifies search queries, and potentially other user behavior or user information, that differentiate the group from the general population of online users, and then either filters the received information or weights it so as to emphasize characteristics of the group that are distinct from characteristics of the general population of online users. FIG. 4 is an exemplary curve 400 characterizing the popularity distribution of search queries submitted by members of a group. All the search queries are divided into three categories by the two thresholds 415 and 425. The leftmost category 410 includes those search queries that are “abnormally” popular, but may be less relevant to the specific interests of the group. The search query “Britney Spears” being submitted by a user associated with a Northern California group is an example of a search query in this category. The group profiler 129 may eliminate or reduce the influence of the search history associated with these queries on the group profile by giving them relatively low weights. The middle category 420 includes those search queries that are reasonably popular and relevant to the group. The search history corresponding to these search queries may be granted higher weights to make a major contribution to the group profile. Finally, the rightmost category 430 includes those queries that are only made occasionally or by a single user associated with the group. They may be treated in a manner similar to the queries in the leftmost category 410.
  • There are multiple factors determining the contribution of a search query (or a corresponding search result) in the middle category 420 to the group profile. For example, the popularity of the search query and the amount of user activities on the search result affect the contribution of the search query and the search result on the group profile. Time is another important factor. In some embodiments, recent search history plays a more prominent role than less recent search history in the formation of the group profile. One skilled in the art can easily apply similar principles to other aspects of the search history associated with the group.
  • FIGS. 5A-5C are block diagrams illustrating various types of groups, including group i, group j, and group k, having multiple profiles produced by one or more group profilers 129. A particular user may be associated with these groups, or a subset or superset thereof.
  • FIG. 5A is a block diagram illustrating how website_i group 530 may be associated with multiple profiles in accordance with some embodiments. A user may be associated with one or more website groups. For example, i may be any whole number and a user may be associated with a website 1 group and a website 2 group. The profiles 531, 533, 535, and 537 are produced by one or more group profilers 129, based on the online behavior (sometimes called the online history) of the users in the group. Online behavior of the group includes the search history of users associated with the website_i. The search history involves different types of information from different sources, such as search queries 501 submitted by users associated with website_i, search results 503 generated by the search engine in response to the search queries from users associated with website_i, and activities 505 of users associated with website_i on the search results.
  • In some embodiments, group profile generation is divided into multiple sub-processes. Each sub-process produces a specific type of group profile characterizing the interests of the website users from a particular perspective. Four examples of the types of group profiles that may be produced by sub-processes of the group profiler 129 (FIG. 1) are:
      • a category-based group profile 531—this type of profile may be generated by correlating the search history of a set of users with a set of categories, which may be organized in a hierarchal fashion, where each category may be given a weight indicating the relevance of the category to the interests of users;
      • a term-based group profile 533—this type of profile is generated by abstracting the search history for a set of users with a plurality of terms, wherein each term may be given a weight indicating the relevance of the term to the interests of the users;
      • a link-based group profile 535—this type of profile is generated by identifying a plurality of links that are directly or indirectly related to the search history, where each link may be given a weight indicating the relevance of the link to the interests of the users; and
      • a cluster-based group profile 537—this type of profile is generated by clustering, or performing statistical analysis of the search history for a set of users, where each cluster may be given a weight indicating the relevance of the cluster to the interests of the users.
  • In some embodiments, the website_i group 530 may have only a subset of the group profiles 531, 533, 535, and 537. For example, the website_i group 530 may include a single term-based group profile 533. In some embodiments, the group 530 includes a plurality of group profiles. In some embodiments, at least one of plurality of group profiles is a combination of two or more of the aforementioned group profiles 531, 533, 535, and 537. In some other embodiments, the category-based, term-based and/or link-based group profiles are further processed to generate a cluster-based group profile. In yet other embodiments, the cluster-based group profile appears in the form of multiple cluster-based sub-profiles characterizing different aspects of the group. In other embodiments, the cluster based group profile 537 is generated independently of the category-based, term-based, and link-based group profiles using statistical methods.
  • The category-based group profile 531 may be constructed, for instance, by mapping search history items (e.g., search queries, content terms, and/or user-selected documents) to categories, and then aggregating the resulting sets of the categories and weighting the categories. The categories may be weighted based on their frequency of occurrence in the search history items. In addition, the categories may be weighted based on the relevance of the search history items to the categories. The search history items accumulated over a period of time may be treated as a group for mapping into weighted categories. Other suitable ways of mapping the search history into weighted categories may also be used. In addition, category-based group profiles may also be based on, or take into account, information about the language(s) used by the websites visited by a group of users, the reading level of such websites, and other characteristics of the websites that may be used for re-scoring search engine search results.
  • FIG. 5B is a block diagram illustrating how an ip address type group may be associated with multiple profiles in accordance with some embodiments. In other embodiments, each of these profiles may be associated with a separate group, based on the online behavior of the group. Online group behavior includes the search history of users associated with the ip address range _j, where j may be any whole number. The ip address range _j, may be, for example, the set of Internet Protocol addresses having the same first 24 bits or having the last 8 bits fall into a predetermined range. The search history involves different types of information from different sources, such as the search queries 506 submitted by users associated with ip address range _j, the search results 507 generated by the search engine in response to the search queries from users associated with ip address range _j, and the activities 508 of users associated with ip address range _j on the search results. The ip address range _j group may have one or more of the following types of group profiles: a category-based group profile 541, a term-based group profile 543, a link-based group profile 545, and a cluster-based group profile 547 as described above with respect to the website_i group 530. A user may be associated with one or more groups, including one or more ip address range groups. For example, a user may be associated with website 1 group, ip address range 2 group, and ip address range3 group or a subset or superset thereof.
  • FIG. 5C is a block diagram illustrating how any type of group_k 550 may be associated with multiple group profiles in accordance with some embodiments. The group profiles are created based on online behavior of the group. Online behavior of the group includes the search history of users associated with the group_k. The search history involves different types of information from different sources, such as the search queries 511 submitted by users associated with group_k, the search results 513 generated by the search engine in response to the search queries from users associated with group_k, and the activities 515 of users associated with group_k on the search results. The group_k group may have one or more of the following types of group profiles: a category-based group profile 551, a term-based group profile 553, a link-based group profile 555, and a cluster-based group profile 557 as described above with respect to the website_i group 530. A user may be associated with one or more groups, since k may indicate any whole number. For example, a user may be associated with website 1 group, ip address range 2 group, and group 3 or a subset or superset thereof.
  • FIG. 6A illustrates a hierarchal category map 600 according to the Open Directory Project (http://dmoz.org/). Starting from the root level of map 600, documents are organized under several major topics, such as “Art”, “News”, “Sports”, etc. These major topics are often too broad to delineate the specific interest of a user. They are further divided into multiple more specific sub-topics. For example, the topic “Art” may comprise the sub-topics like “Movie”, “Music”, and “Literature” and the sub-topic “Music” may further comprise sub-sub-topics like “Lyrics”, “News”, and “Reviews.” Note that each topic (or sub-topic) is associated with a unique category identifier like 1.1 for “Art”, 1.4.2.3 for “Talk Show”, and 1.6.1 for “Basketball.”
  • The categories shown in FIG. 6A are only for illustrative purposes. One skilled in the art will appreciate that there are many other ways of categorizing documents. For example, different concepts can be extracted from the contents of the documents and different categories of relevant information are grouped in accordance with these concepts. The interests of users associated with a particular group may be associated with multiple categories at different levels, each having a weight indicative of the category's relevance to the group users' interest. The categories and their associated weights can be determined from analyzing the online behaviors of users associated with the group.
  • FIG. 6B is a block diagram of an exemplary data structure, a category-based group profile table 650, which may be used for storing category-based group profiles in accordance with some embodiments of the present invention. The category-based group profile table 650 includes a table 640 having a plurality of records 642, each record including a GROUP_ID, a PROFILE_ID and a pointer pointing to another data structure, such as table 660-1. A group may have one or more profiles to better serve different user groups. For example, the group “GROUP 1” has at least two different profiles, “PROFILE 1” and “PROFILE 2.” These two different profiles may, for example, correspond to search histories aggregated over different time periods. In other words, the introduction of different profiles for a group refines the interests of the group users. This is particularly useful for a large group associated with a broad spectrum of users. Table 660-1 includes two columns, CATEGORY_ID and WEIGHT. The CATEGORY_ID column contains a category's identifier, for example as shown in FIG. 6A, and the value in the WEIGHT column indicates the relevance of the category to the interests of the users.
  • Different profiles for the same time period can be generated in different ways, to reflect different aspects of the users in the group (e.g., short term, medium term, or long term interests). This may be accomplished by putting different emphasis or different weighting on different portions of the data used to generate the group profiles. Some group profiles may be generated for special time periods, such as holidays and events (e.g., Christmas, Olympics, etc.) during which the behavior of users may change significantly. The data for such special time periods may also be removed, or down-weighted, when generating “regular” profiles for a group of users.
  • In some embodiments, the search history items are automatically classified in different clusters. Clusters may be more dynamic than categories, since categories are typically pre-generated. Search history items associated with different groups are classified against the same set of categories. In contrast, there may not be a predefined set of clusters for a particular group. The search history may fall into a dynamically generated set of clusters. Therefore, clusters may be better tailored to characterize the interests and preferences of the group's users or provide additional information about a group to improve the customization of search results. For convenience, many of the discussions of profiles in this document use categories as an example. But it will be clear to one skilled in the art that the underlying algorithms are also applicable to clusters with no or little adjustment.
  • A category-based group profile, based upon the category map 600, is a topic-oriented implementation of a group profile. The items in a category-based profile can also be organized in other ways. In one embodiment, the interests of the website users can be categorized based on the formats of the documents identified by the website users, such as HTML, plain text, PDF, Microsoft Word, etc. Different formats may have different weights. In another embodiment, the interests of the website users can be categorized according to the types of the identified documents, e.g., an organization's homepage, a person's homepage, a research paper, or a news group posting, each type having an associated weight. Documents can also be categorized by document origin, for instance the country associated with each document's host. In yet another embodiment, two or more of the above-identified category-based profiles may co-exist, with each one reflecting a respective aspect of the interests of the website users.
  • FIG. 6C is a block diagram “snapshot” of an exemplary data structure which may be used for storing groups and profiles associated with a user in accordance with some embodiments. Since the groups associated with the user may change over time and group profiles are dynamically changing, the snapshot 670 will change accordingly. The snapshot 670 includes a plurality of group tables 672, one for each group associated with the user. For example, in the user associated with snapshot 670 is associated with K groups, so the snapshot 670 includes group table 672-1 for records associated with group 1 (website i), group table 672-2 for records associated with group 2 (ip address range), and group table 672-K for records associated with group K (location).
  • Each group table 672 may store a group confidence value record 674 for the group, indicating the weight (also called the confidence value) of the group in the re-ranking process. In some embodiments, all groups begin with a default weight or group confidence value of one. Then modifications may be made to the group confidence value to reflect the appropriate weight of the group as associated with the user. For example, if a user is loosely associated with a group, the group confidence value may be lowered. Similarly, if a group is incoherent or has a low coherence, the group confidence value may be lowered. (Here coherence is used in the technical sense to refer to the degree to which members of a group are similar to other members of the group and dissimilar to members of other groups.) Group confidence values may also vary by group type. For example, location type groups may generally have higher (or perhaps, lower) confidence values than website type groups. Group confidence values may also vary by any other factor that affects the preferred weight of a group in computing the adjusted score for documents in the search result, including by query type (i.e., varying the group confidence value when computing the adjusted scored in response to an image query as opposed to map query, etc.). For example, a high traffic internet address group may reflect the users' proxy server, which is unlikely to have any significant relationship to users' interests and should therefore have a low confidence value relative to groups that more consistently reflect their users' interests. In some cases, when the group confidence value approaches or reaches zero, the user is no longer associated with the group.
  • Each group table 672 may also include profile confidence value records for every group profile of each group, for example 676-1 and 676-2 for Group 1, 676-3 and 676-4 for Group 2, and 676-2X-1 and 676-2X for Group X. Each profile confidence value record 676 may include a profile confidence value (e.g., Profile 1 Conf. Value) indicating the weight of each profile as associated with the group in the re-ranking process for a particular user; a unique identification (ID) of the profile associated with each group (e.g. Grp1-Prf1 ID); and a pointer to a group profile table, such as category-based group profile table 650, term-based group profile table 700, link-based group profile table 800, or the like. In some embodiments, all profiles begin with a default profile confidence value of one. Then modifications may be made to the profile confidence value to reflect the appropriate weight of the profile as associated with the user and the group as described with respect to the group confidence value above. For example, group 1, based on website i, may have a short term profile, profile 1, and a long term profile, profile 2. The profile confidence value for the short term profile 1 may be raised for a news query when website i is www.cnn.com based on the assumption that current news is more interesting to users associated with www.cnn.com. In some cases, when the profile confidence value approaches or reaches zero, the profile is no longer associated with the user or the group.
  • In some embodiments, an information server stores information identifying a limited number of groups per user. In addition, one or more groups may be associated with a user on the fly, for instance based on the user's IP address or the website from which the user is submitting a search query. Any groups not associated with a user are implicitly assigned a default confidence value of zero. In some embodiments, group memberships (i.e., groups associated with a user) are updated from time to time based on “recent history” (new data concerning recent online behavior of the user). This may include increasing the confidence of groups for which there is evidence of continued membership, decreasing the confidence of groups for which there is a lack of evidence of continued membership or evidence of decreased activity. A group may be removed from the set of groups associated with a user when the confidence value of the group falls below a predefined threshold value (e.g., 0.2 or any other appropriate value). Furthermore, since some group membership information may be determined on the fly, confidence values for those groups may be based on other information, such as a website's coherence value (see definition of coherence value, above).
  • FIG. 7 is a block diagram of an exemplary data structure, a term-based group profile table 700, which may be used for storing term-based group profiles in accordance with some embodiments of the present invention. The table 700 includes a plurality of records 710, each record corresponding to a group's term-based profile. A term-based group profile record 710 includes a plurality of columns including a GROUP_ID column 720 and multiple columns of (such as TERM, WEIGHT) pairs 740. The GROUP_ID column stores a group identifier. Each (TERM, WEIGHT) pair 740 includes a term of typically one to three words that is deemed relevant to the interests of the users and a weight associated with the term indicating the relevance of the term. The weight of a term is not necessarily a positive value. A negative weight suggests that the website users disfavor documents including this term in the search results.
  • Besides term-based and category-based profiles, another type of group profile is referred to as a link-based profile. As discussed above, the page rank of a document is based on the link structure that connects the document to other documents on the Internet. A document having more links pointing to it is often assigned a higher page rank and is therefore deemed more popular by the search engine. Link information of documents selected by users can be used to infer the interests of the users. In one embodiment, a list of preferred URLs is identified for users by analyzing the click rate of these URLs. Each preferred URL may be further weighted according to the mouse hovering time by the users at the URL. In another embodiment, a list of preferred web hosts is identified for the users by analyzing the users' visit rate at different web hosts. When two or more preferred URLs are related to the same web host, the weights of the two or more URLs may be combined as the weight of the web host.
  • FIG. 8 is a block diagram of an exemplary data structure that may be used for storing link-based group profiles in accordance with some embodiments of the present invention. The link-based profile table 800 includes a table 810 that includes a plurality of records 820, each record including a GROUP_ID and a pointer pointing to another data structure, such as table 810-1. Table 810-1 may include two columns, LINK_ID 830 and WEIGHT 840. The LINK_ID 830 may be associated with a preferred URL or host. The actual URL/host may be stored in the table instead of the LINK_ID, however it is preferable to store the LINK_ID to save storage space.
  • A preferred list of URLs and/or hosts includes URLs and/or hosts that have been directly identified by the users. The preferred list of URLs and/or host may further extend to URLs and/or hosts indirectly identified by using methods such as collaborative filtering or bibliometric analysis, which are known to one of ordinary skill in the art. In one embodiment, the indirectly identified URLs and/or hosts include URLs or hosts that have links to/from the directly identified URLs and/or hosts. These indirectly identified URLs and/or hosts are weighted by the distance between them and the directly identified URLs or hosts. For example, when a directly identified URL or host has a weight of 1, URLs or hosts that are one link away may have a weight of 0.5, URLs or hosts that are two links away may have a weight of 0.25, etc. This procedure can be further refined by reducing the weight of links that are not related to the topic of the original URL or host, e.g., links to copyright pages or web browser software that can be used to view the documents associated with the user-selected URL or host. Irrelevant Links can be identified based on their context or their distribution. For example, copyright links often use specific terms (e.g., “copyright” and “All rights reserved” are commonly used terms in the anchor text of a copyright link); and links to a website from many unrelated websites may suggest that this website is not topically related (e.g., links to the Internet Explorer® website are often included in unrelated websites). The indirect links can also be classified according to a set of topics or categories and links with very different topics or categories may be excluded or be assigned a low weight.
  • The types of group profiles discussed above are generally complementary to one another since different profiles characterize the interests of users from different vantage points. However, this does not mean that one type of group profile, e.g., the category-based profile, is incapable of playing a role that is typically played by another type of group profile. By way of example, a preferred URL or host in a link-based profile is often associated with a specific topic, e.g., finance.yahoo.com is a URL focusing on financial news. Therefore, what is achieved by a link-based profile that comprises a list of preferred URLs or hosts may also be achievable, at least in part, by a category-based profile that has a set of categories that cover the same topics covered by preferred URLs or hosts.
  • FIG. 9 is a flow diagram of a process for generating group-dependent search results using the various types of group profiles in accordance with some embodiments of the present invention. Initially, the search engine 122 receives a search query submitted by a user (910). In response, the search engine 122 may optionally generate a query strategy (915). For example, the search query is normalized so as to be in proper form for further processing, and/or the search query may be modified in accordance with predefined criteria so as to automatically broaden or narrow the scope of the search query. Next, the search engine 122 searches the content database 124 for documents that match the search query (or the query strategy, if one is generated). The search engine 122 identifies a set of documents that match the search query (920), each document having a generic ranking score that depends on the document's page rank and the search query. All three operations (910, 915 and 920) are typically conducted by the search engine 122. The net result is an initial set of search results.
  • Each group associated with the requesting user is identified (922). In some embodiments, some or all of the requesting user's group identifier(s) are embedded in the search query by the client assistant 134 or other means. Based on the group identifier(s), the search result ranker 126 identifies the associated group profiles in the group profile database 128 (925). For each document identified by the search engine 122 the search result ranker identifies a document profile (930), based on which a generic ranking score is derived.
  • Next, the search result ranker 126 analyzes each identified document to determine one or more boost factors using the group and document profiles (935) and then assigns the document a group-dependent ranking score using the document's generic ranking score and the boost factors (940). The search result ranker 126 iterates the process for every identified document (942). The search result ranker 126 re-orders the list of documents according to their group-dependent ranking scores (945) to produce re-ordered search results. At least a portion of the re-ordered search results (e.g., the top N ranked items, based on the re-ordering), including links to a list of documents, are sent to the requesting client 103.
  • In some embodiments, the analysis of an identified document at 935 includes determining a correlation between the document's content and the group profiles. Furthermore, in some embodiments, this operation includes accessing a previously computed document profile for the document and then determining a correlation between the document profile and the group profiles. In some embodiments, determining the correlation includes one or more operations that are “dot product” computations, which determine the extent of overlap, if any, between the document profile and the group profiles. In addition, instead of determining and then applying a boost factor (as in operations 935 and 940), some documents may have their group-dependent ranking score set very high or very low in accordance with information in a group profile. For instance, for a group associated with “Apple computers,” documents from websites associated with fruit and produce may be assigned a predefined very low group-dependent ranking score.
  • FIG. 10 is a block diagram of exemplary data structures that may be used for storing category-based, term-based, and link-based boost factors for documents in the search results in accordance with some embodiments of the present invention. For each candidate document, each identified by a respective DOC_ID, category-based document information table 1010 includes a plurality of identified categories and associated weights, term-based document information table 1030 includes multiple pairs of relevant terms and associated weights, and link-based document information table 1050 includes a set of links and corresponding weights.
  • The rightmost column of each of the three tables (1010, 1030 and 1050) stores the boost factor (i.e., a computed score) of a document when the document is evaluated using one specific type of group profile. A document's boost factor can be determined by combining the weights of the items associated with the document. For instance, a category-based or term-based boost factor for users associated with an ip address range group may be computed as follows. The users may favor documents related to science with a weight of 0.6, and disfavor documents related to business with a weight of −0.2. Thus, when a science document matches a search query, it will be boosted over a business document. In general, the document topic classification may not be exclusive. A candidate document may be classified as being a science document with probability of 0.8 and a business document with probability of 0.4. A link-based boost factor may be computed based on the relative weights allocated to the preferred URLs or hosts in the link-based profile. In one embodiment, the term-based profile rank can be determined using known techniques, such as “term frequency-inverse document frequency” (TF-IDF). The “term frequency” of a term is a function of the number of times the term appears in a document. The “inverse document frequency” of a term is an inverse function of the number of documents in which the term appears within a collection of documents. For example, very common terms like “word” occur in many documents and consequently are assigned a relatively low inverse document frequency, while less common terms like “photograph” and “microprocessor” are each assigned a relatively high inverse document frequency.
  • In some embodiments, when a search engine generates a search result in response to a search query, a candidate document D that satisfies the search query is assigned a query score, QueryScore, in accordance with the search query. This query score is then modulated by document D's page rank, PageRank, to generate a generic ranking score, GenericScore, that is expressed as
    GenericScore=QueryScore*PageRank.
  • This generic ranking score may not appropriately reflect document D's relevance to a particular group of users if the users' interest is measurably different from that of a random user of the search engine. The relevance of document D to the users can be characterized by a set of boost factors, based on the correlation between document D's content and the group's term-based profile, herein called the TermBoostFactor, the correlation between one or more categories associated with document D and the group's category-based profile, herein called the CategoryBoostFactor, and the correlation between the URL and/or host of document D and the group's link-based profile, herein called the LinkBoostFactor. Therefore, document D may be assigned a group-dependent ranking score that is a function of both the document's generic ranking score and the various group profile-based boost factors. In one embodiment, this group-dependent ranking score can be expressed as:
    GroupScore=GenericScore*(TermBoostFactor*CategoryBoostFactor*LinkBoostFactor),
    where a BoostFactor of 1.0 does not modify the generic score, and a value above or below 1.0 reduces or increases the generic score, respectively. The relative importance of each type of profile or boost factor is implemented by controlling the range of values that are allowed for a given type of boost factor. For example, a boost factor having a range of 0.1 to 10 has more importance in determining the GroupScore than a boost factor having a range of 0.5 to 2.0.
  • In other implementations, a linear combination of boost factors is used:
    GroupScore=GenericScore*(Wterm*TermBoostFactor+Wcategory*CategoryBoostFactor+Wlink*LinkBoostFactor)
    or
    GroupScore=GenericScore*f(Wterm*TermBoostFactor+Wcategory*CategoryBoostFactor+Wlink*LinkBoostFactor),
    where the weights (Wterm, Wcategory, Wlink) are assigned so that the value in parentheses in the above equations is equal to about 1.0 if the document is to be neither promoted nor demoted in rank for the group, above 1.0 if the document should be promoted, and below 1.0 if the document should be demoted. The greater the deviation from 1.0, the stronger the promotion or demotion of the document. The function f( ) in the last of the equations shown above can be a non-linear function (e.g., f(x)=xn where n is any suitable real value) that emphasizes or de-emphasizes the deviation from 1.0 of the value in the parentheses. In some embodiments the function f( ) is a transform function used to normalize the linear combination of boost factors to a range that is suitable for a combined boost factor. For example, the argument (input value) of the function f( ) may range from −1 to 1 (or any other suitable input range), while the value produced by the function f( ) ranges from 0.2 to 2.0 (or any other suitable output range). The f( ) portion of the above equation (i.e., the value produced by applying the function) corresponds to BoostFactor in the equation in the following paragraph.
  • In another embodiment, in which the group has a single profile, the group-dependent ranking score can be expressed as:
    GroupScore=GenericScore*BoostFactor
    where the “BoostFactor” is based on the correlation between document D's content and the group's profile.
  • FIG. 11 is a flow diagram of another process for generating group-dependent search results using group profiles in accordance with some embodiments of the present invention. Initially, the search result ranker 126 receives a search query submitted by a user associated with at least one group (1110). In response, the search result ranker 126 may optionally generate a generic query strategy (1115). The search result ranker 126 identifies the group profiles associated with the user's group(s) in the group profile database 128 (1125). Unlike the embodiment discussed above in connection with FIG. 9, the generic query strategy may be modulated by the group's profile to create a group-dependent query strategy (1165). For example, relevant terms from the group profile may be added to the search query with associated weights. In various embodiments, the group-dependent query strategy is created by the search engine 122, the front end server 120, or the search result ranker 126, respectively. In some other embodiments, a copy of the group profile(s) is generated by the group profiler 129 and the group-dependent query strategy is created by the website 102 from which the user is submitting the search query. Next, the search engine 122 searches the content database 124 (optionally using the group-dependent query strategy) for documents matching the query (1170). The documents are then ordered according to their group-dependent ranking scores (1175). When using the group-dependent query strategy, the documents identified by the content database 124 may be implicitly ordered by their associated query-dependent ranking score.
  • FIG. 13 is a flow diagram of a process for providing a user with customized group-dependent search results using group profiles according to some embodiments. After receiving a search query from the user (1300), a database search is performed to identify information items associated with the search query (1330). In addition, the process identifies a plurality of groups associated with the user (131 0). For example, a user might be associated with an internet address group based on the inclusion of the ip address of the user's computer in an ip address range associated with the internet address group and a location group based on the geolocation of the user's computer as inferred from the computer's ip address. At least one profile for each group is looked up or accessed (1320). For example, the search result ranker 126 may access the group profile database 128 to access each group's profile. These two steps (1310, 1320) may be done before or after the process identifies information items associated with the search query (1330).
  • Once search results have been identified, the relevance of each information item to the user is determined based on the groups associated with the user. For example, the search result ranker 126 computes an adjusted score or group score for each document based on the document profile and the groups' profiles (1340). The adjusted score for each document k is a function of the GenericScore (as defined above), GroupProfiles(i, j), GroupConfs(i), ProfileConfs(j), and DocumentProfile(k) for all groups i and profiles j where i, j, and k are whole numbers. For example, group profiles GroupProfiles(i, j) as depicted in FIG. 6C include the profiles for groups 1 through X, such as Grp1-Prf1, Grp2-Prf2, etc. Thus, in FIG. 6C there are X groups each having two profiles for a total of 2X profiles. GroupConfs(i) are the group confidence values stored in records 674-1 through X, while ProfileConfs(j) are the profile confidence values stored in records 676-1 through 676-2X. The DocumentProfile(k) is the profile of each document k and may include indications of the document's content and/or the corresponding document profile stored in document profile database 123. In some embodiments the adjusted score for each document k may be expressed as:
    AdjustedScore(k)=DocumentProfile(k)*[GenericScore*ΣiGroupConfs(i)*Σj[ProfileConfs(j)*GroupProfiles(i, j)]]
    where Σi indicates summation over all i groups and Σj indicates summation over all j profiles.
  • Once the adjusted score for each information item in the search result is computed, the information items are ranked accordingly (1350), and then information identifying at least a portion of the ranked search results (e.g., the top N ranked items, where N is a suitable integer) is provided to the user (1360). For example, the search engine and search ranker may produce over one thousand ranked search results, but the user may be sent a smaller number of top ranked results, where the number is between ten and 260, or between ten and 130.
  • FIG. 14 is a flow diagram of a process for providing a user with customized group-dependent search results using group profiles according to some embodiments. After receiving a search query from the user (1300), a database search is performed to identify information items associated with the search query (1330). In addition, the process identifies a group associated with the user (1410). For example, a user might be associated with an internet address group based on the inclusion of the ip address of the user's computer in an ip address range associated with the internet address group. A plurality of profiles for the group are looked up or accessed (1420). For example, the search result ranker 126 may access the group profile database 128 to access the group's long term and short term profiles. These two steps (1410, 1420) may be done before or after the process identifies information items associated with the search query (1330). Then an adjusted score is computed based on the group's profiles (1430). The computation of the adjusted score may be done in a manner explained above. Once the adjusted score for each information item in the search result is computed, the information items are ranked accordingly (1350), and information identifying at least a portion of the ranked search results (e.g., the top N ranked items, where N is a suitable integer) is provided to the user (1360).
  • Referring to FIG. 12, an exemplary information server 1200 typically includes one or more processing units (CPU's) 1202, one or more network or other communications interfaces 1210, memory 1212, and one or more communication buses 1014 for interconnecting these components. The communication buses 1014 may include circuitry (sometimes called a chipset) that interconnects and controls communications between system components. The system 1200 may optionally include a user interface, for instance a display and a keyboard. Memory 1212 may include high speed random access memory and may also include non-volatile memory, such as one or more magnetic disk storage devices. Memory 1212 may include mass storage that is remotely located from the CPU's 1202. In some embodiments, memory 1212 stores the following programs, modules and data structures, or a subset or superset thereof:
      • an operating system 1216 that includes procedures for handling various basic system services and for performing hardware dependent tasks;
      • a network communication module 1218 that is used for connecting the information server 1200 to other servers or computers via one or more communication networks (wired or wireless), such as the Internet, other wide area networks, local area networks, metropolitan area networks, and so on;
      • a system initialization module 1220 that initializes other modules and data structures stored in memory 1212 required for the appropriate operation of the information server 1200;
      • a search engine 122 for processing a search query, identifying and ordering a search result according to the search query;
      • a content database 124 for storing a plurality of indexed document retrieved from the Internet;
      • a group profiler 129 for processing data presenting the online behavior of one or more groups of users and creating and updating one or more profiles that characterize the interests of the users associated with the one or more groups;
      • a search history database 127 for storing search histories associated with different groups including search queries, search results and user activities;
      • a group profile database 123 for storing group profiles associated with different groups;
      • a document profiler 125 for analyzing a document's content and context and creating a profile for the document;
      • a document profile database 123 for storing document profiles associated with different documents stored in the content database 124; and
      • a search result ranker 126 for generating a group-dependent ranking score for each document identified by the search engine 122 using a group profile and re-ordering the documents in a search result in accordance with their group-dependent ranking scores.
  • In some embodiments, the information server 106 may not have access to all the search history associated with a website. For example, there may be an agreement between a website 102 and the information server 106 with respect to the search queries submitted from the website 102. According to the agreement, when a user visiting the website 1027 submits a search query to the information server 106, the information server 106 is required to send the corresponding search result to the website 102 rather than the requesting user at a client 103. The website 102 may modify the search result, e.g., attaching advertisements or other information to the search result, and then serves the modified search result to the requesting user at the client 103.
  • In this scenario, the information server 106 may have no information identifying the requesting user and the client 103, and may also be unable to monitor the user's activities on the search result. For example, the information server 106 may not receive any information identifying the document links in the search result that have been clicked by the user. Similarly, the information server 106 may not receive any information identifying the document links over which the user moves his or her mouse link and the corresponding mouse hovering time. In other words, the information server 106 has very limited or no exposure to the activities of the website users on the search results. Therefore, the information server 106 has to rely on the user activities on search results from other venues to generate the group profile.
  • In some embodiments, by examining the search queries submitted from different websites, the information server 106 may identify another website similar to the website in question. Two websites are deemed similar if a predefined number or percentage of search queries submitted from the two websites is identical. It is also reasonable to infer that users of the two similar websites may have similar interests and therefore the user activities associated with one website are a reasonable proxy of the user activities associated with the other one. If the information server 106 can access the user activities associated with one of the two websites (e.g., there is no agreement to deliver the search results to the website), the information server 106 can use the same user activities to create the group profile for the other website.
  • When there is no other website similar to the website in question, the information server 106 may utilize monitored user activities associated with search queries submitted directly to the search engine (e.g., search queries submitted using a toolbar search box or a webpage associated with the information server 106) as the proxy of a particular website. For instance, the search query “golf courses in mountain view” may be submitted both to a golf-focused website, and to a general purpose search engine. Profile information developed from clicks on the search results of this search query is used to generate a group profile by combining or aggregating statistical information related to the queries received from each respective website.
  • Placed content may be displayed to users of search services, email services, and a variety of other services provided via the Internet or other wide area networks. For example, when search results are returned to a user in response to a search query, often times certain placed content is returned as well. Placed content is usually in the form of advertising, but could be any type of content related to the search query or to a document being sent to the user. Generally, placed is be any type of content where content providers compete or pay for placement. The techniques discussed above for selecting and ranking information items can also be used for selecting and/or ranking placed content to be presented to users. In particular, in some embodiments, group profiles are used to select advertisements or other placed content to be presented to users along with search results. For example, different advertisements may have different sets of key terms. A correlation of the key terms of each advertisement in a set of advertisements with a term-based group profile (or a category-based profile, or both) associated with a group of users produces a booster factor for the advertisement. This boost factor may be used to promote or demote the particular advertisement in response to a search query submitted by a user associated with the group. For example, when the information server 106 receives a search query “world cup 2006” from a member of a group that is positively weighted in the soccer category, it may promote those advertisements covering soccer gear, ticket sale for the 2006 FIFA World Cup Germany, and hotel reservations at the German cities hosting the soccer game, etc.
  • The foregoing description, for purpose of explanation, has been described with reference to specific embodiments. However, the illustrative discussions above are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, to thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated.

Claims (34)

1. A computer-implemented method, comprising:
associating a plurality of groups with a user;
accessing at least one profile for each of the plurality of groups associated with the user;
receiving a search query from the user;
identifying a plurality of information items associated with the search query;
computing an adjusted score based on the profiles of the groups;
ranking the information items in accordance with the adjusted score; and
providing the ranked information items to the user.
2. The computer-implemented method of claim 1, further comprising:
identifying a website associated with the user;
determining a website profile of the website;
determining a determined group in accordance with the website profile;
associating the determined group with the user.
3. The computer-implemented method of claim 1, further comprising:
assigning profile confidence values to at least one respective profile of at least one respective group of the groups; and
computing the adjusted score in accordance with the profile confidence value.
4. The computer-implemented method of claim 3, wherein assigning the profile confidence value further comprises assigning the profile confidence value in accordance with a query type of the search query.
5. The computer-implemented method of claim 1, further comprising:
assigning group confidence values to respective groups of the plurality of the groups; and
computing the adjusted score in accordance with the assigned group confidence values.
6. The computer-implemented method of claim 5, wherein assigning the group confidence value further comprises:
evaluating a coherence of a respective group of the plurality of groups;
evaluating a type of the respective group; and
assigning the group confidence value in accordance with the coherence and the type of the respective group.
7. The computer-implemented method of claim 6, wherein evaluating the type of the respective group further comprises:
if the respective group associated with the user is an internet address type group, determining a traffic volume of an internet address or internet address range associated with the user; and
assigning the group confidence value in accordance with the traffic volume.
8. The computer-implemented method of claim 1, wherein associating the plurality of groups with the user further comprises:
identifying an internet address of the user;
determining if the internet address is associated with an internet address group; and
associating the internet address group with the user in accordance with the internet address of the user.
9. The computer-implemented method of claim 8, wherein determining if the internet address is associated with the internet address group further comprises:
evaluating a coherence of the internet address group;
evaluating a number of other users associated with the internet address group; and
if the coherence is greater than a predetermined coherence and the number is greater than a predetermined value determining that the internet address is associated with the internet address group.
10. The computer-implemented method of claim 1, wherein associating the plurality of groups with the user further comprises:
identifying a location of the user;
determining if the location is associated with a location group; and
associating the location group with the user in accordance with the location of the user.
11. The computer-implemented method of claim 1, wherein associating the plurality of groups with the user further comprises:
identifying a history of the user;
determining if the history is associated with a respective group; and
associating the respective group with the user in accordance with the history of the user.
12. The computer-implemented method of claim 11, wherein identifying the history of the user further comprises identifying at least one of a website visited by the user, a query submitted by the user, and user interaction by the user with search results associated with the query.
13. The computer-implemented method of claim 1, wherein associating the plurality of groups with the user further comprises identifying a respective group corresponding to a user profile of the user.
14. The computer-implemented method of claim 1, wherein associating the plurality of groups with the user further comprises:
identifying a domain name associated with the user;
determining if domain name is associated with a domain name group; and
associating the domain name group with the user in accordance with the domain name associated with the user.
15. The computer-implemented method of claim 1, wherein computing an adjusted score based on the profiles of the groups further comprises:
assigning a profile confidence value to each profile of the groups;
assigning a group confidence value to each of the plurality of the groups;
calculating the adjusted score based on the profile confidence value of each profile of the groups and the group confidence value of each of the plurality of the groups.
16. A computer system for managing time and place information, comprising:
memory;
one or more processors;
one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs including:
instructions for associating a plurality of groups with a user;
instructions for accessing at least one profile for each of the plurality of groups associated with the user;
instructions for receiving a search query from the user;
instructions for identifying a plurality of information items associated with the search query;
instructions for computing an adjusted score based on the profiles of the groups;
instructions for ranking the information items in accordance with the adjusted score; and
instructions for providing the ranked information items to the user.
17. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
instructions for associating a plurality of groups with a user;
instructions for accessing at least one profile for each of the plurality of groups associated with the user;
instructions for receiving a search query from the user;
instructions for identifying a plurality of information items associated with the search query;
instructions for computing an adjusted score based on the profiles of the groups;
instructions for ranking the information items in accordance with the adjusted score; and
instructions for providing the ranked information items to the user.
18. A computer-implemented method, comprising:
associating a first group having a plurality of profiles with a user;
receiving a search query from the user;
identifying a plurality of information items associated with the search query;
computing an adjusted score based, at least in part, on the profiles of the first group;
ranking the information items in accordance with the adjusted score; and
providing the ranked information items to the user.
19. The computer-implemented method of claim 18, further comprising:
identifying a website associated with the user;
determining a website profile of the website;
determining a group in accordance with the website profile;
associating the group with the user.
20. The computer-implemented method of claim 18, further comprising:
assigning profile confidence values to at least one respective profile of the plurality of profiles; and
computing the adjusted score in accordance with the profile confidence values.
21. The computer-implemented method of claim 20, wherein assigning the profile confidence values further comprises assigning the profile confidence values in accordance with a query type of the search query.
22. The computer-implemented method of claim 18, further comprising:
assigning a respective group confidence value to a respective group and computing the adjusted score in accordance with the respective group confidence value.
23. The computer-implemented method of claim 22, wherein assigning the group confidence value further comprises:
evaluating a coherence of the respective group;
evaluating a type of the respective group; and
assigning the group confidence value in accordance with the coherence and the type of the respective group.
24. The computer-implemented method of claim 23, wherein evaluating the type of a respective group further comprises:
if the respective group associated with the user is an internet address type group, determining a traffic volume of an internet address or internet address range associated with the user; and
assigning the group confidence value in accordance with the traffic volume.
25. The computer-implemented method of claim 18, further comprising:
identifying an internet address of the user;
determining if the internet address is associated with an internet address group; and
associating the internet address group with the user in accordance with the internet address of the user.
26. The computer-implemented method of claim 25, wherein determining if the internet address is associated with the internet address group further comprises:
evaluating a coherence of the internet address group;
evaluating a number of other users associated with the internet address group; and
if the coherence is greater than a predetermined coherence and the number is greater than a predetermined value determining that the internet address is associated with the internet address group.
27. The computer-implemented method of claim 18, further comprising:
identifying a location of the user;
determining if the location is associated with a location group; and
associating the location group with the user in accordance with the location of the user.
28. The computer-implemented method of claim 18, further comprising:
identifying a history of the user;
determining if the history is associated with a respective group; and
associating the respective group with the user in accordance with the history of the user.
29. The computer-implemented method of claim 28, wherein identifying the history of the user further comprises identifying at least one of a website visited by the user, a search query submitted by the user, and user interaction by the user with search results associated with the search query.
30. The computer-implemented method of claim 18, further comprises identifying a group corresponding to a user profile of the user.
31. The computer-implemented method of claim 18, further comprising:
identifying a domain name associated with the user;
determining if domain name is associated with a domain name group; and
associating the domain name group with the user in accordance with the domain name associated with the user.
32. The computer-implemented method of claim 18, wherein computing an adjusted score based, at least in part, on the profiles of the first group further comprises:
assigning a profile confidence value to each profile;
assigning a group confidence value to respective groups including the first group;
calculating the adjusted score based on the profile confidence value of each profile and the group confidence value of each of the respective groups.
33. A computer system for managing time and place information, comprising:
memory;
one or more processors;
one or more programs stored in the memory and configured for execution by the one or more processors, the one or more programs including:
instructions for associating a first group having a plurality of profiles with a user;
instructions for receiving a search query from the user;
instructions for identifying a plurality of information items associated with the search query;
instructions for computing an adjusted score based on the profiles of the first group;
instructions for ranking the information items in accordance with the adjusted score; and
instructions for providing the ranked information items to the user.
34. A computer program product for use in conjunction with a computer system, the computer program product comprising a computer readable storage medium and a computer program mechanism embedded therein, the computer program mechanism comprising:
instructions for associating a first group having a plurality of profiles with a user;
instructions for receiving a search query from the user;
instructions for identifying a plurality of information items associated with the search query;
instructions for computing an adjusted score based on the profiles of the first group;
instructions for ranking the information items in accordance with the adjusted score; and
instructions for providing the ranked information items to the user.
US11/675,057 2006-03-30 2007-02-14 Group Customized Search Abandoned US20070233671A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/675,057 US20070233671A1 (en) 2006-03-30 2007-02-14 Group Customized Search

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/394,620 US8078607B2 (en) 2006-03-30 2006-03-30 Generating website profiles based on queries from webistes and user activities on the search results
US11/675,057 US20070233671A1 (en) 2006-03-30 2007-02-14 Group Customized Search

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US11/394,620 Continuation-In-Part US8078607B2 (en) 2004-07-13 2006-03-30 Generating website profiles based on queries from webistes and user activities on the search results

Publications (1)

Publication Number Publication Date
US20070233671A1 true US20070233671A1 (en) 2007-10-04

Family

ID=38335819

Family Applications (3)

Application Number Title Priority Date Filing Date
US11/394,620 Active 2028-07-31 US8078607B2 (en) 2004-07-13 2006-03-30 Generating website profiles based on queries from webistes and user activities on the search results
US11/675,057 Abandoned US20070233671A1 (en) 2006-03-30 2007-02-14 Group Customized Search
US13/323,758 Abandoned US20120089598A1 (en) 2006-03-30 2011-12-12 Generating Website Profiles Based on Queries from Websites and User Activities on the Search Results

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US11/394,620 Active 2028-07-31 US8078607B2 (en) 2004-07-13 2006-03-30 Generating website profiles based on queries from webistes and user activities on the search results

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/323,758 Abandoned US20120089598A1 (en) 2006-03-30 2011-12-12 Generating Website Profiles Based on Queries from Websites and User Activities on the Search Results

Country Status (4)

Country Link
US (3) US8078607B2 (en)
EP (1) EP2005339A2 (en)
CN (1) CN101454780B (en)
WO (1) WO2007115217A2 (en)

Cited By (150)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080052283A1 (en) * 2000-02-25 2008-02-28 Novell, Inc. Construction, manipulation, and comparison of a multi-dimensional semantic space
US20080209349A1 (en) * 2007-02-28 2008-08-28 Aol Llc Personalization techniques using image clouds
US20080270228A1 (en) * 2007-04-24 2008-10-30 Yahoo! Inc. System for displaying advertisements associated with search results
US20080288310A1 (en) * 2007-05-16 2008-11-20 Cvon Innovation Services Oy Methodologies and systems for mobile marketing and advertising
US20080295139A1 (en) * 2007-05-22 2008-11-27 Cvon Innovations Ltd. Message delivery management method and system
US20080313146A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Content search service, finding content, and prefetching for thin client
US20090077033A1 (en) * 2007-04-03 2009-03-19 Mcgary Faith System and method for customized search engine and search result optimization
US20090094187A1 (en) * 2007-10-08 2009-04-09 Sony Computer Entertainment America Inc. Evaluating appropriateness of content
US20090125511A1 (en) * 2007-11-13 2009-05-14 Ankesh Kumar Page ranking system employing user sharing data
US20090132365A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Search, advertising and social networking applications and services
US20090144305A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Dependency management with atomic decay
US20090171938A1 (en) * 2007-12-28 2009-07-02 Microsoft Corporation Context-based document search
US20090171941A1 (en) * 2007-12-31 2009-07-02 Edith Helen Stern Adaptive searching
US20090177645A1 (en) * 2008-01-09 2009-07-09 Heck Larry P Adapting a context-independent relevance function for identifying relevant search results
US20090204599A1 (en) * 2008-02-13 2009-08-13 Microsoft Corporation Using related users data to enhance web search
US20090234718A1 (en) * 2000-09-05 2009-09-17 Novell, Inc. Predictive service systems using emotion detection
EP2105846A1 (en) * 2008-03-28 2009-09-30 Sony Corporation Method of recommending content items
US20090265325A1 (en) * 2008-04-16 2009-10-22 Iac Search & Media, Inc. Adaptive multi-channel content selection with behavior-aware query analysis
US20090278858A1 (en) * 2008-05-12 2009-11-12 Canon Kabushiki Kaisha Information processing apparatus, data processing method, and computer-readable recording medium storing program
US20090292691A1 (en) * 2008-05-21 2009-11-26 Sungkyunkwan University Foundation For Corporate Collaboration System and Method for Building Multi-Concept Network Based on User's Web Usage Data
US20100003963A1 (en) * 2006-10-27 2010-01-07 Cvon Innovations Ltd Method and device for managing subscriber connection
US20100011021A1 (en) * 2008-07-11 2010-01-14 Satyam Computer Services Limited Of Mayfair Center System and method for context map generation
US20100034745A1 (en) * 2005-05-03 2010-02-11 Neuera Pharmaceuticals, Inc. Method for Reducing Levels of Disease Associated Proteins
US20100076786A1 (en) * 2008-08-06 2010-03-25 H.Lee Moffitt Cancer Center And Research Institute, Inc. Computer System and Computer-Implemented Method for Providing Personalized Health Information for Multiple Patients and Caregivers
US20100082434A1 (en) * 2008-09-29 2010-04-01 Yahoo! Inc. Personalized search results to multiple people
US20100100536A1 (en) * 2007-04-10 2010-04-22 Robin Daniel Chamberlain System and Method for Evaluating Network Content
US20100169315A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Attribution analysis and correlation
US20100169314A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Content analysis and correlation
US20100169337A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Identity analysis and correlation
WO2010078646A1 (en) * 2009-01-06 2010-07-15 Tynt Multimedia Inc. Systems and methods for detecting network resource interaction and improved search result reporting
US20100185612A1 (en) * 2009-01-13 2010-07-22 Hotchalk Inc. Method for Producing an Ordered Search List
US20100250479A1 (en) * 2009-03-31 2010-09-30 Novell, Inc. Intellectual property discovery and mapping systems and methods
US20100274661A1 (en) * 2006-11-01 2010-10-28 Cvon Innovations Ltd Optimization of advertising campaigns on mobile networks
US20100287183A1 (en) * 2009-05-08 2010-11-11 Microsoft Corporation Sharing and collaboration of search findings
US20100331075A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Using game elements to motivate learning
US20100331064A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Using game play elements to motivate learning
US20100332570A1 (en) * 2009-06-30 2010-12-30 Verizon Patent And Licensing Inc. Methods and systems for automatically customizing an interaction experience of a user with a media content application
US20110010336A1 (en) * 2009-07-10 2011-01-13 Geodex, Llc Computerized System And Method For Tracking The Geographic Relevance Of Website Listings And Providing Graphics And Data Regarding The Same
US20110035388A1 (en) * 2008-01-02 2011-02-10 Samsung Electronics Co., Ltd. Method and apparatus for recommending information using a hybrid algorithm
WO2011025696A1 (en) * 2009-08-27 2011-03-03 Alibaba Group Holding Limited Method and system of information matching in electronic commerce website
US20110106885A1 (en) * 2009-10-29 2011-05-05 Cisco Technology, Inc. Methods and apparatus for supporting multiple party login into a single session
US20110153425A1 (en) * 2009-06-21 2011-06-23 James Mercs Knowledge based search engine
EP2351987A2 (en) 2010-01-27 2011-08-03 Navteq North America, LLC Method of operating a navigation system to provide geographic location information
US20110191171A1 (en) * 2010-02-03 2011-08-04 Yahoo! Inc. Search engine output-associated bidding in online advertising
US20110238646A1 (en) * 2008-08-27 2011-09-29 Robin Daniel Chamberlain System and/or method for linking network content
US20110264796A1 (en) * 2010-04-23 2011-10-27 Ganz Search and navigational rating system for online social environment
US20110264651A1 (en) * 2010-04-21 2011-10-27 Yahoo! Inc. Large scale entity-specific resource classification
US20110270850A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Prioritization of Resources based on User Activities
US20110295628A1 (en) * 2010-05-28 2011-12-01 Apple Inc. Audience targeting based on performance history of invitational content
US20120016873A1 (en) * 2010-07-16 2012-01-19 Michael Mathieson Method and system for ranking search results based on categories
US20120041936A1 (en) * 2010-08-10 2012-02-16 BrightEdge Technologies Search engine optimization at scale
US20120041957A1 (en) * 2007-07-18 2012-02-16 Hsu Windsor W Efficiently indexing and searching similar data
US20120047184A1 (en) * 2009-04-29 2012-02-23 Waldeck Technology, Llc Profile construction using location-based aggregate profile information
US8135735B2 (en) 2009-07-10 2012-03-13 Geodex, Llc Computerized system and method for tracking the geographic relevance of website listings and providing graphics and data regarding the same
US20120166428A1 (en) * 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
US8280869B1 (en) * 2009-07-10 2012-10-02 Teradata Us, Inc. Sharing intermediate results
US20120278318A1 (en) * 2011-05-01 2012-11-01 Reznik Alan M Systems and methods for facilitating enhancements to electronic group searches
US20120310973A1 (en) * 2011-06-02 2012-12-06 Ebay Inc. System and method for determining query aspects at appropriate category levels
US20120317120A1 (en) * 2011-06-08 2012-12-13 Ebay Inc. System and method for mining category aspect information
US20120330970A1 (en) * 2011-06-21 2012-12-27 Julien Bieren System and method for optimizing web searching and scheduling of service providers
CN102859516A (en) * 2009-04-08 2013-01-02 谷歌公司 Generating improved document classification data using historical search results
US20130054743A1 (en) * 2011-08-25 2013-02-28 Ustream, Inc. Bidirectional communication on live multimedia broadcasts
US20130080250A1 (en) * 2011-09-27 2013-03-28 Nhn Business Platform Corporation Group targeting system and method for internet service or advertisement
US20130132357A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Query refinement in a browser toolbar
US20130159835A1 (en) * 2011-12-15 2013-06-20 Verizon Patent And Licensing Inc. Context generation from active viewing region for context sensitive searching
US8473512B2 (en) 2009-11-06 2013-06-25 Waldeck Technology, Llc Dynamic profile slice
US8478240B2 (en) 2007-09-05 2013-07-02 Apple Inc. Systems, methods, network elements and applications for modifying messages
US20130204863A1 (en) * 2012-02-04 2013-08-08 Rod Rigole System and Method for Displaying Search Results
US8510309B2 (en) 2010-08-31 2013-08-13 Apple Inc. Selection and delivery of invitational content based on prediction of user interest
US8640032B2 (en) 2010-08-31 2014-01-28 Apple Inc. Selection and delivery of invitational content based on prediction of user intent
US8645837B2 (en) 2008-11-26 2014-02-04 Red Hat, Inc. Graphical user interface for managing services in a distributed computing system
US8719091B2 (en) 2007-10-15 2014-05-06 Apple Inc. System, method and computer program for determining tags to insert in communications
US20140143250A1 (en) * 2012-03-30 2014-05-22 Xen, Inc. Centralized Tracking of User Interest Information from Distributed Information Sources
US8737952B2 (en) 2007-01-09 2014-05-27 Apple Inc. Advertisement scheduling
US8782560B2 (en) 2009-12-22 2014-07-15 Waldeck Technology, Llc Relative item of interest explorer interface
US8812494B2 (en) 2010-05-28 2014-08-19 Apple Inc. Predicting content and context performance based on performance history of users
US8819009B2 (en) 2011-05-12 2014-08-26 Microsoft Corporation Automatic social graph calculation
US20140280576A1 (en) * 2013-03-14 2014-09-18 Google Inc. Determining activities relevant to groups of individuals
US8862597B2 (en) * 2011-12-27 2014-10-14 Sap Portals Israel Ltd Providing contextually-relevant content
US20140310263A1 (en) * 2013-04-16 2014-10-16 Alibaba Group Holding Limited Method and Apparatus of Recommending an Internet Transaction
CN104156359A (en) * 2013-05-13 2014-11-19 腾讯科技(深圳)有限公司 Linking information recommendation method and device
US20140344057A1 (en) * 2013-03-15 2014-11-20 adRise, Inc. Interactive advertising
US8898217B2 (en) 2010-05-06 2014-11-25 Apple Inc. Content delivery based on user terminal events
US8898164B1 (en) * 2011-11-17 2014-11-25 Quantcast Corporation Consumption history privacy
US8930392B1 (en) * 2012-06-05 2015-01-06 Google Inc. Simulated annealing in recommendation systems
US8930351B1 (en) * 2010-03-31 2015-01-06 Google Inc. Grouping of users
US8954423B2 (en) * 2011-09-06 2015-02-10 Microsoft Technology Licensing, Llc Using reading levels in responding to requests
US8972391B1 (en) * 2009-10-02 2015-03-03 Google Inc. Recent interest based relevance scoring
US8983948B1 (en) * 2011-12-29 2015-03-17 Google Inc. Providing electronic content based on a composition of a social network
US20150081691A1 (en) * 2006-08-25 2015-03-19 Surf Canyon Incorporated Adaptive user interface for real-time search relevance feedback
US8996495B2 (en) * 2011-02-15 2015-03-31 Ebay Inc. Method and system for ranking search results based on category demand normalized using impressions
WO2014184784A3 (en) * 2013-05-16 2015-04-16 Yandex Europe Ag Method and system for presenting image information to a user of a client device
US20150121081A1 (en) * 2013-10-29 2015-04-30 International Business Machines Corporation Computer-based optimization of digital signature generation for records based on eventual selection criteria for products and services
US20150212710A1 (en) * 2013-10-10 2015-07-30 Go Daddy Operating Company, LLC Card interface for managing domain search results
US20150220544A1 (en) * 2014-02-03 2015-08-06 Gogobot, Inc. Selection and Rating of Locations and Related Content Based on User Categorization
US20150220614A1 (en) * 2011-12-13 2015-08-06 Nec Corporation Information collection device, system, method and program
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
US20150271211A1 (en) * 2014-03-21 2015-09-24 Konica Minolta Laboratory U.S.A., Inc. Rights management policies with nontraditional rights control
US9195703B1 (en) * 2013-06-27 2015-11-24 Google Inc. Providing context-relevant information to users
US9201964B2 (en) 2012-01-23 2015-12-01 Microsoft Technology Licensing, Llc Identifying related entities
US9330209B1 (en) * 2013-07-09 2016-05-03 Quantcast Corporation Characterizing an entity in an identifier space based on behaviors of unrelated entities in a different identifier space
US9418104B1 (en) 2009-08-31 2016-08-16 Google Inc. Refining search results
US20160292258A1 (en) * 2013-11-22 2016-10-06 Beijing Qihoo Technology Company Limited Method and apparatus for filtering out low-frequency click, computer program, and computer readable medium
US9477574B2 (en) 2011-05-12 2016-10-25 Microsoft Technology Licensing, Llc Collection of intranet activity data
US20160378768A1 (en) * 2009-03-12 2016-12-29 Comcast Interactive Media, Llc Ranking Search Results
US9535996B1 (en) * 2012-08-30 2017-01-03 deviantArt, Inc. Selecting content objects for recommendation based on content object collections
US20170024390A1 (en) * 2015-07-22 2017-01-26 Ariba, Inc. Customizable ranking of search engine results in multi-tenant architecture
US20170078415A1 (en) * 2015-09-15 2017-03-16 Yahoo! Inc. Identifying Users' Identity Through Tracking Common Activity
US9623119B1 (en) 2010-06-29 2017-04-18 Google Inc. Accentuating search results
US9697500B2 (en) 2010-05-04 2017-07-04 Microsoft Technology Licensing, Llc Presentation of information describing user activities with regard to resources
US9811352B1 (en) 2014-07-11 2017-11-07 Google Inc. Replaying user input actions using screen capture images
US9811566B1 (en) 2006-11-02 2017-11-07 Google Inc. Modifying search result ranking based on implicit user feedback
US9866455B2 (en) 2007-11-30 2018-01-09 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US9892730B2 (en) 2009-07-01 2018-02-13 Comcast Interactive Media, Llc Generating topic-specific language models
TWI616761B (en) * 2010-03-09 2018-03-01 Alibaba Group Holding Ltd Information matching method and system applied to e-commerce website
US9940641B2 (en) 2007-04-25 2018-04-10 Excalibur Ip, Llc System for serving data that matches content related to a search results page
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
US10055390B2 (en) 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
US10120929B1 (en) * 2009-12-22 2018-11-06 Amazon Technologies, Inc. Systems and methods for automatic item classification
US20180336280A1 (en) * 2017-05-17 2018-11-22 Linkedin Corporation Customized search based on user and team activities
US10152541B2 (en) * 2010-09-10 2018-12-11 Veveo, Inc. Method of and system for conducting personalized federated search and presentation of results therefrom
US10356461B2 (en) 2013-03-15 2019-07-16 adRise, Inc. Adaptive multi-device content generation based on associated internet protocol addressing
US10423638B2 (en) 2017-04-27 2019-09-24 Google Llc Cloud inference system
US10452662B2 (en) 2012-02-22 2019-10-22 Alibaba Group Holding Limited Determining search result rankings based on trust level values associated with sellers
US10489425B2 (en) * 2017-10-26 2019-11-26 Salesforce.Com, Inc. User clustering based on query history
US10489407B2 (en) * 2014-09-19 2019-11-26 Ebay Inc. Dynamic modifications of results for search interfaces
US10535005B1 (en) 2016-10-26 2020-01-14 Google Llc Providing contextual actions for mobile onscreen content
US10594763B2 (en) 2013-03-15 2020-03-17 adRise, Inc. Platform-independent content generation for thin client applications
US20200104329A1 (en) * 2018-09-28 2020-04-02 Evernote Corporation Relationship-based search
US10635709B2 (en) 2008-12-24 2020-04-28 Comcast Interactive Media, Llc Searching for segments based on an ontology
US10887421B2 (en) 2013-03-15 2021-01-05 Tubi, Inc. Relevant secondary-device content generation based on associated internet protocol addressing
US10970646B2 (en) 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
US11206263B1 (en) * 2021-01-25 2021-12-21 12traits, Inc. Systems and methods to determine content to present based on interaction information of a given user
US11216786B2 (en) * 2018-07-17 2022-01-04 Kavita Ramchandani Snyder System and method for dispatching intelligent invitations to users within a network
US11218443B2 (en) 2019-07-25 2022-01-04 Coupang Corp. Dynamic IP address categorization systems and methods
US11237696B2 (en) 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
US11250081B1 (en) * 2014-09-24 2022-02-15 Amazon Technologies, Inc. Predictive search
US11308502B2 (en) 2015-12-02 2022-04-19 Politecnico Di Torino Method for detecting web tracking services
US20220121549A1 (en) * 2020-10-16 2022-04-21 Oath Inc. Systems and methods for rendering unified and real-time user interest profiles
US20220148060A1 (en) * 2020-11-10 2022-05-12 Shopify Inc. System and method for displaying customized search results based on past behaviour
US11379532B2 (en) * 2019-10-17 2022-07-05 The Toronto-Dominion Bank System and method for generating a recommendation
US20220300519A1 (en) * 2019-08-29 2022-09-22 Ntt Docomo, Inc. Re-ranking device
US11458407B2 (en) 2020-06-05 2022-10-04 Solsten, Inc. Systems and methods to correlate user behavior patterns within an online game with psychological attributes of users
US11500930B2 (en) * 2019-05-28 2022-11-15 Slack Technologies, Llc Method, apparatus and computer program product for generating tiered search index fields in a group-based communication platform
US11501006B2 (en) 2018-03-05 2022-11-15 Hyundai Motor Company Leveraging natural language processing to refine access control within collections
US11507576B2 (en) * 2020-05-20 2022-11-22 T-Mobile Usa, Inc. Method and system to efficiently analyze and improve database queries
US11531668B2 (en) 2008-12-29 2022-12-20 Comcast Interactive Media, Llc Merging of multiple data sets
US11727424B2 (en) 2021-06-04 2023-08-15 Solsten, Inc. Systems and methods to correlate user behavior patterns within digital application environments with psychological attributes of users to determine adaptations to the digital application environments
US11841912B2 (en) 2011-05-01 2023-12-12 Twittle Search Limited Liability Company System for applying natural language processing and inputs of a group of users to infer commonly desired search results
US11962817B2 (en) 2022-02-21 2024-04-16 Tubi, Inc. Machine learning techniques for advanced frequency management

Families Citing this family (129)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7434219B2 (en) 2000-01-31 2008-10-07 Commvault Systems, Inc. Storage of application specific profiles correlating to document versions
JP2005505039A (en) 2001-09-28 2005-02-17 コムヴォールト・システムズ・インコーポレーテッド Apparatus and method for archiving objects in an information storage device
US7565630B1 (en) 2004-06-15 2009-07-21 Google Inc. Customization of search results for search queries received from third party sites
US20090228447A1 (en) * 2004-07-01 2009-09-10 Creekbaum William J System, method, and solfware application for enabling a user to search an external domain within a visual mapping interface
US9047388B2 (en) 2004-07-01 2015-06-02 Mindjet Llc System, method, and software application for displaying data from a web service in a visual map
GB0506618D0 (en) * 2005-04-01 2005-05-11 Wine Science Ltd A method of supplying information articles at a website and system for supplying such articles
US7925649B2 (en) * 2005-12-30 2011-04-12 Google Inc. Method, system, and graphical user interface for alerting a computer user to new results for a prior search
US7631263B2 (en) * 2006-06-02 2009-12-08 Scenera Technologies, Llc Methods, systems, and computer program products for characterizing links to resources not activated
US9443022B2 (en) 2006-06-05 2016-09-13 Google Inc. Method, system, and graphical user interface for providing personalized recommendations of popular search queries
US8103703B1 (en) 2006-06-29 2012-01-24 Mindjet Llc System and method for providing content-specific topics in a mind mapping system
US7577718B2 (en) * 2006-07-31 2009-08-18 Microsoft Corporation Adaptive dissemination of personalized and contextually relevant information
US7849079B2 (en) * 2006-07-31 2010-12-07 Microsoft Corporation Temporal ranking of search results
US7685199B2 (en) * 2006-07-31 2010-03-23 Microsoft Corporation Presenting information related to topics extracted from event classes
US7734669B2 (en) * 2006-12-22 2010-06-08 Commvault Systems, Inc. Managing copies of data
US8892780B2 (en) 2007-03-08 2014-11-18 Oracle International Corporation Management of shared storage I/O resources
US7984068B2 (en) * 2007-05-25 2011-07-19 Google Inc. Providing profile information to partner content providers
US7818320B2 (en) * 2007-05-31 2010-10-19 Yahoo! Inc. Enhanced search results based on user feedback relating to search result abstracts
US8505046B2 (en) * 2007-08-17 2013-08-06 At&T Intellectual Property I, L.P. Targeted online, telephone and television advertisements based on cross-service subscriber profiling
US20090089246A1 (en) * 2007-09-28 2009-04-02 Yahoo! Inc. System and method for history clustering
US20090157616A1 (en) * 2007-12-12 2009-06-18 Richard Barber System and method for enabling a user to search and retrieve individual topics in a visual mapping system
US20090157801A1 (en) * 2007-12-12 2009-06-18 Richard Barber System and method for integrating external system data in a visual mapping system
US8161396B2 (en) * 2007-12-20 2012-04-17 Mindjet Llc System and method for facilitating collaboration and communication in a visual mapping system by tracking user presence in individual topics
US20090210391A1 (en) * 2008-02-14 2009-08-20 Hall Stephen G Method and system for automated search for, and retrieval and distribution of, information
US8510262B2 (en) * 2008-05-21 2013-08-13 Microsoft Corporation Promoting websites based on location
US8769048B2 (en) 2008-06-18 2014-07-01 Commvault Systems, Inc. Data protection scheduling, such as providing a flexible backup window in a data protection system
US8352954B2 (en) 2008-06-19 2013-01-08 Commvault Systems, Inc. Data storage resource allocation by employing dynamic methods and blacklisting resource request pools
US9128883B2 (en) 2008-06-19 2015-09-08 Commvault Systems, Inc Data storage resource allocation by performing abbreviated resource checks based on relative chances of failure of the data storage resources to determine whether data storage requests would fail
US9183323B1 (en) 2008-06-27 2015-11-10 Google Inc. Suggesting alternative query phrases in query results
US8301437B2 (en) * 2008-07-24 2012-10-30 Yahoo! Inc. Tokenization platform
US8725688B2 (en) 2008-09-05 2014-05-13 Commvault Systems, Inc. Image level copy or restore, such as image level restore without knowledge of data object metadata
US20100070474A1 (en) 2008-09-12 2010-03-18 Lad Kamleshkumar K Transferring or migrating portions of data objects, such as block-level data migration or chunk-based data migration
US20100070891A1 (en) * 2008-09-18 2010-03-18 Creekbaum William J System and method for configuring an application via a visual map interface
US9772798B2 (en) * 2008-09-19 2017-09-26 Oracle International Corporation Method and system for implementing workload management by monitoring disk utilizations
EP2350875A1 (en) 2008-09-19 2011-08-03 Oracle International Corporation Storage-side storage request management
US8868831B2 (en) 2009-09-14 2014-10-21 Oracle International Corporation Caching data between a database server and a storage system
US9064021B2 (en) * 2008-10-02 2015-06-23 Liveramp, Inc. Data source attribution system
US9396455B2 (en) * 2008-11-10 2016-07-19 Mindjet Llc System, method, and software application for enabling a user to view and interact with a visual map in an external application
US10380634B2 (en) * 2008-11-22 2019-08-13 Callidus Software, Inc. Intent inference of website visitors and sales leads package generation
US8595228B1 (en) * 2009-01-09 2013-11-26 Google Inc. Preferred sites
US8352319B2 (en) * 2009-03-10 2013-01-08 Google Inc. Generating user profiles
US20100318538A1 (en) * 2009-06-12 2010-12-16 Google Inc. Predictive searching and associated cache management
US8392267B1 (en) 2009-06-30 2013-03-05 Mindjet Llc System, method, and software application for dynamically generating a link to an online procurement site within a software application
US9213776B1 (en) 2009-07-17 2015-12-15 Open Invention Network, Llc Method and system for searching network resources to locate content
US20110015921A1 (en) * 2009-07-17 2011-01-20 Minerva Advisory Services, Llc System and method for using lingual hierarchy, connotation and weight of authority
US20110035375A1 (en) * 2009-08-06 2011-02-10 Ron Bekkerman Building user profiles for website personalization
US8620929B2 (en) * 2009-08-14 2013-12-31 Google Inc. Context based resource relevance
KR20110031087A (en) * 2009-09-18 2011-03-24 인터내셔널 비지네스 머신즈 코포레이션 Link clouds and user/community-driven dynamic interlinking of resources
US8990083B1 (en) 2009-09-30 2015-03-24 Cisco Technology, Inc. System and method for generating personal vocabulary from network data
US9201965B1 (en) 2009-09-30 2015-12-01 Cisco Technology, Inc. System and method for providing speech recognition using personal vocabulary in a network environment
US8204892B2 (en) * 2009-10-26 2012-06-19 Oracle International Corporation Performance boost for sort operations
US8849785B1 (en) * 2010-01-15 2014-09-30 Google Inc. Search query reformulation using result term occurrence count
US8732171B2 (en) * 2010-01-28 2014-05-20 Microsoft Corporation Providing query suggestions
US8620849B2 (en) * 2010-03-10 2013-12-31 Lockheed Martin Corporation Systems and methods for facilitating open source intelligence gathering
US9645996B1 (en) 2010-03-25 2017-05-09 Open Invention Network Llc Method and device for automatically generating a tag from a conversation in a social networking website
US8935274B1 (en) 2010-05-12 2015-01-13 Cisco Technology, Inc System and method for deriving user expertise based on data propagating in a network environment
EP2397952A1 (en) * 2010-06-15 2011-12-21 Axel Springer Digital TV Guide GmbH Profile based content retrieval for recommender systems
CN101957847B (en) * 2010-09-21 2011-11-23 百度在线网络技术(北京)有限公司 Searching system and implementation method thereof
US8364672B2 (en) 2010-11-23 2013-01-29 Microsoft Corporation Concept disambiguation via search engine search results
US8332426B2 (en) * 2010-11-23 2012-12-11 Microsoft Corporation Indentifying referring expressions for concepts
US20120158712A1 (en) * 2010-12-16 2012-06-21 Sushrut Karanjkar Inferring Geographic Locations for Entities Appearing in Search Queries
US8667169B2 (en) 2010-12-17 2014-03-04 Cisco Technology, Inc. System and method for providing argument maps based on activity in a network environment
US9465795B2 (en) 2010-12-17 2016-10-11 Cisco Technology, Inc. System and method for providing feeds based on activity in a network environment
US8972412B1 (en) * 2011-01-31 2015-03-03 Go Daddy Operating Company, LLC Predicting improvement in website search engine rankings based upon website linking relationships
US8370365B1 (en) 2011-01-31 2013-02-05 Go Daddy Operating Company, LLC Tools for predicting improvement in website search engine rankings based upon website linking relationships
US8849762B2 (en) 2011-03-31 2014-09-30 Commvault Systems, Inc. Restoring computing environments, such as autorecovery of file systems at certain points in time
US8620136B1 (en) 2011-04-30 2013-12-31 Cisco Technology, Inc. System and method for media intelligent recording in a network environment
US8909624B2 (en) 2011-05-31 2014-12-09 Cisco Technology, Inc. System and method for evaluating results of a search query in a network environment
US10346856B1 (en) * 2011-07-08 2019-07-09 Microsoft Technology Licensing, Llc Personality aggregation and web browsing
US8886797B2 (en) * 2011-07-14 2014-11-11 Cisco Technology, Inc. System and method for deriving user expertise based on data propagating in a network environment
US8751591B2 (en) 2011-09-30 2014-06-10 Blackberry Limited Systems and methods of adjusting contact importance for a computing device
CN103186619B (en) * 2011-12-30 2018-08-07 北京百度网讯科技有限公司 A kind of method and apparatus of the evaluation search result based on non click operation information
US8930339B2 (en) * 2012-01-03 2015-01-06 Microsoft Corporation Search engine performance evaluation using a task-based assessment metric
DE102012100470A1 (en) * 2012-01-20 2013-07-25 Nektoon Ag Method of compiling documents
US8831403B2 (en) 2012-02-01 2014-09-09 Cisco Technology, Inc. System and method for creating customized on-demand video reports in a network environment
US10147146B2 (en) * 2012-03-14 2018-12-04 Disney Enterprises, Inc. Tailoring social elements of virtual environments
US10157184B2 (en) 2012-03-30 2018-12-18 Commvault Systems, Inc. Data previewing before recalling large data files
US20130297590A1 (en) * 2012-04-09 2013-11-07 Eli Zukovsky Detecting and presenting information to a user based on relevancy to the user's personal interest
US20130290458A1 (en) * 2012-04-30 2013-10-31 Margaret E. Morris Contextual peer based guidance systems and methods
US20130332521A1 (en) * 2012-06-07 2013-12-12 United Video Properties, Inc. Systems and methods for compiling media information based on privacy and reliability metrics
US8938438B2 (en) 2012-10-11 2015-01-20 Go Daddy Operating Company, LLC Optimizing search engine ranking by recommending content including frequently searched questions
DE102013017085A1 (en) * 2012-10-15 2014-04-17 Wixpress Ltd. System for deep linking and search engine support for websites integrating a third-party application and components
US9779140B2 (en) * 2012-11-16 2017-10-03 Google Inc. Ranking signals for sparse corpora
US9633216B2 (en) 2012-12-27 2017-04-25 Commvault Systems, Inc. Application of information management policies based on operation with a geographic entity
US9459968B2 (en) 2013-03-11 2016-10-04 Commvault Systems, Inc. Single index to query multiple backup formats
US10152500B2 (en) 2013-03-14 2018-12-11 Oracle International Corporation Read mostly instances
US9588675B2 (en) 2013-03-15 2017-03-07 Google Inc. Document scale and position optimization
US9405803B2 (en) 2013-04-23 2016-08-02 Google Inc. Ranking signals in mixed corpora environments
US9767178B2 (en) 2013-10-30 2017-09-19 Oracle International Corporation Multi-instance redo apply
US9465878B2 (en) 2014-01-17 2016-10-11 Go Daddy Operating Company, LLC System and method for depicting backlink metrics for a website
US9852208B2 (en) * 2014-02-25 2017-12-26 International Business Machines Corporation Discovering communities and expertise of users using semantic analysis of resource access logs
US9798596B2 (en) 2014-02-27 2017-10-24 Commvault Systems, Inc. Automatic alert escalation for an information management system
US9648100B2 (en) 2014-03-05 2017-05-09 Commvault Systems, Inc. Cross-system storage management for transferring data across autonomous information management systems
US9823978B2 (en) 2014-04-16 2017-11-21 Commvault Systems, Inc. User-level quota management of data objects stored in information management systems
US9740574B2 (en) 2014-05-09 2017-08-22 Commvault Systems, Inc. Load balancing across multiple data paths
US11249858B2 (en) 2014-08-06 2022-02-15 Commvault Systems, Inc. Point-in-time backups of a production application made accessible over fibre channel and/or ISCSI as data sources to a remote application by representing the backups as pseudo-disks operating apart from the production application and its host
US9852026B2 (en) 2014-08-06 2017-12-26 Commvault Systems, Inc. Efficient application recovery in an information management system based on a pseudo-storage-device driver
US9444811B2 (en) 2014-10-21 2016-09-13 Commvault Systems, Inc. Using an enhanced data agent to restore backed up data across autonomous storage management systems
US9922117B2 (en) 2014-10-31 2018-03-20 Bank Of America Corporation Contextual search input from advisors
US9940409B2 (en) 2014-10-31 2018-04-10 Bank Of America Corporation Contextual search tool
US9785304B2 (en) 2014-10-31 2017-10-10 Bank Of America Corporation Linking customer profiles with household profiles
CN104361092A (en) * 2014-11-18 2015-02-18 百度在线网络技术(北京)有限公司 Searching method and device
CN104462357B (en) * 2014-12-08 2017-11-17 百度在线网络技术(北京)有限公司 The method and apparatus for realizing personalized search
US9766825B2 (en) 2015-07-22 2017-09-19 Commvault Systems, Inc. Browse and restore for block-level backups
US10061817B1 (en) 2015-07-29 2018-08-28 Google Llc Social ranking for apps
US10678788B2 (en) 2015-10-22 2020-06-09 Oracle International Corporation Columnar caching in tiered storage
US10747752B2 (en) 2015-10-23 2020-08-18 Oracle International Corporation Space management for transactional consistency of in-memory objects on a standby database
US11657037B2 (en) 2015-10-23 2023-05-23 Oracle International Corporation Query execution against an in-memory standby database
US10296368B2 (en) 2016-03-09 2019-05-21 Commvault Systems, Inc. Hypervisor-independent block-level live browse for access to backed up virtual machine (VM) data and hypervisor-free file-level recovery (block-level pseudo-mount)
KR102604450B1 (en) * 2016-08-03 2023-11-22 삼성전자주식회사 Method and apparatus for storing log of access based on kewords
US10698771B2 (en) 2016-09-15 2020-06-30 Oracle International Corporation Zero-data-loss with asynchronous redo shipping to a standby database
US10891291B2 (en) 2016-10-31 2021-01-12 Oracle International Corporation Facilitating operations on pluggable databases using separate logical timestamp services
US20180137179A1 (en) * 2016-11-15 2018-05-17 Cofame, Inc. Systems and methods for digital presence profiler service
US11475006B2 (en) 2016-12-02 2022-10-18 Oracle International Corporation Query and change propagation scheduling for heterogeneous database systems
US10838821B2 (en) 2017-02-08 2020-11-17 Commvault Systems, Inc. Migrating content and metadata from a backup system
US10740193B2 (en) 2017-02-27 2020-08-11 Commvault Systems, Inc. Hypervisor-independent reference copies of virtual machine payload data based on block-level pseudo-mount
US10891069B2 (en) 2017-03-27 2021-01-12 Commvault Systems, Inc. Creating local copies of data stored in online data repositories
US10776329B2 (en) 2017-03-28 2020-09-15 Commvault Systems, Inc. Migration of a database management system to cloud storage
US11074140B2 (en) 2017-03-29 2021-07-27 Commvault Systems, Inc. Live browsing of granular mailbox data
US10691722B2 (en) 2017-05-31 2020-06-23 Oracle International Corporation Consistent query execution for big data analytics in a hybrid database
US10664352B2 (en) 2017-06-14 2020-05-26 Commvault Systems, Inc. Live browsing of backed up data residing on cloned disks
US10795927B2 (en) 2018-02-05 2020-10-06 Commvault Systems, Inc. On-demand metadata extraction of clinical image data
US11023551B2 (en) * 2018-02-23 2021-06-01 Accenture Global Solutions Limited Document processing based on proxy logs
CN110232281B (en) * 2018-03-05 2023-07-04 现代自动车株式会社 Improved access control within a collection using natural language processing
US10789387B2 (en) 2018-03-13 2020-09-29 Commvault Systems, Inc. Graphical representation of an information management system
US11170002B2 (en) 2018-10-19 2021-11-09 Oracle International Corporation Integrating Kafka data-in-motion with data-at-rest tables
US10860443B2 (en) 2018-12-10 2020-12-08 Commvault Systems, Inc. Evaluation and reporting of recovery readiness in a data storage management system
US11308034B2 (en) 2019-06-27 2022-04-19 Commvault Systems, Inc. Continuously run log backup with minimal configuration and resource usage from the source machine
US11061980B2 (en) * 2019-09-18 2021-07-13 Capital One Services, Llc System and method for integrating content into webpages
WO2023019089A1 (en) * 2021-08-11 2023-02-16 Google Llc User interfaces for surfacing web browser history data

Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5790426A (en) * 1996-04-30 1998-08-04 Athenium L.L.C. Automated collaborative filtering system
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US20010010048A1 (en) * 2000-01-26 2001-07-26 Nec Corporation Data structure for search
US6289353B1 (en) * 1997-09-24 2001-09-11 Webmd Corporation Intelligent query system for automatically indexing in a database and automatically categorizing users
US6314420B1 (en) * 1996-04-04 2001-11-06 Lycos, Inc. Collaborative/adaptive search engine
US20020016786A1 (en) * 1999-05-05 2002-02-07 Pitkow James B. System and method for searching and recommending objects from a categorically organized information repository
US20020059201A1 (en) * 2000-05-09 2002-05-16 Work James Duncan Method and apparatus for internet-based human network brokering
US20030037041A1 (en) * 1994-11-29 2003-02-20 Pinpoint Incorporated System for automatic determination of customized prices and promotions
US20030055831A1 (en) * 1998-03-16 2003-03-20 S.L.I. Systems, Inc. Search engine
US20030097353A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Method and apparatus for partitioning a plurality of items into groups of similar items in a recommender of such items
US20030212673A1 (en) * 2002-03-01 2003-11-13 Sundar Kadayam System and method for retrieving and organizing information from disparate computer network information sources
US6732092B2 (en) * 2001-09-28 2004-05-04 Client Dynamics, Inc. Method and system for database queries and information delivery
US6845370B2 (en) * 1998-11-12 2005-01-18 Accenture Llp Advanced information gathering for targeted activities
US20050065916A1 (en) * 2003-09-22 2005-03-24 Xianping Ge Methods and systems for improving a search ranking using location awareness
US20050071328A1 (en) * 2003-09-30 2005-03-31 Lawrence Stephen R. Personalization of web search
US20050096997A1 (en) * 2003-10-31 2005-05-05 Vivek Jain Targeting shoppers in an online shopping environment
US20050240580A1 (en) * 2003-09-30 2005-10-27 Zamir Oren E Personalization of placed content ordering in search results
US20050246391A1 (en) * 2004-04-29 2005-11-03 Gross John N System & method for monitoring web pages
US6978303B1 (en) * 1999-10-26 2005-12-20 Iontal Limited Monitoring of computer usage
US20060026147A1 (en) * 2004-07-30 2006-02-02 Cone Julian M Adaptive search engine
US20060047725A1 (en) * 2004-08-26 2006-03-02 Bramson Steven J Opt-in directory of verified individual profiles
US20060064411A1 (en) * 2004-09-22 2006-03-23 William Gross Search engine using user intent
US20080091670A1 (en) * 2006-10-11 2008-04-17 Collarity, Inc. Search phrase refinement by search term replacement
US20080147659A1 (en) * 2006-12-15 2008-06-19 Ratepoint, Inc. System and method for determining behavioral similarity between users and user data to identify groups to share user impressions of ratable objects
US20080294621A1 (en) * 2007-05-25 2008-11-27 Issar Amit Kanigsberg Recommendation systems and methods using interest correlation
US20080319971A1 (en) * 2004-07-26 2008-12-25 Anna Lynn Patterson Phrase-based personalization of searches in an information retrieval system

Family Cites Families (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724567A (en) 1994-04-25 1998-03-03 Apple Computer, Inc. System for directing relevance-ranked data objects to computer users
US5758257A (en) 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6285999B1 (en) 1997-01-10 2001-09-04 The Board Of Trustees Of The Leland Stanford Junior University Method for node ranking in a linked database
US6012051A (en) 1997-02-06 2000-01-04 America Online, Inc. Consumer profiling system with analytic decision processor
US6182068B1 (en) * 1997-08-01 2001-01-30 Ask Jeeves, Inc. Personalized search methods
US6317722B1 (en) 1998-09-18 2001-11-13 Amazon.Com, Inc. Use of electronic shopping carts to generate personal recommendations
US6338066B1 (en) 1998-09-25 2002-01-08 International Business Machines Corporation Surfaid predictor: web-based system for predicting surfer behavior
US6385619B1 (en) 1999-01-08 2002-05-07 International Business Machines Corporation Automatic user interest profile generation from structured document access information
US6907566B1 (en) 1999-04-02 2005-06-14 Overture Services, Inc. Method and system for optimum placement of advertisements on a webpage
US6327590B1 (en) 1999-05-05 2001-12-04 Xerox Corporation System and method for collaborative ranking of search results employing user and group profiles derived from document collection content analysis
US6606657B1 (en) * 1999-06-22 2003-08-12 Comverse, Ltd. System and method for processing and presenting internet usage information
AUPQ246899A0 (en) * 1999-08-26 1999-09-16 Memetrics An automated communications management agent
US6807574B1 (en) * 1999-10-22 2004-10-19 Tellme Networks, Inc. Method and apparatus for content personalization over a telephone interface
US6489968B1 (en) 1999-11-18 2002-12-03 Amazon.Com, Inc. System and method for exposing popular categories of browse tree
EP1107128A1 (en) 1999-12-03 2001-06-13 Hyundai Electronics Industries Co., Ltd. Apparatus and method for checking the validity of links in a computer network
US6785671B1 (en) * 1999-12-08 2004-08-31 Amazon.Com, Inc. System and method for locating web-based product offerings
US6868525B1 (en) 2000-02-01 2005-03-15 Alberti Anemometer Llc Computer graphic display visualization system and method
IL134893A0 (en) * 2000-03-06 2001-05-20 Joinweb Inc Method and system for locating internet users having similar navigation patterns
WO2001071525A1 (en) * 2000-03-23 2001-09-27 Tingo Inc. System and method for managing user-specific data
US20020091736A1 (en) * 2000-06-23 2002-07-11 Decis E-Direct, Inc. Component models
US6535888B1 (en) 2000-07-19 2003-03-18 Oxelis, Inc. Method and system for providing a visual search directory
US6687696B2 (en) 2000-07-26 2004-02-03 Recommind Inc. System and method for personalized search, information filtering, and for generating recommendations utilizing statistical latent class models
US6895406B2 (en) 2000-08-25 2005-05-17 Seaseer R&D, Llc Dynamic personalization method of creating personalized user profiles for searching a database of information
US6959319B1 (en) * 2000-09-11 2005-10-25 International Business Machines Corporation System and method for automatically personalizing web portals and web services based upon usage history
JP5525673B2 (en) * 2000-09-28 2014-06-18 オラクル・インターナショナル・コーポレイション Enterprise web mining system and method
JP3934325B2 (en) 2000-10-31 2007-06-20 株式会社日立製作所 Document search method, document search apparatus, and storage medium for document search program
US20020138331A1 (en) * 2001-02-05 2002-09-26 Hosea Devin F. Method and system for web page personalization
US8001118B2 (en) 2001-03-02 2011-08-16 Google Inc. Methods and apparatus for employing usage statistics in document retrieval
US7194454B2 (en) * 2001-03-12 2007-03-20 Lucent Technologies Method for organizing records of database search activity by topical relevance
US20020198882A1 (en) 2001-03-29 2002-12-26 Linden Gregory D. Content personalization based on actions performed during a current browsing session
US7165105B2 (en) * 2001-07-16 2007-01-16 Netgenesis Corporation System and method for logical view analysis and visualization of user behavior in a distributed computer network
US7207062B2 (en) * 2001-08-16 2007-04-17 Lucent Technologies Inc Method and apparatus for protecting web sites from distributed denial-of-service attacks
US8095589B2 (en) * 2002-03-07 2012-01-10 Compete, Inc. Clickstream analysis methods and systems
US7203909B1 (en) * 2002-04-04 2007-04-10 Microsoft Corporation System and methods for constructing personalized context-sensitive portal pages or views by analyzing patterns of users' information access activities
US6917938B2 (en) * 2002-05-06 2005-07-12 Ideapivot Corporation Collaborative context information management system
US6892198B2 (en) 2002-06-14 2005-05-10 Entopia, Inc. System and method for personalized information retrieval based on user expertise
US20040044571A1 (en) 2002-08-27 2004-03-04 Bronnimann Eric Robert Method and system for providing advertising listing variance in distribution feeds over the internet to maximize revenue to the advertising distributor
US7836391B2 (en) 2003-06-10 2010-11-16 Google Inc. Document search engine including highlighting of confident results
US7363302B2 (en) 2003-06-30 2008-04-22 Googole, Inc. Promoting and/or demoting an advertisement from an advertising spot of one type to an advertising spot of another type
US7505964B2 (en) * 2003-09-12 2009-03-17 Google Inc. Methods and systems for improving a search ranking using related queries
US7610381B2 (en) * 2003-09-12 2009-10-27 Hewlett-Packard Development Company, L.P. System and method for evaluating a capacity of a streaming media server for supporting a workload
US7797316B2 (en) 2003-09-30 2010-09-14 Google Inc. Systems and methods for determining document freshness
US7346839B2 (en) 2003-09-30 2008-03-18 Google Inc. Information retrieval based on historical data
US20050108406A1 (en) * 2003-11-07 2005-05-19 Dynalab Inc. System and method for dynamically generating a customized menu page
US7240049B2 (en) * 2003-11-12 2007-07-03 Yahoo! Inc. Systems and methods for search query processing using trend analysis
US7634472B2 (en) 2003-12-01 2009-12-15 Yahoo! Inc. Click-through re-ranking of images and other data
US7885901B2 (en) * 2004-01-29 2011-02-08 Yahoo! Inc. Method and system for seeding online social network contacts
US8631001B2 (en) 2004-03-31 2014-01-14 Google Inc. Systems and methods for weighting a search query result
US20070067297A1 (en) * 2004-04-30 2007-03-22 Kublickis Peter J System and methods for a micropayment-enabled marketplace with permission-based, self-service, precision-targeted delivery of advertising, entertainment and informational content and relationship marketing to anonymous internet users
US7562068B2 (en) 2004-06-30 2009-07-14 Microsoft Corporation System and method for ranking search results based on tracked user preferences
US7716219B2 (en) 2004-07-08 2010-05-11 Yahoo ! Inc. Database search system and method of determining a value of a keyword in a search
US8255413B2 (en) * 2004-08-19 2012-08-28 Carhamm Ltd., Llc Method and apparatus for responding to request for information-personalization
US20060074883A1 (en) 2004-10-05 2006-04-06 Microsoft Corporation Systems, methods, and interfaces for providing personalized search and information access
US20060112079A1 (en) * 2004-11-23 2006-05-25 International Business Machines Corporation System and method for generating personalized web pages
US20060161553A1 (en) * 2005-01-19 2006-07-20 Tiny Engine, Inc. Systems and methods for providing user interaction based profiles
US8812473B1 (en) * 2005-06-16 2014-08-19 Gere Dev. Applications, LLC Analysis and reporting of collected search activity data over multiple search engines
US20070005646A1 (en) * 2005-06-30 2007-01-04 Microsoft Corporation Analysis of topic dynamics of web search
US7831582B1 (en) * 2005-08-23 2010-11-09 Amazon Technologies, Inc. Method and system for associating keywords with online content sources
US7580930B2 (en) * 2005-12-27 2009-08-25 Baynote, Inc. Method and apparatus for predicting destinations in a navigation context based upon observed usage patterns
US20070260597A1 (en) 2006-05-02 2007-11-08 Mark Cramer Dynamic search engine results employing user behavior
US7617208B2 (en) * 2006-09-12 2009-11-10 Yahoo! Inc. User query data mining and related techniques

Patent Citations (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030037041A1 (en) * 1994-11-29 2003-02-20 Pinpoint Incorporated System for automatic determination of customized prices and promotions
US6092049A (en) * 1995-06-30 2000-07-18 Microsoft Corporation Method and apparatus for efficiently recommending items using automated collaborative filtering and feature-guided automated collaborative filtering
US6314420B1 (en) * 1996-04-04 2001-11-06 Lycos, Inc. Collaborative/adaptive search engine
US5790426A (en) * 1996-04-30 1998-08-04 Athenium L.L.C. Automated collaborative filtering system
US6289353B1 (en) * 1997-09-24 2001-09-11 Webmd Corporation Intelligent query system for automatically indexing in a database and automatically categorizing users
US20030055831A1 (en) * 1998-03-16 2003-03-20 S.L.I. Systems, Inc. Search engine
US6845370B2 (en) * 1998-11-12 2005-01-18 Accenture Llp Advanced information gathering for targeted activities
US20020016786A1 (en) * 1999-05-05 2002-02-07 Pitkow James B. System and method for searching and recommending objects from a categorically organized information repository
US6978303B1 (en) * 1999-10-26 2005-12-20 Iontal Limited Monitoring of computer usage
US20010010048A1 (en) * 2000-01-26 2001-07-26 Nec Corporation Data structure for search
US20020059201A1 (en) * 2000-05-09 2002-05-16 Work James Duncan Method and apparatus for internet-based human network brokering
US6732092B2 (en) * 2001-09-28 2004-05-04 Client Dynamics, Inc. Method and system for database queries and information delivery
US20030097353A1 (en) * 2001-11-13 2003-05-22 Koninklijke Philips Electronics N.V. Method and apparatus for partitioning a plurality of items into groups of similar items in a recommender of such items
US20030212673A1 (en) * 2002-03-01 2003-11-13 Sundar Kadayam System and method for retrieving and organizing information from disparate computer network information sources
US20050065916A1 (en) * 2003-09-22 2005-03-24 Xianping Ge Methods and systems for improving a search ranking using location awareness
US20050071328A1 (en) * 2003-09-30 2005-03-31 Lawrence Stephen R. Personalization of web search
US20050240580A1 (en) * 2003-09-30 2005-10-27 Zamir Oren E Personalization of placed content ordering in search results
US20050096997A1 (en) * 2003-10-31 2005-05-05 Vivek Jain Targeting shoppers in an online shopping environment
US20050246391A1 (en) * 2004-04-29 2005-11-03 Gross John N System & method for monitoring web pages
US20080319971A1 (en) * 2004-07-26 2008-12-25 Anna Lynn Patterson Phrase-based personalization of searches in an information retrieval system
US20060026147A1 (en) * 2004-07-30 2006-02-02 Cone Julian M Adaptive search engine
US20060047725A1 (en) * 2004-08-26 2006-03-02 Bramson Steven J Opt-in directory of verified individual profiles
US20060064411A1 (en) * 2004-09-22 2006-03-23 William Gross Search engine using user intent
US20080091670A1 (en) * 2006-10-11 2008-04-17 Collarity, Inc. Search phrase refinement by search term replacement
US20080147659A1 (en) * 2006-12-15 2008-06-19 Ratepoint, Inc. System and method for determining behavioral similarity between users and user data to identify groups to share user impressions of ratable objects
US20080294621A1 (en) * 2007-05-25 2008-11-27 Issar Amit Kanigsberg Recommendation systems and methods using interest correlation

Cited By (284)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8131741B2 (en) 2000-02-25 2012-03-06 Novell Intellectual Property Holdings, Inc. Construction, manipulation, and comparison of a multi-dimensional semantic space
US20080052283A1 (en) * 2000-02-25 2008-02-28 Novell, Inc. Construction, manipulation, and comparison of a multi-dimensional semantic space
US20090234718A1 (en) * 2000-09-05 2009-09-17 Novell, Inc. Predictive service systems using emotion detection
US20100034745A1 (en) * 2005-05-03 2010-02-11 Neuera Pharmaceuticals, Inc. Method for Reducing Levels of Disease Associated Proteins
US20150081691A1 (en) * 2006-08-25 2015-03-19 Surf Canyon Incorporated Adaptive user interface for real-time search relevance feedback
US9418122B2 (en) * 2006-08-25 2016-08-16 Surf Canyon Incorporated Adaptive user interface for real-time search relevance feedback
US8712382B2 (en) 2006-10-27 2014-04-29 Apple Inc. Method and device for managing subscriber connection
US20100003963A1 (en) * 2006-10-27 2010-01-07 Cvon Innovations Ltd Method and device for managing subscriber connection
US20100274661A1 (en) * 2006-11-01 2010-10-28 Cvon Innovations Ltd Optimization of advertising campaigns on mobile networks
US10229166B1 (en) 2006-11-02 2019-03-12 Google Llc Modifying search result ranking based on implicit user feedback
US11816114B1 (en) 2006-11-02 2023-11-14 Google Llc Modifying search result ranking based on implicit user feedback
US11188544B1 (en) 2006-11-02 2021-11-30 Google Llc Modifying search result ranking based on implicit user feedback
US9811566B1 (en) 2006-11-02 2017-11-07 Google Inc. Modifying search result ranking based on implicit user feedback
US8737952B2 (en) 2007-01-09 2014-05-27 Apple Inc. Advertisement scheduling
US9792366B2 (en) 2007-02-28 2017-10-17 Oath Inc. Content recommendation using third party profiles
US20140108954A1 (en) * 2007-02-28 2014-04-17 Aol Inc. Peer-to-peer access of personalized profiles using content intermediary
US9141972B2 (en) * 2007-02-28 2015-09-22 Aol Inc. Peer-to-peer access of personalized profiles using content intermediary
US9159082B2 (en) 2007-02-28 2015-10-13 Citrix Systems, Inc. Active and passive personalization techniques
US20080209349A1 (en) * 2007-02-28 2008-08-28 Aol Llc Personalization techniques using image clouds
US10706112B1 (en) 2007-02-28 2020-07-07 Oath Inc. Personalization techniques using image clouds
US20080209351A1 (en) * 2007-02-28 2008-08-28 Aol Llc User profile snapshots
US20150379146A1 (en) * 2007-02-28 2015-12-31 Aol Inc. Peer-to-peer access of personalized profiles using content intermediary
US8612869B2 (en) * 2007-02-28 2013-12-17 Aol Inc. Peer-to-peer access of personalized profiles using content intermediary
US9405830B2 (en) 2007-02-28 2016-08-02 Aol Inc. Personalization techniques using image clouds
US8082511B2 (en) 2007-02-28 2011-12-20 Aol Inc. Active and passive personalization techniques
US20080209343A1 (en) * 2007-02-28 2008-08-28 Aol Llc Content recommendation using third party profiles
US9552424B2 (en) * 2007-02-28 2017-01-24 Aol Inc. Peer-to-peer access of personalized profiles using content intermediary
US20080209340A1 (en) * 2007-02-28 2008-08-28 Aol Llc Peer-to-peer access of personalized profiles using content intermediary
US8296660B2 (en) * 2007-02-28 2012-10-23 Aol Inc. Content recommendation using third party profiles
US9697288B2 (en) 2007-02-28 2017-07-04 Citrix Systems, Inc. Active and passive personalization techniques
US9715543B2 (en) 2007-02-28 2017-07-25 Aol Inc. Personalization techniques using image clouds
US20080209350A1 (en) * 2007-02-28 2008-08-28 Aol Llc Active and passive personalization techniques
US11403351B2 (en) 2007-02-28 2022-08-02 Yahoo Assets Llc Personalization techniques using image clouds
US9135641B2 (en) 2007-02-28 2015-09-15 Aol Inc. Content recommendation using third party profiles
US8762859B2 (en) 2007-02-28 2014-06-24 Aol Inc. Content recommendation using third party profiles
US20090077033A1 (en) * 2007-04-03 2009-03-19 Mcgary Faith System and method for customized search engine and search result optimization
US20100100536A1 (en) * 2007-04-10 2010-04-22 Robin Daniel Chamberlain System and Method for Evaluating Network Content
US20150294020A1 (en) * 2007-04-10 2015-10-15 Robin Daniel Chamberlain System and/or method for evaluating network content
US20080270228A1 (en) * 2007-04-24 2008-10-30 Yahoo! Inc. System for displaying advertisements associated with search results
US9940641B2 (en) 2007-04-25 2018-04-10 Excalibur Ip, Llc System for serving data that matches content related to a search results page
US20080288310A1 (en) * 2007-05-16 2008-11-20 Cvon Innovation Services Oy Methodologies and systems for mobile marketing and advertising
US8595851B2 (en) 2007-05-22 2013-11-26 Apple Inc. Message delivery management method and system
US8935718B2 (en) 2007-05-22 2015-01-13 Apple Inc. Advertising management method and system
US20080295139A1 (en) * 2007-05-22 2008-11-27 Cvon Innovations Ltd. Message delivery management method and system
US20080313146A1 (en) * 2007-06-15 2008-12-18 Microsoft Corporation Content search service, finding content, and prefetching for thin client
US20120041957A1 (en) * 2007-07-18 2012-02-16 Hsu Windsor W Efficiently indexing and searching similar data
US8898138B2 (en) * 2007-07-18 2014-11-25 Emc Corporation Efficiently indexing and searching similar data
US8478240B2 (en) 2007-09-05 2013-07-02 Apple Inc. Systems, methods, network elements and applications for modifying messages
US20090094187A1 (en) * 2007-10-08 2009-04-09 Sony Computer Entertainment America Inc. Evaluating appropriateness of content
US8965888B2 (en) * 2007-10-08 2015-02-24 Sony Computer Entertainment America Llc Evaluating appropriateness of content
US8719091B2 (en) 2007-10-15 2014-05-06 Apple Inc. System, method and computer program for determining tags to insert in communications
US20090125511A1 (en) * 2007-11-13 2009-05-14 Ankesh Kumar Page ranking system employing user sharing data
US8626823B2 (en) * 2007-11-13 2014-01-07 Google Inc. Page ranking system employing user sharing data
US20090132366A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Recognizing and crediting offline realization of online behavior
US20090132365A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation Search, advertising and social networking applications and services
US20090132395A1 (en) * 2007-11-15 2009-05-21 Microsoft Corporation User profiling in a transaction and advertising electronic commerce platform
US20090144305A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Dependency management with atomic decay
US9621634B2 (en) * 2007-11-29 2017-04-11 Red Hat, Inc. Dependency management with atomic decay
US8464270B2 (en) * 2007-11-29 2013-06-11 Red Hat, Inc. Dependency management with atomic decay
US20130275487A1 (en) * 2007-11-29 2013-10-17 Red Hat, Inc. Dependency management with atomic decay
US10027563B2 (en) 2007-11-30 2018-07-17 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US9866455B2 (en) 2007-11-30 2018-01-09 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US7984035B2 (en) * 2007-12-28 2011-07-19 Microsoft Corporation Context-based document search
US20090171938A1 (en) * 2007-12-28 2009-07-02 Microsoft Corporation Context-based document search
US7797314B2 (en) * 2007-12-31 2010-09-14 International Business Machines Corporation Adaptive searching
US20090171941A1 (en) * 2007-12-31 2009-07-02 Edith Helen Stern Adaptive searching
US20110035388A1 (en) * 2008-01-02 2011-02-10 Samsung Electronics Co., Ltd. Method and apparatus for recommending information using a hybrid algorithm
US20090177645A1 (en) * 2008-01-09 2009-07-09 Heck Larry P Adapting a context-independent relevance function for identifying relevant search results
US8775416B2 (en) * 2008-01-09 2014-07-08 Yahoo!Inc. Adapting a context-independent relevance function for identifying relevant search results
US20090204599A1 (en) * 2008-02-13 2009-08-13 Microsoft Corporation Using related users data to enhance web search
US8244721B2 (en) 2008-02-13 2012-08-14 Microsoft Corporation Using related users data to enhance web search
EP2105846A1 (en) * 2008-03-28 2009-09-30 Sony Corporation Method of recommending content items
US8751481B2 (en) * 2008-04-16 2014-06-10 Iac Search & Media, Inc. Adaptive multi-channel content selection with behavior-aware query analysis
US20090265325A1 (en) * 2008-04-16 2009-10-22 Iac Search & Media, Inc. Adaptive multi-channel content selection with behavior-aware query analysis
US20090278858A1 (en) * 2008-05-12 2009-11-12 Canon Kabushiki Kaisha Information processing apparatus, data processing method, and computer-readable recording medium storing program
US8749577B2 (en) * 2008-05-12 2014-06-10 Canon Kabushiki Kaisha Information processing apparatus, data processing method, and computer-readable recording medium storing program
US20090292691A1 (en) * 2008-05-21 2009-11-26 Sungkyunkwan University Foundation For Corporate Collaboration System and Method for Building Multi-Concept Network Based on User's Web Usage Data
US20100011021A1 (en) * 2008-07-11 2010-01-14 Satyam Computer Services Limited Of Mayfair Center System and method for context map generation
US8538958B2 (en) * 2008-07-11 2013-09-17 Satyam Computer Services Limited Of Mayfair Centre System and method for context map generation
US20100076786A1 (en) * 2008-08-06 2010-03-25 H.Lee Moffitt Cancer Center And Research Institute, Inc. Computer System and Computer-Implemented Method for Providing Personalized Health Information for Multiple Patients and Caregivers
US9996630B2 (en) 2008-08-27 2018-06-12 Robin Daniel Chamberlain System and/or method for linking network content
US20110238646A1 (en) * 2008-08-27 2011-09-29 Robin Daniel Chamberlain System and/or method for linking network content
US9626448B2 (en) 2008-08-27 2017-04-18 Robin Daniel Chamberlain System and/or method for linking network content
US9177322B2 (en) 2008-08-27 2015-11-03 Robin Daniel Chamberlain System and/or method for linking network content
US20100082434A1 (en) * 2008-09-29 2010-04-01 Yahoo! Inc. Personalized search results to multiple people
US8645837B2 (en) 2008-11-26 2014-02-04 Red Hat, Inc. Graphical user interface for managing services in a distributed computing system
US11468109B2 (en) 2008-12-24 2022-10-11 Comcast Interactive Media, Llc Searching for segments based on an ontology
US10635709B2 (en) 2008-12-24 2020-04-28 Comcast Interactive Media, Llc Searching for segments based on an ontology
US11531668B2 (en) 2008-12-29 2022-12-20 Comcast Interactive Media, Llc Merging of multiple data sets
US8301622B2 (en) 2008-12-30 2012-10-30 Novell, Inc. Identity analysis and correlation
US20100169315A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Attribution analysis and correlation
US8386475B2 (en) * 2008-12-30 2013-02-26 Novell, Inc. Attribution analysis and correlation
US20100169337A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Identity analysis and correlation
US20100169314A1 (en) * 2008-12-30 2010-07-01 Novell, Inc. Content analysis and correlation
US8296297B2 (en) 2008-12-30 2012-10-23 Novell, Inc. Content analysis and correlation
WO2010078646A1 (en) * 2009-01-06 2010-07-15 Tynt Multimedia Inc. Systems and methods for detecting network resource interaction and improved search result reporting
US20100185612A1 (en) * 2009-01-13 2010-07-22 Hotchalk Inc. Method for Producing an Ordered Search List
US10025832B2 (en) * 2009-03-12 2018-07-17 Comcast Interactive Media, Llc Ranking search results
US20160378768A1 (en) * 2009-03-12 2016-12-29 Comcast Interactive Media, Llc Ranking Search Results
US20100250479A1 (en) * 2009-03-31 2010-09-30 Novell, Inc. Intellectual property discovery and mapping systems and methods
CN102859516A (en) * 2009-04-08 2013-01-02 谷歌公司 Generating improved document classification data using historical search results
US9053169B2 (en) 2009-04-29 2015-06-09 Waldeck Technology, Llc Profile construction using location-based aggregate profile information
US20120047184A1 (en) * 2009-04-29 2012-02-23 Waldeck Technology, Llc Profile construction using location-based aggregate profile information
US8554770B2 (en) * 2009-04-29 2013-10-08 Waldeck Technology, Llc Profile construction using location-based aggregate profile information
US20100287183A1 (en) * 2009-05-08 2010-11-11 Microsoft Corporation Sharing and collaboration of search findings
US8122041B2 (en) * 2009-05-08 2012-02-21 Microsoft Corporation Sharing and collaboration of search findings
US20110153425A1 (en) * 2009-06-21 2011-06-23 James Mercs Knowledge based search engine
US8979538B2 (en) 2009-06-26 2015-03-17 Microsoft Technology Licensing, Llc Using game play elements to motivate learning
US20100331075A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Using game elements to motivate learning
US20100331064A1 (en) * 2009-06-26 2010-12-30 Microsoft Corporation Using game play elements to motivate learning
US20100332570A1 (en) * 2009-06-30 2010-12-30 Verizon Patent And Licensing Inc. Methods and systems for automatically customizing an interaction experience of a user with a media content application
US8635255B2 (en) * 2009-06-30 2014-01-21 Verizon Patent And Licensing Inc. Methods and systems for automatically customizing an interaction experience of a user with a media content application
US11562737B2 (en) 2009-07-01 2023-01-24 Tivo Corporation Generating topic-specific language models
US10559301B2 (en) 2009-07-01 2020-02-11 Comcast Interactive Media, Llc Generating topic-specific language models
US9892730B2 (en) 2009-07-01 2018-02-13 Comcast Interactive Media, Llc Generating topic-specific language models
US9201973B2 (en) 2009-07-10 2015-12-01 Geodex Llc Computerized system and method for tracking the geographic relevance of website listings and providing graphics and data regarding the same
US20110010336A1 (en) * 2009-07-10 2011-01-13 Geodex, Llc Computerized System And Method For Tracking The Geographic Relevance Of Website Listings And Providing Graphics And Data Regarding The Same
US8135735B2 (en) 2009-07-10 2012-03-13 Geodex, Llc Computerized system and method for tracking the geographic relevance of website listings and providing graphics and data regarding the same
US8280869B1 (en) * 2009-07-10 2012-10-02 Teradata Us, Inc. Sharing intermediate results
WO2011025696A1 (en) * 2009-08-27 2011-03-03 Alibaba Group Holding Limited Method and system of information matching in electronic commerce website
US20120143816A1 (en) * 2009-08-27 2012-06-07 Alibaba Group Holding Limited Method and System of Information Matching in Electronic Commerce Website
US8346782B2 (en) * 2009-08-27 2013-01-01 Alibaba Group Holding Limited Method and system of information matching in electronic commerce website
US8762391B2 (en) 2009-08-27 2014-06-24 Alibaba Group Holding Limited Method and system of information matching in electronic commerce website
US9418104B1 (en) 2009-08-31 2016-08-16 Google Inc. Refining search results
US9697259B1 (en) 2009-08-31 2017-07-04 Google Inc. Refining search results
US8972391B1 (en) * 2009-10-02 2015-03-03 Google Inc. Recent interest based relevance scoring
US9390143B2 (en) * 2009-10-02 2016-07-12 Google Inc. Recent interest based relevance scoring
US20110106885A1 (en) * 2009-10-29 2011-05-05 Cisco Technology, Inc. Methods and apparatus for supporting multiple party login into a single session
US8473512B2 (en) 2009-11-06 2013-06-25 Waldeck Technology, Llc Dynamic profile slice
US8782560B2 (en) 2009-12-22 2014-07-15 Waldeck Technology, Llc Relative item of interest explorer interface
US10120929B1 (en) * 2009-12-22 2018-11-06 Amazon Technologies, Inc. Systems and methods for automatic item classification
EP2351987A3 (en) * 2010-01-27 2013-08-21 HERE Global B.V. Method of operating a navigation system to provide geographic location information
US9279695B2 (en) 2010-01-27 2016-03-08 Here Global B.V. Method of operating a navigation system to provide geographic location information
EP2351987A2 (en) 2010-01-27 2011-08-03 Navteq North America, LLC Method of operating a navigation system to provide geographic location information
US20110191171A1 (en) * 2010-02-03 2011-08-04 Yahoo! Inc. Search engine output-associated bidding in online advertising
TWI616761B (en) * 2010-03-09 2018-03-01 Alibaba Group Holding Ltd Information matching method and system applied to e-commerce website
US8930351B1 (en) * 2010-03-31 2015-01-06 Google Inc. Grouping of users
US9317613B2 (en) * 2010-04-21 2016-04-19 Yahoo! Inc. Large scale entity-specific resource classification
US20110264651A1 (en) * 2010-04-21 2011-10-27 Yahoo! Inc. Large scale entity-specific resource classification
US20110264796A1 (en) * 2010-04-23 2011-10-27 Ganz Search and navigational rating system for online social environment
US20110270850A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Prioritization of Resources based on User Activities
US9697500B2 (en) 2010-05-04 2017-07-04 Microsoft Technology Licensing, Llc Presentation of information describing user activities with regard to resources
US8898217B2 (en) 2010-05-06 2014-11-25 Apple Inc. Content delivery based on user terminal events
US20110295628A1 (en) * 2010-05-28 2011-12-01 Apple Inc. Audience targeting based on performance history of invitational content
US8812494B2 (en) 2010-05-28 2014-08-19 Apple Inc. Predicting content and context performance based on performance history of users
US8504419B2 (en) * 2010-05-28 2013-08-06 Apple Inc. Network-based targeted content delivery based on queue adjustment factors calculated using the weighted combination of overall rank, context, and covariance scores for an invitational content item
US9623119B1 (en) 2010-06-29 2017-04-18 Google Inc. Accentuating search results
US20120016873A1 (en) * 2010-07-16 2012-01-19 Michael Mathieson Method and system for ranking search results based on categories
US8515980B2 (en) * 2010-07-16 2013-08-20 Ebay Inc. Method and system for ranking search results based on categories
US20120041936A1 (en) * 2010-08-10 2012-02-16 BrightEdge Technologies Search engine optimization at scale
US9020922B2 (en) * 2010-08-10 2015-04-28 Brightedge Technologies, Inc. Search engine optimization at scale
TWI454945B (en) * 2010-08-10 2014-10-01 Brightedge Technologies Inc Search engine optimization at scale
US8640032B2 (en) 2010-08-31 2014-01-28 Apple Inc. Selection and delivery of invitational content based on prediction of user intent
US8510309B2 (en) 2010-08-31 2013-08-13 Apple Inc. Selection and delivery of invitational content based on prediction of user interest
US9183247B2 (en) 2010-08-31 2015-11-10 Apple Inc. Selection and delivery of invitational content based on prediction of user interest
US11954157B2 (en) 2010-09-10 2024-04-09 Veveo, Inc. Method of and system for conducting personalized federated search and presentation of results therefrom
US10152541B2 (en) * 2010-09-10 2018-12-11 Veveo, Inc. Method of and system for conducting personalized federated search and presentation of results therefrom
US20120166428A1 (en) * 2010-12-22 2012-06-28 Yahoo! Inc Method and system for improving quality of web content
US8996495B2 (en) * 2011-02-15 2015-03-31 Ebay Inc. Method and system for ranking search results based on category demand normalized using impressions
US9355153B2 (en) * 2011-02-15 2016-05-31 Ebay Inc. Method and system for ranking search results based on category demand normalized using impressions
US20120278318A1 (en) * 2011-05-01 2012-11-01 Reznik Alan M Systems and methods for facilitating enhancements to electronic group searches
US10572556B2 (en) 2011-05-01 2020-02-25 Alan Mark Reznik Systems and methods for facilitating enhancements to search results by removing unwanted search results
US11841912B2 (en) 2011-05-01 2023-12-12 Twittle Search Limited Liability Company System for applying natural language processing and inputs of a group of users to infer commonly desired search results
US9477574B2 (en) 2011-05-12 2016-10-25 Microsoft Technology Licensing, Llc Collection of intranet activity data
US8819009B2 (en) 2011-05-12 2014-08-26 Microsoft Corporation Automatic social graph calculation
US9552425B2 (en) * 2011-06-02 2017-01-24 Ebay Inc. System and method for determining query aspects at appropriate category levels
US20120310973A1 (en) * 2011-06-02 2012-12-06 Ebay Inc. System and method for determining query aspects at appropriate category levels
US9519702B2 (en) * 2011-06-08 2016-12-13 Ebay Inc. System and method for mining category aspect information
US20120317120A1 (en) * 2011-06-08 2012-12-13 Ebay Inc. System and method for mining category aspect information
US10459919B2 (en) * 2011-06-08 2019-10-29 Ebay Inc. System and method for mining category aspect information
US20170091275A1 (en) * 2011-06-08 2017-03-30 Ebay Inc. System and method for mining category aspect information
US9298776B2 (en) * 2011-06-08 2016-03-29 Ebay Inc. System and method for mining category aspect information
US20120330970A1 (en) * 2011-06-21 2012-12-27 Julien Bieren System and method for optimizing web searching and scheduling of service providers
US8812483B2 (en) * 2011-06-21 2014-08-19 Julien Bieren System and method for optimizing web searching and scheduling of service providers
US20130054743A1 (en) * 2011-08-25 2013-02-28 Ustream, Inc. Bidirectional communication on live multimedia broadcasts
US10122776B2 (en) * 2011-08-25 2018-11-06 International Business Machines Corporation Bidirectional communication on live multimedia broadcasts
US20160036876A1 (en) * 2011-08-25 2016-02-04 Ustream, Inc. Bidirectional communication on live multimedia broadcasts
US9185152B2 (en) * 2011-08-25 2015-11-10 Ustream, Inc. Bidirectional communication on live multimedia broadcasts
US20150154307A1 (en) * 2011-09-06 2015-06-04 Microsoft Technology Licensing, Llc Using reading levels in responding to requests
US9600585B2 (en) * 2011-09-06 2017-03-21 Microsoft Technology Licensing, Llc Using reading levels in responding to requests
US8954423B2 (en) * 2011-09-06 2015-02-10 Microsoft Technology Licensing, Llc Using reading levels in responding to requests
US20130080250A1 (en) * 2011-09-27 2013-03-28 Nhn Business Platform Corporation Group targeting system and method for internet service or advertisement
US10049369B2 (en) * 2011-09-27 2018-08-14 Naver Corporation Group targeting system and method for internet service or advertisement
US8898164B1 (en) * 2011-11-17 2014-11-25 Quantcast Corporation Consumption history privacy
US9189652B1 (en) 2011-11-17 2015-11-17 Quantcast Corporation Consumption history privacy
US9189550B2 (en) * 2011-11-17 2015-11-17 Microsoft Technology Licensing, Llc Query refinement in a browser toolbar
US20130132357A1 (en) * 2011-11-17 2013-05-23 Microsoft Corporation Query refinement in a browser toolbar
US10296763B1 (en) 2011-11-17 2019-05-21 Quantcast Corporation Consumption history privacy
US20150220614A1 (en) * 2011-12-13 2015-08-06 Nec Corporation Information collection device, system, method and program
US20130159835A1 (en) * 2011-12-15 2013-06-20 Verizon Patent And Licensing Inc. Context generation from active viewing region for context sensitive searching
US9292504B2 (en) * 2011-12-15 2016-03-22 Verizon Patent And Licensing Inc. Context generation from active viewing region for context sensitive searching
US8862597B2 (en) * 2011-12-27 2014-10-14 Sap Portals Israel Ltd Providing contextually-relevant content
US8983948B1 (en) * 2011-12-29 2015-03-17 Google Inc. Providing electronic content based on a composition of a social network
US10248732B2 (en) 2012-01-23 2019-04-02 Microsoft Technology Licensing, Llc Identifying related entities
US9201964B2 (en) 2012-01-23 2015-12-01 Microsoft Technology Licensing, Llc Identifying related entities
US20130204863A1 (en) * 2012-02-04 2013-08-08 Rod Rigole System and Method for Displaying Search Results
US10452662B2 (en) 2012-02-22 2019-10-22 Alibaba Group Holding Limited Determining search result rankings based on trust level values associated with sellers
US20140143250A1 (en) * 2012-03-30 2014-05-22 Xen, Inc. Centralized Tracking of User Interest Information from Distributed Information Sources
US8930392B1 (en) * 2012-06-05 2015-01-06 Google Inc. Simulated annealing in recommendation systems
US9141504B2 (en) 2012-06-28 2015-09-22 Apple Inc. Presenting status data received from multiple devices
US10417294B2 (en) 2012-08-30 2019-09-17 Wix.Com Ltd. Selecting content objects for recommendation based on content object collections
US11301528B2 (en) 2012-08-30 2022-04-12 Wix.Com Ltd. Selecting content objects for recommendation based on content object collections
US9535996B1 (en) * 2012-08-30 2017-01-03 deviantArt, Inc. Selecting content objects for recommendation based on content object collections
US20140280576A1 (en) * 2013-03-14 2014-09-18 Google Inc. Determining activities relevant to groups of individuals
US11871063B2 (en) 2013-03-15 2024-01-09 Tubi, Inc. Intelligent multi-device content distribution based on internet protocol addressing
US10356461B2 (en) 2013-03-15 2019-07-16 adRise, Inc. Adaptive multi-device content generation based on associated internet protocol addressing
US20140344057A1 (en) * 2013-03-15 2014-11-20 adRise, Inc. Interactive advertising
US10594763B2 (en) 2013-03-15 2020-03-17 adRise, Inc. Platform-independent content generation for thin client applications
US10887421B2 (en) 2013-03-15 2021-01-05 Tubi, Inc. Relevant secondary-device content generation based on associated internet protocol addressing
US10887643B2 (en) 2013-03-15 2021-01-05 Tubi, Inc. Intelligent multi-device content distribution based on internet protocol addressing
US11503356B2 (en) 2013-03-15 2022-11-15 Tubi, Inc. Intelligent multi-device content distribution based on internet protocol addressing
US11870859B2 (en) 2013-03-15 2024-01-09 Tubi, Inc. Relevant secondary-device content generation based on associated internet protocol addressing
US11146616B2 (en) 2013-03-15 2021-10-12 Tubi, Inc. Platform-independent content generation for thin client applications
US11677806B2 (en) 2013-03-15 2023-06-13 Tubi, Inc. Platform-independent content generation for thin client applications
US11463540B2 (en) 2013-03-15 2022-10-04 Tubi, Inc. Relevant secondary-device content generation based on associated internet protocol addressing
US20140310263A1 (en) * 2013-04-16 2014-10-16 Alibaba Group Holding Limited Method and Apparatus of Recommending an Internet Transaction
CN104156359A (en) * 2013-05-13 2014-11-19 腾讯科技(深圳)有限公司 Linking information recommendation method and device
WO2014184784A3 (en) * 2013-05-16 2015-04-16 Yandex Europe Ag Method and system for presenting image information to a user of a client device
US20160132569A1 (en) * 2013-05-16 2016-05-12 Yandex Europe Ag Method and system for presenting image information to a user of a client device
US9363634B1 (en) 2013-06-27 2016-06-07 Google Inc. Providing context-relevant information to users
US9195703B1 (en) * 2013-06-27 2015-11-24 Google Inc. Providing context-relevant information to users
US10248961B1 (en) * 2013-07-09 2019-04-02 Quantcast Corporation Characterizing an entity in an identifier space based on behaviors of unrelated entities in a different identifier space
US9330209B1 (en) * 2013-07-09 2016-05-03 Quantcast Corporation Characterizing an entity in an identifier space based on behaviors of unrelated entities in a different identifier space
US20150212710A1 (en) * 2013-10-10 2015-07-30 Go Daddy Operating Company, LLC Card interface for managing domain search results
US20150121081A1 (en) * 2013-10-29 2015-04-30 International Business Machines Corporation Computer-based optimization of digital signature generation for records based on eventual selection criteria for products and services
US9722797B2 (en) * 2013-10-29 2017-08-01 International Business Machines Corporation Computer-based optimization of digital signature generation for records based on eventual selection criteria for products and services
US9729327B2 (en) 2013-10-29 2017-08-08 International Business Machines Corporation Computer-based optimization of digital signature generation for records based on eventual selection criteria for products and services
US20160292258A1 (en) * 2013-11-22 2016-10-06 Beijing Qihoo Technology Company Limited Method and apparatus for filtering out low-frequency click, computer program, and computer readable medium
US20150220544A1 (en) * 2014-02-03 2015-08-06 Gogobot, Inc. Selection and Rating of Locations and Related Content Based on User Categorization
US9460219B2 (en) * 2014-02-03 2016-10-04 Gogobot, Inc. Selection and rating of locations and related content based on user categorization
US20150271211A1 (en) * 2014-03-21 2015-09-24 Konica Minolta Laboratory U.S.A., Inc. Rights management policies with nontraditional rights control
US10244369B1 (en) 2014-07-11 2019-03-26 Google Llc Screen capture image repository for a user
US10080114B1 (en) 2014-07-11 2018-09-18 Google Llc Detection and ranking of entities from mobile onscreen content
US10652706B1 (en) 2014-07-11 2020-05-12 Google Llc Entity disambiguation in a mobile environment
US10248440B1 (en) 2014-07-11 2019-04-02 Google Llc Providing a set of user input actions to a mobile device to cause performance of the set of user input actions
US9886461B1 (en) * 2014-07-11 2018-02-06 Google Llc Indexing mobile onscreen content
US11704136B1 (en) 2014-07-11 2023-07-18 Google Llc Automatic reminders in a mobile environment
US10592261B1 (en) 2014-07-11 2020-03-17 Google Llc Automating user input from onscreen content
US9916328B1 (en) 2014-07-11 2018-03-13 Google Llc Providing user assistance from interaction understanding
US9811352B1 (en) 2014-07-11 2017-11-07 Google Inc. Replaying user input actions using screen capture images
US9965559B2 (en) 2014-08-21 2018-05-08 Google Llc Providing automatic actions for mobile onscreen content
US11275746B2 (en) 2014-09-19 2022-03-15 Ebay Inc. Dynamic modifications of results for search interfaces
US10489407B2 (en) * 2014-09-19 2019-11-26 Ebay Inc. Dynamic modifications of results for search interfaces
US11250081B1 (en) * 2014-09-24 2022-02-15 Amazon Technologies, Inc. Predictive search
US20170024390A1 (en) * 2015-07-22 2017-01-26 Ariba, Inc. Customizable ranking of search engine results in multi-tenant architecture
US10127285B2 (en) * 2015-07-22 2018-11-13 Ariba, Inc. Customizable ranking of search engine results in multi-tenant architecture
US20170078415A1 (en) * 2015-09-15 2017-03-16 Yahoo! Inc. Identifying Users' Identity Through Tracking Common Activity
US10715612B2 (en) * 2015-09-15 2020-07-14 Oath Inc. Identifying users' identity through tracking common activity
US10970646B2 (en) 2015-10-01 2021-04-06 Google Llc Action suggestions for user-selected content
US10055390B2 (en) 2015-11-18 2018-08-21 Google Llc Simulated hyperlinks on a mobile device based on user intent and a centered selection of text
US10733360B2 (en) 2015-11-18 2020-08-04 Google Llc Simulated hyperlinks on a mobile device
US11308502B2 (en) 2015-12-02 2022-04-19 Politecnico Di Torino Method for detecting web tracking services
US11734581B1 (en) 2016-10-26 2023-08-22 Google Llc Providing contextual actions for mobile onscreen content
US10535005B1 (en) 2016-10-26 2020-01-14 Google Llc Providing contextual actions for mobile onscreen content
US11237696B2 (en) 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
US11860668B2 (en) 2016-12-19 2024-01-02 Google Llc Smart assist for repeated actions
US10423638B2 (en) 2017-04-27 2019-09-24 Google Llc Cloud inference system
US11403314B2 (en) 2017-04-27 2022-08-02 Google Llc Cloud inference system
US11734292B2 (en) 2017-04-27 2023-08-22 Google Llc Cloud inference system
US20180336280A1 (en) * 2017-05-17 2018-11-22 Linkedin Corporation Customized search based on user and team activities
US10489425B2 (en) * 2017-10-26 2019-11-26 Salesforce.Com, Inc. User clustering based on query history
US11501006B2 (en) 2018-03-05 2022-11-15 Hyundai Motor Company Leveraging natural language processing to refine access control within collections
US11216786B2 (en) * 2018-07-17 2022-01-04 Kavita Ramchandani Snyder System and method for dispatching intelligent invitations to users within a network
CN113454665A (en) * 2018-09-28 2021-09-28 印象笔记公司 Task-based action generation
US20210158265A1 (en) * 2018-09-28 2021-05-27 Evernote Corporation Relationship-based search
US10909485B2 (en) 2018-09-28 2021-02-02 Evernote Corporation Relationship-based search
US20200104329A1 (en) * 2018-09-28 2020-04-02 Evernote Corporation Relationship-based search
US11500930B2 (en) * 2019-05-28 2022-11-15 Slack Technologies, Llc Method, apparatus and computer program product for generating tiered search index fields in a group-based communication platform
US11218443B2 (en) 2019-07-25 2022-01-04 Coupang Corp. Dynamic IP address categorization systems and methods
US20220300519A1 (en) * 2019-08-29 2022-09-22 Ntt Docomo, Inc. Re-ranking device
US11914601B2 (en) * 2019-08-29 2024-02-27 Ntt Docomo, Inc. Re-ranking device
US11379532B2 (en) * 2019-10-17 2022-07-05 The Toronto-Dominion Bank System and method for generating a recommendation
US11714856B2 (en) 2019-10-17 2023-08-01 The Toronto-Dominion Bank System and method for generating a recommendation
US11507576B2 (en) * 2020-05-20 2022-11-22 T-Mobile Usa, Inc. Method and system to efficiently analyze and improve database queries
US11707686B2 (en) 2020-06-05 2023-07-25 Solsten, Inc. Systems and methods to correlate user behavior patterns within an online game with psychological attributes of users
US11458407B2 (en) 2020-06-05 2022-10-04 Solsten, Inc. Systems and methods to correlate user behavior patterns within an online game with psychological attributes of users
US20220121549A1 (en) * 2020-10-16 2022-04-21 Oath Inc. Systems and methods for rendering unified and real-time user interest profiles
US11775599B2 (en) * 2020-11-10 2023-10-03 Shopify Inc. System and method for displaying customized search results based on past behaviour
US20220148060A1 (en) * 2020-11-10 2022-05-12 Shopify Inc. System and method for displaying customized search results based on past behaviour
WO2022159748A1 (en) * 2021-01-25 2022-07-28 Solsten, Inc. Systems and methods to determine content to present based on interaction information of a given user
US11206263B1 (en) * 2021-01-25 2021-12-21 12traits, Inc. Systems and methods to determine content to present based on interaction information of a given user
US11727424B2 (en) 2021-06-04 2023-08-15 Solsten, Inc. Systems and methods to correlate user behavior patterns within digital application environments with psychological attributes of users to determine adaptations to the digital application environments
US11962817B2 (en) 2022-02-21 2024-04-16 Tubi, Inc. Machine learning techniques for advanced frequency management
US11961023B2 (en) 2022-08-04 2024-04-16 Bending Spoons S.P.A. Relationship-based search

Also Published As

Publication number Publication date
US20120089598A1 (en) 2012-04-12
WO2007115217A2 (en) 2007-10-11
US8078607B2 (en) 2011-12-13
CN101454780B (en) 2013-09-11
US20070239680A1 (en) 2007-10-11
EP2005339A2 (en) 2008-12-24
WO2007115217A3 (en) 2008-01-03
CN101454780A (en) 2009-06-10

Similar Documents

Publication Publication Date Title
US8078607B2 (en) Generating website profiles based on queries from webistes and user activities on the search results
US11816114B1 (en) Modifying search result ranking based on implicit user feedback
JP5572596B2 (en) Personalize the ordering of place content in search results
US9542453B1 (en) Systems and methods for promoting search results based on personal information
US8321278B2 (en) Targeted advertisements based on user profiles and page profile
US9396238B2 (en) Systems and methods for determining user preferences
US8938463B1 (en) Modifying search result ranking based on implicit user feedback and a model of presentation bias
US7146416B1 (en) Web site activity monitoring system with tracking by categories and terms
US6718365B1 (en) Method, system, and program for ordering search results using an importance weighting
US9443022B2 (en) Method, system, and graphical user interface for providing personalized recommendations of popular search queries
CA2770868C (en) Objective and subjective ranking of comments
US7440968B1 (en) Query boosting based on classification
WO2009030972A1 (en) Method and system of generating and presenting search results
EP1766507A2 (en) Results based personalization of advertisements in a search engine
Lee et al. Category-based Web personalization system
US8874570B1 (en) Search boost vector based on co-visitation information
AU2012202738A1 (en) Results based personalization of advertisements in a search engine
Tweddle et al. A method for investigating the useage of a cancer website

Legal Events

Date Code Title Description
AS Assignment

Owner name: GOOGLE INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OZTEKIN, BILGEHAN UYGAR;HORLING, BRYAN;ANTONOVA, DARYA GENNADIEVNA;AND OTHERS;REEL/FRAME:019003/0734

Effective date: 20070213

AS Assignment

Owner name: GOOGLE LLC, CALIFORNIA

Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044129/0001

Effective date: 20170929

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION