US20130024449A1 - Method and apparatus for allowing users to augment searches - Google Patents

Method and apparatus for allowing users to augment searches Download PDF

Info

Publication number
US20130024449A1
US20130024449A1 US13/553,684 US201213553684A US2013024449A1 US 20130024449 A1 US20130024449 A1 US 20130024449A1 US 201213553684 A US201213553684 A US 201213553684A US 2013024449 A1 US2013024449 A1 US 2013024449A1
Authority
US
United States
Prior art keywords
criteria
user
entities
relevant entities
computer
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
US13/553,684
Inventor
Sourav Chatterji
Jeremy Ryan Schiff
Corey Layne Reese
Paul Kenneth Twohey
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.)
OpenTable Inc
Original Assignee
Ness Computing 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 Ness Computing LLC filed Critical Ness Computing LLC
Priority to US13/553,684 priority Critical patent/US20130024449A1/en
Assigned to Ness Computing, Inc. reassignment Ness Computing, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CHATTERJI, SOURAV, REESE, Corey Layne, TWOHEY, PAUL KENNETH, SCHIFF, JEREMY RYAN
Publication of US20130024449A1 publication Critical patent/US20130024449A1/en
Assigned to NESS COMPUTING, LLC reassignment NESS COMPUTING, LLC CONVERSION OF CORPORATION TO LLC Assignors: Ness Computing, Inc.
Assigned to OPENTABLE. INC. reassignment OPENTABLE. INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: NESS COMPUTING LLC
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/954Navigation, e.g. using categorised browsing
    • 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/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification

Definitions

  • the present disclosure may be related to the following commonly assigned U.S. Provisional Patent Applications: U.S. Provisional Patent Application No. 61/509,999 filed Jul. 20, 2011 entitled “Method and Apparatus for Explaining Recommendations”, U.S. Provisional Patent Application No. 61/509,995 filed Jul. 20, 2011, entitled “Method and Apparatus for Category Based Navigation”, and U.S. Provisional Patent Application No. 61/510,004 filed Jul. 20, 2011 entitled “Method and Apparatus for Quickly Evaluating Entities”.
  • the present invention relates to recommendation systems in general and in particular to an entity search system that allows users to search for entities and augment searches, via user devices, in order to present informative and intuitive entity evaluations.
  • the Internet has become a useful source of information relating to goods and services, but because so many users and companies are connected to the Internet and providing information of their own, it is difficult to find relevant information among all available information.
  • One area of information is in recommendations. As individuals and groups are now able to connect to the Internet and retrieve information from websites and via apps, and do so perhaps while in transit towards a geographic area of interest, they come to expect the ability to find information about goods and services being offered.
  • website refers to a collection of one or more web pages displayable by a browser or other web client, the one or more web pages being hosted on a web server (i.e., a computer coupled to the Internet, or other network over which communication occurs) that responds to requests for pages hosted thereon.
  • a web server i.e., a computer coupled to the Internet, or other network over which communication occurs
  • An example might be a restaurant that generates information about its hours, pictures of its dining room, contact information, history, menus and other offerings, then puts that information into a suitable form (such as HTML pages, dynamically generated pages, etc.), stores those pages in electronic storage accessible by the web server (hosted by the restaurant or perhaps a company that specializes in web presence that provides such services to the restaurant), and then serves those pages as client devices request pages.
  • a suitable form such as HTML pages, dynamically generated pages, etc.
  • the information might also be presented in another form, such as data supplied to an app on the client device rather than a generic browser on the client device.
  • the restaurant gets the information to interested users, it is still limited to information sourced by that restaurant.
  • a number of websites have been set up to collect information from other customers of a vendor of goods or services and provide reviews and comments and other details to other customers or potential customers. For example, there might be a website that focuses on hotels, another on restaurants, another on home repair, or a general one. However, these websites might just have too much information to be useful to a user searching for relevant recommendations.
  • social media websites that provide information to a user regarding the user's friends may also be another source that the user refers to in gathering information and searching for relevant recommendations.
  • social media websites allow users to provide a wide variety of information that may or may not be related to what a user is searching for (e.g., status updates unrelated to a vendor of goods or services), and it is also difficult to cross-reference the recommendations of friends through social media websites with general websites providing reviews, or websites for particular businesses, in a user's search for relevant recommendations.
  • Embodiments of the invention relate to improved data searching methods and systems.
  • Existing methods for providing data searches and search results to a target user may not provide options to the target user to modify the search based on customized attributes, which may be selected by the target user, or automatically determined based on the target user's query.
  • the target user is unable to properly search and find what they are looking for in search results, provided, it is difficult for the target user to feed back to the search system how to narrow down the search, re-direct the search, organize search results, etc. Therefore embodiments of the invention provide methods and systems in which a target user can more efficiently search through data, such as entity evaluations or personalized recommendations, by being able to augment the searches as they are being conducted.
  • allowing the target user to augment searches is advantageous and allows users to modify and organize data such that receiving relevant search results, and searching through the search results is executed in the most optimal and efficient manner for the target user.
  • data search systems, and other systems in use of such data search systems e.g., entity search systems, personalized recommendation systems, data navigation systems, etc.
  • data search systems are improved in this manner by becoming more intelligent about providing more relevant search results by allowing users to augment the searches.
  • Embodiments of the invention relate to improved search methods and systems.
  • Existing methods for providing searches to a target user may not provide options to the target user to modify the search without initiating a new one.
  • it is difficult for the target user to feed back to a search system what the target user is really searching for and how to improve search results in real-time without starting over. Therefore embodiments of the invention provide methods and systems in which a target user can improve an existing search by augmenting criteria or queries on which the search is based.
  • Some embodiments may provide methods of operation in which they do not need to know who a user is; for example, there may be a kiosk mode in which members of the public can use the system without identifying themselves.
  • search systems, and other systems in use of such search systems are improved in this manner by becoming more intelligent about providing search results to its users.
  • a computer-implemented method for providing augmented searches for entities to a primary user comprises obtaining, at a server computer, user data related to a plurality of users relevant to the primary user, storing the user data, wherein the user data associated with the plurality of users is stored in a user database.
  • the entity search system then obtains entity data from a plurality of data sources.
  • the entity data is associated with an entity in a plurality of entities, in which the entity provides goods or services to the target user.
  • the method further comprises storing the entity data, wherein the entity data associated with the plurality of entities is stored in an entity database.
  • the entity search system receives a query for a search for relevant entities from the target user, wherein the query is related to an entity in the plurality of entities.
  • the method then further comprises searching for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data, determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be displayed to the primary user, and determining the initial order of relevance of the set of relevant entities based on the set of criteria.
  • the entity search system may then display, on a user device, the set of relevant entities in the initial order of relevance to the primary user, and obtain, via the user device, feedback data from the user related to the search for the set of relevant entities. Further, the entity search system may augment the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and display the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
  • the method further comprises obtaining, via the user device, feedback data from the user related to the initial order of relevance for the set of relevant entities, and augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities based on the feedback data.
  • the entity search system then displays the set of relevant entities to the primary user based on the adjusted order of relevance.
  • the entity search system may assign a corresponding weight of each criteria in the set of criteria, and determine the initial order of relevance of the set of relevant entities based on the weight of each criteria in the set of criteria.
  • the method further comprises obtaining, via the user device, feedback data from the user related to the corresponding weight of each criteria in the set of criteria, and augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities, based on the feedback data related to the corresponding weight of each criteria in the set of criteria.
  • the entity search system displays the set of relevant entities to the primary user based on the adjusted order of relevance.
  • FIG. 1 is a block diagram of a navigation system according to aspects of the present invention.
  • FIG. 2 is a block diagram of a modularized navigation system according to aspects of the present invention.
  • FIG. 3 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 4 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 5 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 6 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 7 illustrates an exemplary user display according to an embodiment of the invention.
  • an information retrieval or search system takes an explicit or implicit query, finds entities matching the query, orders or ranks the entities, and then displays a subset of the ranked entities.
  • the invention is implemented using computing elements and may also include communication elements that convey data between disparate locations.
  • the entity search system 160 may be coupled to a plurality of users, such as a primary user 100 , secondary user 102 , or any number of users 104 . There may be relationships between specific users, for example, the primary user 100 and secondary user 102 may be friends, family members, or co-workers.
  • the plurality of users may be coupled to the personalized recommendations system 160 through associated user devices 110 , 112 , and 114 .
  • User devices may include mobile phones (e.g., a BlackberryTM phone, an iPhoneTM device, an AndroidTM device), tablets (e.g., an iPadTM tablet), or other electronic devices.
  • the entity search system 160 may obtain inputs from any number of users 100 , 102 , and 104 , registered with the personalized recommendations system 160 .
  • the users 100 , 102 , and 104 may be interconnected and have relationships with one another.
  • the inputs may be transmitted through the user devices 110 , 112 , 114 via an application.
  • the user devices 110 , 112 , 114 may be connected to the entity search system 160 through the internet, a wireless network, a telecommunications network, or any suitable communications network.
  • the primary user 100 may use the primary user device 110 to download and install an application issued by the entity search system 160 .
  • the primary user 100 may edit personal ratings for entities, such as venues and restaurants, and other personal preferences, such as cuisine, type of food, price range, location, distance from current location, etc.
  • the primary user 100 may also provide feedback items or data through the application to respond to recommendations, to add or remove entities, and/or rate an experience at an entity.
  • entities may include merchants and service providers.
  • Additional inputs to the entity search system 160 may come from external data sources, for example, a social network computer system such as the FacebookTM computer system 140 (A), a public messaging system such as the TwitterTM messaging system 140 (B), and/or any number of other data sources 140 (N) via the user accounts 150 (A), 150 (B), 152 (A), 152 (B) with the data sources and/or user devices 110 , 112 .
  • the external data sources may also provide raw location data of the users, for example, through a “check-in” through system 140 (A), system 140 (B), or other social networking provider system capable of providing raw location data.
  • the other data sources 140 (N) may themselves have associated user accounts, which may map directly or indirectly to user accounts of other systems.
  • Embodiments of the invention relate to search systems of informational data, for example, information data related to an entity or a set of entities.
  • embodiments of the invention are not limited to searching for informational data related to entities, but may be applied to general searching of any type of informational data.
  • An entity search system may gather data from a plurality of data sources related to a plurality of entities.
  • Data associated with the plurality of entities e.g., restaurants
  • Other data associated with an entity may be evaluation data, such as a rating based on an average rating of a plurality of users, or reviews from users regarding their experience at or with the entity.
  • All data associated with the plurality of entities may be stored in an entity database operated by the entity search system, and is updated with information gathered from the plurality of external data sources, and plurality of users, as indicated in FIG. 1 .
  • the target user may enter queries to the entity search system, acting as criteria or conditions for entities that the entity search system may provide evaluation data or other data related to the entities that match the criteria to the target user.
  • Queries for a set of entities can come in many different forms. It can be a search for an explicit entity (e.g., Restaurant A in Berkeley), or a group of entities (e.g., diners).
  • the queries may be interpreted as a set of implicit filters, and may be pre-encoded, or involve dynamic work in real-time at the time of the query. For example, a query for “Thai restaurants” may be pre-encoded to not include shoe stores, or restaurants categorized as “Italian”.
  • An example of a dynamic filter implemented in real-time may be a query for “Thai restaurants within 0.3 miles of my current location”, which would involve determining the target user's current location, and filtering out Thai restaurants that are within 0.3 miles of the current location, such that neither a Thai restaurant 1 mile away or an Italian restaurant 0.1 mile away both would not be included in the search results.
  • Another example of such filter might be a query for restaurants that lie in a particular direction, such as the direction a user is traveling or currently gazing.
  • entities may be searched for depend on the embodiment of the invention and may be anything that can be represented or referred to in a computer system.
  • entities are providers of goods and services, such as restaurants or nightclubs.
  • entities are particular goods or services or events, such as a particular dish at a restaurant or a one-time or repeating event such as a concert.
  • entities are documents or sections of documents, such as text pages or musical compositions, to be presented to a user.
  • an entity may be a relationship or potential relationship between two people.
  • a dating recommendation system may recommend in favor of or against a potential relationship between one user and another, or may allow searches for potential relationships meeting some criteria.
  • entities may be individuals.
  • Search queries may involve different input modalities either alone or in combination. For example, a simple box into which users may type textual queries, a sketch pad in which users draw something they want to find, opening an application on a mobile user device which uses GPS or other location sensing technology to find items related to their location, and/or structural interfaces which let users select a subset of various attributes of entities, which may be based on evaluation data associated with the entities.
  • a search query could involve a user looking in a particular direction or using an audio or haptic interface.
  • a user, users, sets of users, or any combination of users may use one or more personalized recommendation, evaluation, or navigation systems that evaluate entities known to a search system.
  • “Recommendations” may be along a single or multiple dimensions, and/or over a discrete or continuous domain. Recommendations may be presented in a numerical, textual, pictorial, auditory, or tactile fashion.
  • Recommendations may be include any of these characteristics, either alone or in combination. For example, a user may rate a restaurant on a scale of 1, 2, 3, 4, or 5 stars, with 1 star being the lowest rating, and 5 stars being the highest rating. In another realization, a user may instead rate a restaurant on a 1-5 star scale for taste rating, 1-4 “$” scale for price rating, and add an optional one word description.
  • recommendations might be called “evaluations” or used in a similar manner. For example, an evaluation might be done by a team of doctors choosing a picture that best represents the mood or situation of a clinical patient, in effect, “recommending” which is the “best” image to use.
  • an evaluation or recommendation may include citizen journalists recording a five second video to make a review or recommendation, or an audio summary of a protest or event.
  • recommendations may use three dimensional sensing technologies to have dancers record their expressions in response to listening to a composition.
  • Another example may include a user operating an application on a mobile device, and dragging pictorial representations of dishes into different groups or piles categorized as “tasty”, “yucky”, and “only sometimes”.
  • a recommendation may be inferred from aspects of a user's behavior such as whether the user looks in one direction or another, or whether the user walks or turns in one way or another.
  • Evaluations or recommendations of entities may include “evaluation data”, that may be, according to embodiments of the invention, inputs into a recommendation service provided by a personalized recommendation system described herein.
  • evaluation data may include ratings on a discrete star scale for the quality of a restaurant for a restaurant discovery website/product or answers to personality questions for a match making website/service.
  • Evaluation data may be associated with one entity or a set of entities. For example, a user may rate Jane's Sushi 90/100 and may rate sushi restaurants in general 82/100.
  • Evaluation data and other data in evaluations may be used, according to embodiments of the invention, in an improved search involving filtering by evaluations.
  • entities may be shown or hidden based on which users, sets of users, or arbitrary combinations of users thereof, who have or have not evaluated each entity.
  • a geographic entity search system may offer the option to not show the user entities which have already been evaluated.
  • a jewelry search system may offer a group of users performing a query the ability to only show results for jewelry stores in which the group of users' parents have rated more than 80 on a 1-100 scale.
  • An evaluation filter may be used alone or in arbitrary combination with other filters. They may be broadening (OR) or narrowing (AND). For example, an English language query using Boolean syntax may be, “wines I have previously rated excellent OR (wines costing between $30-$50 AND which my wife has rated at least good) OR the wine of the day”. Other combinations than Boolean ones are possible, however. For instance, one might combine two filters with a weighting to indicate that one was more important. One might also specify in a query that one attribute of an entity be similar to (“like”) a specific datum or an attribute of another entity.
  • a generalization of filtering considered is an order of relevance for re-ranking search results. For example, with the example provided earlier about filtering all results a user had already passed evaluated, similarly, a list of search results could down-weight results based on filtering criteria. This filtering criteria could either be explicit, or generated implicitly from other context such as GPS or prior search history. As another clarifying example, restaurants rated 5 stars may appear before other restaurants not rated by the person or persons performing a search query if a “prefer my highest rated” filter is active. The ability for a user to meet the system half way by requesting changes to the ranking is referred to as user-specified re-ranking.
  • an evaluation filter may happen at one or more parts of a search system either alone or in combination. For example, it could be implemented in real-time at the time of a query or search. If the system has control over other parts of the result pages that are served, information from the result pages could be dynamically changed. For example, if a target user looks for Japanese food, but the result is for a restaurant that serves only Yakitori (grilled chicken or meat skewers), that information (the fact that it only serves Yakitori) may be obscured, and the target user may only be informed that the restaurant serves Japanese food. However, if a target user explicitly searches for restaurants serving Yakitori, the same restaurant may appear in the search results, but the target user might see the specific information that the restaurant serves only Yakitori, rather than the restaurant serves Japanese food.
  • Yakitori grilled chicken or meat skewers
  • Some search systems involve searching by, or for location, and return search results which have locations in the real world.
  • entity search systems When entity search systems according to embodiments of the invention are performing ranking of certain criteria over others, all criteria may be fused together to generate an initial order of relevance in ordering the results of a search query.
  • a mechanism of weighting certain criteria over others may be provided to determine the initial order of relevance. This criteria is most frequently determined a priori, for instance, using hand-tuning
  • there are many ways to allow user specified filtering or re-ranking order of relevance such as using machine learning or statistical techniques such as collaborative filtering or regression.
  • One such example of user-specified re-ranking an order of relevance may be exposing parameters that the system is using. There could be many motivations for this including providing clarity, or providing mechanisms for a user to tune/refine the automatically assumed parameters of the system. These parameters could be performed a priori, or at query time, or a hybrid using both approaches. For example, when a user is searching near a specific location, an entity search system may automatically determine a maximum radius for the search. This distance could be surfaced to the user, which in turn the user could use to provide feedback about if the estimated range was ideal or not, and if not, to change that specific parameter or criteria. This also means that when designing search ranking algorithms to model behavior, the entity search system may determine an order of relevance in intuitive ways that can be explained to the user.
  • a user may specify distance as a criteria, for example, preferring entities located in closer proximity of 0.5 miles over entities located over 0.5 miles away, the user may still hold a higher weight (e.g., higher priority) to another criteria, such as a rating of the entity.
  • the user could specify “more heavily care about distance” vs. “less heavily care about distance. So because the user weighs the rating more heavily than the distance, the user may select a 5-star rated entity over 0.5 miles away over a 3-star rated entity within 0.5 miles. Therefore, the entity search system may display the 5-star entity higher (e.g., higher order of relevance) than the 3-star entity, even though the 5-star entity is over 0.5 miles away and the 3-star entity is within 0.5 miles. However, in comparing two 3-star entities that are both within 0.5 miles, they may be ranked in an order based on distance (e.g., entity 0.2 miles away is displayed higher than an entity 0.4 miles away).
  • the criteria for searching is not limited to geographic, but rather any sort of parameters that could be modified.
  • geographical it is also not limited to city, it could be neighborhood, country, zip code, real estate plots, crime gradients, etc.
  • One example of a specific type of dynamic filter is a mechanism for automatically changing the range of a search based on the search when doing a search for physical places. This may take in additional context, including hints such as signals from search rankers, GPS data, affinity graph information, or many other different types of subsystems. This would automatically determine the range necessary, balancing the two conflicting requirements of finding many high quality results, and not having the users travel far. This could be variable depending on not just the query, but also the specific information we have learned about a user, such as an observation about the user's decisions about this tradeoff.
  • search relaxation occurs when a target user makes a query for a search, but the search is unsuccessful in finding entities matching the target user's query, so the query automatically becomes generalized, or altered in a pre-determined way.
  • search relaxation There are many different forms of search relaxation, such as: 1) ignoring explicit user criteria that have been specified about the price, radius of a search, etc., 2) exposing spelling correction logic 3) automatically generalizing a query, for example, if a user looks for Yakitori, and there are not many results, the entity search system begins searching for Japanese, which is broader or more generalized than Yakitori.
  • search relaxation When and how search relaxation occurs may be based on explicit search relaxation criteria determined by a product designer, or may be based on implicit search relaxation criteria derived from information learned through statistical inference. For example, a search relaxation may occur if there are few results, or if there are no results. A search relaxation could also occur if the system determined that a word in a query was extremely rare, and furthermore was similar by edit distance or another distance metric to a non-rare word, in a spelling correction system. Search relaxation criteria may be broader than this, however. Relaxation criteria, and the way in which queries are relaxed, may change over time and may be inferred from user feedback or other information. For example, a system may notice that queries of one kind are commonly followed quickly by queries of another kind, and conclude that information responsive to the second query should be provided immediately without actually requiring the second query.
  • User feedback may be an explicit response from the user interacting with the user device.
  • the user may interact with the user device via a mobile application associated with the entity search system. Interacting with the application on the user device allows the entity search system and a user to communicate with each other, such as sending queries to the entity search system, providing criteria, editing criteria, providing and editing entity search query results, etc.
  • User feedback may also include editing the query and re-running a search based on the new query.
  • Some search systems may allow a user to save queries for later use. In these systems the fact a query was saved may be user feedback about a query's utility.
  • FIG. 2 shows a block diagram of an exemplary modular entity search system 160 according to an embodiment of the invention, where the entity search system 160 is configured to provide explanations of the personalized recommendations.
  • an explanations provider may be separate from the recommendations provider, and may be operated by different systems.
  • the entity search system 160 operates as the recommendations provider and explanation (i.e., recommendations explanation) provider.
  • the entity search system 160 may be a server computer 700 , which may be a single computer, a cluster of computers, a server, or a super computer. Processes and methods implemented by or at the server computer could also be implemented by or at a client, in various embodiments.
  • the server computer 700 may comprise a processor 740 , and a non-transitory computer readable medium 750 , on which code is stored. There may be several databases to store data, for example, an entity database 730 ( a ), a factor database 730 ( b ), a user database 730 ( c ), and a media object database 730 ( d ).
  • Entity meta-data may include any sub-category of data related to the entity.
  • the criteria database 730 ( b ) may store previously determined and selected factors from a plurality of users.
  • the user database 730 ( c ) may store user data obtained from a plurality of users, such as real-time data from social networking sites (e.g., tweets, status updates), and stored data related to a plurality of users, such as user preferences and settings (e.g., gender, dietary restrictions).
  • the real-time data may be explicit or implicit, and may include text, images, video, audio, or other media.
  • the user data may be directly obtained from the user or may be obtained from external data sources, such as a social networking site associated with the user.
  • the entity search system 160 may also include a media object database 730 ( d ), storing media objects, such as high resolution photos.
  • the media objects may be associated with entities, recommendations, and/or the target user, and may be used in the display of recommendations and/or recommendation explanations.
  • the user database and entity database could be NoSQL databases, an SQL database, another information retrieval system such as a computer filesystem, or an in-memory data store.
  • the system could have a temporary piece of data obtained from a third-party on demand, such that data does not need to be statically or locally stored.
  • a database could consist of multiple storage facilities, such as a cache backed by a database or a normalized authoritative database and denormalized in-memory stores.
  • the code stored on the non-transitory computer readable medium 750 may be in modules, and is executable by the processor 740 to perform functions, which are implemented as processing steps described above by the entity search system providing recommendation explanations.
  • the non-transitory computer-readable medium 750 may comprise software modules, such as a criteria weighting module 701 , a filter module 702 , a filter weighting module 703 , an order of relevance module 704 , a search display module 705 , and a query analysis module 706 . The functions of these modules are described in the process flows described above.
  • the entity search system 160 may include a network interface 720 .
  • the network interface 720 includes hardware and software that enables the entity search system 160 to transmit and receive data over the Internet or any other communications network (e.g., telecommunications network, cable, radio).
  • Filtering options may be dynamic based on information from the search using a query, and vice versa (the search options can be dynamic based on information from the filters). For example, if a user has entered information into a location search box (coupled with a query search box), and some criteria is used to determine that the user is specifying a location other than the current one, then using a radius-based distance criteria may not make sense. For example, if a user enters a city, it might be more prudent to search all locations in a city, rather than scoping by a radius around a specific location. Thus, if it is determined that such a filter is not prudent, it may be dynamically changed, or stripped from the user interface, to reinforce a user's understanding about said functionality.
  • a filtering option may be automatically enabled, and this information may be communicated to the user or not, based on the context of the search, such as whether the user is searching by location and radius or all locations in a city, or whether the user is searching from a mobile device rather than a desktop computer.
  • User displays of results are not limited to display screens but can include generally visual displays such as heads-up displays, audio results, and haptic feedback.
  • FIG. 3 an exemplary user display 300 is illustrated for a user to customize filter parameters as criteria for a search, or for an order of relevance.
  • the user may enter a search query in an input box 304 , for example, “pizza” or “cheap eats”.
  • input box 306 the user may enter a location, select an option to choose “near me” or “current location,” which may enable the user device to determine the current location.
  • the user device may use GPS (Global Positioning System), or other systems to determine the current location of the user device.
  • Section 308 of the user display 300 may indicate a searching criteria “Search”, which could be by “Personal” 308 ( a ) (e.g., personal preferences), or by “Distance” 308 ( b ).
  • a user may also indicate a “Range” 310 , and may include a “Smart” option 310 ( a ), in which the entity search system may determine the best range. Otherwise, the user may select a desired range in the options shown in 310 ( b ) (e.g., 0.3 mi, 1 mi, 5 mi, and 15 mi).
  • the user display 300 may also allow the user to set “Price” criteria 312 , with options shown as 312 ( a ) using “$”, with “$” indicating inexpensive, while “$$$$$” indicates expensive.
  • the user may also select criteria to “Hide” 314 , for example, to hide entities that the user has already evaluated 314 ( a ) (e.g., “Placed I've Rated”), or chain restaurants 314 ( b ) (e.g., “Big Chains”).
  • the user may select “Done” 302 , to save the criteria.
  • an exemplary user display 400 is illustrated for a user to customize filter parameters as criteria for a search, or for an order of relevance.
  • the user may enter a search query in an input box 404 , for example, “pizza” or “cheap eats”.
  • input box 406 the user may enter a location, for example, “Berkeley” the prompting a different set of criteria options than shown in FIG. 3 .
  • Section 408 of the user display 400 may indicate a searching criteria “Search”, which could be by “Personal” 408 ( a ) (e.g., personal preferences), or by “Distance” 408 ( b ).
  • the “Range” section 410 now displays a “Use Current Location” option 410 ( a ), in which the entity search system may determine, using GPS or other systems, to determine the user's specific location within the explicit location in 406 , Berkeley.
  • the user display 400 may also allow the user to set “Price” criteria 412 , with options shown as 412 ( a ) using the dollar sign symbol “$”, with “$” indicating inexpensive, while “$$$$$” indicates expensive.
  • the user may also select criteria to “Hide” 414 , for example, to hide entities that the user has already evaluated 414 ( a ) (e.g., “Placed I've Rated”), or chain restaurants 414 ( b ) (e.g., “Big Chains”).
  • criteria e.g., “Placed I've Rated”
  • chain restaurants 414 e.g., “Big Chains”.
  • Done 402
  • the entity search system may search in real-time as the criteria are being augmented, and shown in a textual display 416 , preliminary results. For example, in the user display 400 , the textual display 416 shows that no entities could be found with a “$” or “$$” price in the specified location, Berkeley.
  • FIGS. 5 and 6 show how the chosen parameters can differ based upon the query (City, vs. a specified range).
  • FIG. 5 illustrates an exemplary user display 500 with search results for the primary user.
  • the user may enter a search query in an input box 504 , for example, “pizza” or “cheap eats”.
  • location box 506 the user may enter a location, for example, “Berkeley”.
  • the user may select “Refine your search” 508 to display other criteria that the user may select and/or modify in the search.
  • the user display 500 may show a set of entities, for example, “Jupiter's” in section 510 , “Triple Rock Brewery & Alehouse” in 512 , and “Bette's Oceanview Diner” in 514 .
  • Each section may display entity data, such as a name of the entity 510 ( a ) “Jupiter's”, a type of food or cuisine 510 ( b ) “Pizza”, a price range 510 ( c ) “$$”, location data 510 ( d ) “Berkeley—33.1 mi” (e.g., city and distance from current location), and evaluation data 510 ( g ) “# 2 Second most popular Pizza in Berkeley, 3382 Mentions” (e.g., rating, review, number of check-ins, etc.).
  • navigation indicators may be displayed, such as an arrow 510 ( e ), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Jupiter's”.
  • options 510 ( f ) such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to ask for help.
  • Entity “Triple Rock Brewery & Alehouse” in section 512 has similar options, indicators, and data, as in section 510 for “Jupiter's”. If the user wishes to view the results displayed in a different layout, the user may select 502 for a tiled format, or other layout.
  • FIG. 6 illustrates an exemplary user display 600 with search results for the primary user.
  • the user may enter a search query in an input box 604 , for example, “pizza” or “cheap eats”.
  • the user may select “Refine your search” 608 to display other criteria that the user may select and/or modify in the search.
  • location box 606 the user may select “Near Me”, which would augment the search and display the search results differently from that shown in FIG. 5 .
  • the “Near Me” option would use the current location of the user device, determined using GPS or other systems.
  • the user display 600 may show a new set of entities from those shown in FIG.
  • Each section may display entity data, such as a name of the entity 610 ( a ) “Hobee's Restaurant”, a type of food or cuisine 610 ( b ) “American”, a price range 610 ( c ) “$$”, location data 610 ( d ) “Palo Alto—0.3 mi” (e.g., city and distance from current location), and evaluation data 610 ( g ) “#3 Third most popular American in Palo Alto, 568 Mentions” (e.g., rating, review, number of check-ins, etc.).
  • navigation indicators may be displayed, such as an arrow 610 ( e ), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Hobee's Restaurant”.
  • options 610 ( f ) such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to to ask for help.
  • Entity “Lozano Brushless Car” in section 612 may have similar options, indicators, and data, as in section 610 for “Hobee's Restaurant”. If the user wishes to view the results displayed in a different layout, the user may select 602 for a tiled format, or other layout.
  • the entity search system may apply a search relaxation, which occurs when a target user makes a query for a search, but the search is unsuccessful in finding sufficient entities matching the target user's query, so the query automatically becomes generalized, or altered in a pre-determined way.
  • Search relaxation may happen in a way that is not exposed to the target user, or it could be explicitly explained to the target user why the search query and/or criteria have been relaxed, as shown in FIG. 7 .
  • FIG. 7 illustrates an exemplary user display 700 with search results for the primary user.
  • the user may enter a search query in an input box 704 , for example, “noodle theory”.
  • the user may select “Refine your search” 708 to display other criteria that the user may select and/or modify in the search.
  • location box 706 the user may select “Near Me”. If the user wishes to view the results displayed in a different layout, the user may select 702 for a tiled format, or other layout.
  • the “Near Me” option would use the current location of the user device, determined using GPS or other systems.
  • the user display 700 may show in a textual description 710 , which no entities matching the search query (e.g., “noodle theory”) within the specified range (e.g., 0.3 miles).
  • the entity search system may then make other recommendations matching the search query, but with relaxed range criteria.
  • “Noodle Theory” in 712 may display entity data, such as a name of the entity 712 ( a ) “Noodle Theory”, a type of food or cuisine 712 ( b ) “Asian”, a price range 712 ( c ) “$$”, and location data 712 ( d ) “Oakland—31.4 mi” (e.g., city and distance from current location).
  • navigation indicators may be displayed, such as an arrow 712 ( e ), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Noodle Theory”.
  • options 712 ( f ) such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to ask for help.
  • the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged.
  • a process is terminated when its operations are completed, but could have additional steps not included in the figure.
  • a process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
  • the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information.
  • ROM read only memory
  • RAM random access memory
  • magnetic RAM magnetic RAM
  • core memory magnetic disk storage mediums
  • optical storage mediums flash memory devices and/or other machine readable mediums for storing information.
  • computer-readable medium includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
  • embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof.
  • the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium.
  • a processor(s) may perform the necessary tasks.
  • a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
  • a code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

Embodiment of the invention relate to a computer-implemented method for providing augmented searches for entities to a user, the method comprising obtaining, at a server computer operated by an entity search system, user data related to a user, and obtaining entity data related to a plurality of entities. Then, the entity search system receives a query for a search for relevant entities from the user. The method then further comprises searching for a set of relevant entities based on the query, entity data, and user data, determining a set of criteria for an initial order of relevance, and determining an order of relevance of the set of relevant entities based on the set of criteria. The set of relevant entities or order of relevance may be augmented by obtaining feedback data from the user, thereby providing an augmented search for relevant entities to the user.

Description

    CROSS-REFERENCES TO RELATED APPLICATIONS
  • This application claims priority from co-pending U.S. Provisional Patent Application No. 61/510,003 filed Jul. 20, 2011 entitled “Method and Apparatus for Allowing Users to Augment Searches”.
  • The present disclosure may be related to the following commonly assigned U.S. Provisional Patent Applications: U.S. Provisional Patent Application No. 61/509,999 filed Jul. 20, 2011 entitled “Method and Apparatus for Explaining Recommendations”, U.S. Provisional Patent Application No. 61/509,995 filed Jul. 20, 2011, entitled “Method and Apparatus for Category Based Navigation”, and U.S. Provisional Patent Application No. 61/510,004 filed Jul. 20, 2011 entitled “Method and Apparatus for Quickly Evaluating Entities”.
  • The respective disclosures of these applications/patents are incorporated herein by reference, as if set forth in full in this document, for all purposes.
  • FIELD OF THE INVENTION
  • The present invention relates to recommendation systems in general and in particular to an entity search system that allows users to search for entities and augment searches, via user devices, in order to present informative and intuitive entity evaluations.
  • BACKGROUND OF THE INVENTION
  • The Internet has become a useful source of information relating to goods and services, but because so many users and companies are connected to the Internet and providing information of their own, it is difficult to find relevant information among all available information. One area of information is in recommendations. As individuals and groups are now able to connect to the Internet and retrieve information from websites and via apps, and do so perhaps while in transit towards a geographic area of interest, they come to expect the ability to find information about goods and services being offered.
  • One source of information is in the form of websites hosted by or for providers. As used herein, “website” refers to a collection of one or more web pages displayable by a browser or other web client, the one or more web pages being hosted on a web server (i.e., a computer coupled to the Internet, or other network over which communication occurs) that responds to requests for pages hosted thereon. An example might be a restaurant that generates information about its hours, pictures of its dining room, contact information, history, menus and other offerings, then puts that information into a suitable form (such as HTML pages, dynamically generated pages, etc.), stores those pages in electronic storage accessible by the web server (hosted by the restaurant or perhaps a company that specializes in web presence that provides such services to the restaurant), and then serves those pages as client devices request pages. The information might also be presented in another form, such as data supplied to an app on the client device rather than a generic browser on the client device.
  • However the restaurant gets the information to interested users, it is still limited to information sourced by that restaurant. A number of websites have been set up to collect information from other customers of a vendor of goods or services and provide reviews and comments and other details to other customers or potential customers. For example, there might be a website that focuses on hotels, another on restaurants, another on home repair, or a general one. However, these websites might just have too much information to be useful to a user searching for relevant recommendations.
  • Additionally, with the increase of users participating in social media websites, users are also interested in getting information about their friends, and the opinions of their friends. For example, a user may find out that a number of their friends on a social media website highly recommend a restaurant, which may be more persuasive to that user than the recommendations of strangers or high rankings on general rating websites. Thus, social media websites that provide information to a user regarding the user's friends may also be another source that the user refers to in gathering information and searching for relevant recommendations. However, social media websites allow users to provide a wide variety of information that may or may not be related to what a user is searching for (e.g., status updates unrelated to a vendor of goods or services), and it is also difficult to cross-reference the recommendations of friends through social media websites with general websites providing reviews, or websites for particular businesses, in a user's search for relevant recommendations.
  • Thus, there is a massive amount of data to be processed in order for a user to search for relevant data and find what the user has sought out to seek. Realistically, a user cannot sort through all the information collected through various sources, so a more efficient means of processing the data is needed, such as a data navigation system.
  • An improved recommendations system is desirable.
  • BRIEF SUMMARY OF THE INVENTION
  • Embodiments of the invention relate to improved data searching methods and systems. Existing methods for providing data searches and search results to a target user may not provide options to the target user to modify the search based on customized attributes, which may be selected by the target user, or automatically determined based on the target user's query. Thus, if the target user is unable to properly search and find what they are looking for in search results, provided, it is difficult for the target user to feed back to the search system how to narrow down the search, re-direct the search, organize search results, etc. Therefore embodiments of the invention provide methods and systems in which a target user can more efficiently search through data, such as entity evaluations or personalized recommendations, by being able to augment the searches as they are being conducted.
  • Thus, allowing the target user to augment searches is advantageous and allows users to modify and organize data such that receiving relevant search results, and searching through the search results is executed in the most optimal and efficient manner for the target user. Additionally, data search systems, and other systems in use of such data search systems (e.g., entity search systems, personalized recommendation systems, data navigation systems, etc.) are improved in this manner by becoming more intelligent about providing more relevant search results by allowing users to augment the searches.
  • Embodiments of the invention relate to improved search methods and systems. Existing methods for providing searches to a target user may not provide options to the target user to modify the search without initiating a new one. Thus, if the target user is dissatisfied with the an initial set of search results, it is difficult for the target user to feed back to a search system what the target user is really searching for and how to improve search results in real-time without starting over. Therefore embodiments of the invention provide methods and systems in which a target user can improve an existing search by augmenting criteria or queries on which the search is based. In some embodiments, there may be multiple simultaneous target users, or there may be one target user and several associated users for whom searches should also be relevant. Input data from such multiple users can be presented synchronously or asynchronously. Some embodiments may provide methods of operation in which they do not need to know who a user is; for example, there may be a kiosk mode in which members of the public can use the system without identifying themselves.
  • Thus, providing augmented searches to the target user is advantageous and allows users to understand the logic and processes behind generating search results and augment them for optimal results. Additionally, search systems, and other systems in use of such search systems (e.g., personalized recommendation systems, entity navigation systems, etc.) are improved in this manner by becoming more intelligent about providing search results to its users.
  • In an embodiment of the invention, a computer-implemented method for providing augmented searches for entities to a primary user is described. The method, performed by an entity search system, comprises obtaining, at a server computer, user data related to a plurality of users relevant to the primary user, storing the user data, wherein the user data associated with the plurality of users is stored in a user database. The entity search system then obtains entity data from a plurality of data sources. The entity data is associated with an entity in a plurality of entities, in which the entity provides goods or services to the target user. The method further comprises storing the entity data, wherein the entity data associated with the plurality of entities is stored in an entity database. Then, the entity search system receives a query for a search for relevant entities from the target user, wherein the query is related to an entity in the plurality of entities. The method then further comprises searching for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data, determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be displayed to the primary user, and determining the initial order of relevance of the set of relevant entities based on the set of criteria. The entity search system may then display, on a user device, the set of relevant entities in the initial order of relevance to the primary user, and obtain, via the user device, feedback data from the user related to the search for the set of relevant entities. Further, the entity search system may augment the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and display the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
  • In another embodiment of the invention, the method further comprises obtaining, via the user device, feedback data from the user related to the initial order of relevance for the set of relevant entities, and augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities based on the feedback data. The entity search system then displays the set of relevant entities to the primary user based on the adjusted order of relevance.
  • In another embodiment of the invention, the entity search system may assign a corresponding weight of each criteria in the set of criteria, and determine the initial order of relevance of the set of relevant entities based on the weight of each criteria in the set of criteria. The method further comprises obtaining, via the user device, feedback data from the user related to the corresponding weight of each criteria in the set of criteria, and augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities, based on the feedback data related to the corresponding weight of each criteria in the set of criteria. Lastly, the entity search system displays the set of relevant entities to the primary user based on the adjusted order of relevance.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • A further understanding of the nature and advantages of the present invention may be realized by reference to the following drawings. In the appended figures, similar components or features may have the same reference label. Further, various components of the same type may be distinguished by following the reference label by a dash and a second label that distinguishes among the similar components. If only the first reference label is used in the specification, the description is applicable to any one of the similar components having the same first reference label irrespective of the second reference label.
  • FIG. 1 is a block diagram of a navigation system according to aspects of the present invention.
  • FIG. 2 is a block diagram of a modularized navigation system according to aspects of the present invention.
  • FIG. 3 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 4 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 5 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 6 illustrates an exemplary user display according to an embodiment of the invention.
  • FIG. 7 illustrates an exemplary user display according to an embodiment of the invention.
  • DETAILED DESCRIPTION OF THE INVENTION
  • In various embodiments of the invention, improved methods and systems of searching for entities are described. In an embodiment of the invention, an information retrieval or search system takes an explicit or implicit query, finds entities matching the query, orders or ranks the entities, and then displays a subset of the ranked entities.
  • An improved entity search system is described herein. In order to provide a context for describing embodiments of the present invention, embodiments of the invention will be described herein with reference to a user device receiving personalized recommendations which the user may navigate through. Those skilled in the art will recognize, however, that the present invention is not limited to such embodiments.
  • It should be understood that, given the complexity of the operations performed, the invention is implemented using computing elements and may also include communication elements that convey data between disparate locations.
  • System Overview
  • In FIG. 1, an exemplary entity search system according to an embodiment of the invention is shown. The entity search system 160 may be coupled to a plurality of users, such as a primary user 100, secondary user 102, or any number of users 104. There may be relationships between specific users, for example, the primary user 100 and secondary user 102 may be friends, family members, or co-workers. The plurality of users may be coupled to the personalized recommendations system 160 through associated user devices 110, 112, and 114. User devices may include mobile phones (e.g., a Blackberry™ phone, an iPhone™ device, an Android™ device), tablets (e.g., an iPad™ tablet), or other electronic devices.
  • The entity search system 160 may obtain inputs from any number of users 100, 102, and 104, registered with the personalized recommendations system 160. The users 100, 102, and 104 may be interconnected and have relationships with one another. The inputs may be transmitted through the user devices 110, 112, 114 via an application. The user devices 110, 112, 114 may be connected to the entity search system 160 through the internet, a wireless network, a telecommunications network, or any suitable communications network. For example, the primary user 100 may use the primary user device 110 to download and install an application issued by the entity search system 160. Through the application, the primary user 100 may edit personal ratings for entities, such as venues and restaurants, and other personal preferences, such as cuisine, type of food, price range, location, distance from current location, etc. The primary user 100 may also provide feedback items or data through the application to respond to recommendations, to add or remove entities, and/or rate an experience at an entity. In other embodiments of the invention, entities may include merchants and service providers.
  • Additional inputs to the entity search system 160 may come from external data sources, for example, a social network computer system such as the Facebook™ computer system 140(A), a public messaging system such as the Twitter™ messaging system 140(B), and/or any number of other data sources 140(N) via the user accounts 150(A), 150(B), 152(A), 152(B) with the data sources and/or user devices 110, 112. The external data sources may also provide raw location data of the users, for example, through a “check-in” through system 140(A), system 140(B), or other social networking provider system capable of providing raw location data. The other data sources 140(N) may themselves have associated user accounts, which may map directly or indirectly to user accounts of other systems.
  • Entity Searching
  • Embodiments of the invention relate to search systems of informational data, for example, information data related to an entity or a set of entities. However, embodiments of the invention are not limited to searching for informational data related to entities, but may be applied to general searching of any type of informational data.
  • An entity search system according to an embodiment of the invention, as described above, may gather data from a plurality of data sources related to a plurality of entities. Data associated with the plurality of entities (e.g., restaurants) may include, for example, location data, type of cuisine, and price. Other data associated with an entity may be evaluation data, such as a rating based on an average rating of a plurality of users, or reviews from users regarding their experience at or with the entity. All data associated with the plurality of entities may be stored in an entity database operated by the entity search system, and is updated with information gathered from the plurality of external data sources, and plurality of users, as indicated in FIG. 1.
  • It would be cumbersome, if not impossible, for a target user to individually search through the entity database to find a particular entity. Thus, the target user may enter queries to the entity search system, acting as criteria or conditions for entities that the entity search system may provide evaluation data or other data related to the entities that match the criteria to the target user.
  • Queries for a set of entities can come in many different forms. It can be a search for an explicit entity (e.g., Restaurant A in Berkeley), or a group of entities (e.g., diners). The queries may be interpreted as a set of implicit filters, and may be pre-encoded, or involve dynamic work in real-time at the time of the query. For example, a query for “Thai restaurants” may be pre-encoded to not include shoe stores, or restaurants categorized as “Italian”. An example of a dynamic filter implemented in real-time may be a query for “Thai restaurants within 0.3 miles of my current location”, which would involve determining the target user's current location, and filtering out Thai restaurants that are within 0.3 miles of the current location, such that neither a Thai restaurant 1 mile away or an Italian restaurant 0.1 mile away both would not be included in the search results. Another example of such filter might be a query for restaurants that lie in a particular direction, such as the direction a user is traveling or currently gazing.
  • What entities may be searched for depend on the embodiment of the invention and may be anything that can be represented or referred to in a computer system. In some embodiments, entities are providers of goods and services, such as restaurants or nightclubs. In other embodiments, entities are particular goods or services or events, such as a particular dish at a restaurant or a one-time or repeating event such as a concert. In others entities are documents or sections of documents, such as text pages or musical compositions, to be presented to a user. In other embodiments, an entity may be a relationship or potential relationship between two people. For example, a dating recommendation system may recommend in favor of or against a potential relationship between one user and another, or may allow searches for potential relationships meeting some criteria. In another example, entities may be individuals.
  • Search queries may involve different input modalities either alone or in combination. For example, a simple box into which users may type textual queries, a sketch pad in which users draw something they want to find, opening an application on a mobile user device which uses GPS or other location sensing technology to find items related to their location, and/or structural interfaces which let users select a subset of various attributes of entities, which may be based on evaluation data associated with the entities. A search query could involve a user looking in a particular direction or using an audio or haptic interface.
  • A user, users, sets of users, or any combination of users may use one or more personalized recommendation, evaluation, or navigation systems that evaluate entities known to a search system. “Recommendations” according to embodiments of the invention may be along a single or multiple dimensions, and/or over a discrete or continuous domain. Recommendations may be presented in a numerical, textual, pictorial, auditory, or tactile fashion.
  • Recommendations may be include any of these characteristics, either alone or in combination. For example, a user may rate a restaurant on a scale of 1, 2, 3, 4, or 5 stars, with 1 star being the lowest rating, and 5 stars being the highest rating. In another realization, a user may instead rate a restaurant on a 1-5 star scale for taste rating, 1-4 “$” scale for price rating, and add an optional one word description.
  • In some implementations, recommendations might be called “evaluations” or used in a similar manner. For example, an evaluation might be done by a team of doctors choosing a picture that best represents the mood or situation of a clinical patient, in effect, “recommending” which is the “best” image to use.
  • Another example of an evaluation or recommendation may include citizen journalists recording a five second video to make a review or recommendation, or an audio summary of a protest or event. In another example, recommendations may use three dimensional sensing technologies to have dancers record their expressions in response to listening to a composition. Another example may include a user operating an application on a mobile device, and dragging pictorial representations of dishes into different groups or piles categorized as “tasty”, “yucky”, and “only sometimes”. In another example, a recommendation may be inferred from aspects of a user's behavior such as whether the user looks in one direction or another, or whether the user walks or turns in one way or another.
  • Evaluations or recommendations of entities may include “evaluation data”, that may be, according to embodiments of the invention, inputs into a recommendation service provided by a personalized recommendation system described herein. For example, evaluation data may include ratings on a discrete star scale for the quality of a restaurant for a restaurant discovery website/product or answers to personality questions for a match making website/service. Evaluation data may be associated with one entity or a set of entities. For example, a user may rate Jane's Sushi 90/100 and may rate sushi restaurants in general 82/100.
  • Evaluation data and other data in evaluations may be used, according to embodiments of the invention, in an improved search involving filtering by evaluations. For the purpose of applying the filter, entities may be shown or hidden based on which users, sets of users, or arbitrary combinations of users thereof, who have or have not evaluated each entity. For example, a geographic entity search system may offer the option to not show the user entities which have already been evaluated. As another example, a jewelry search system may offer a group of users performing a query the ability to only show results for jewelry stores in which the group of users' parents have rated more than 80 on a 1-100 scale.
  • An evaluation filter may be used alone or in arbitrary combination with other filters. They may be broadening (OR) or narrowing (AND). For example, an English language query using Boolean syntax may be, “wines I have previously rated excellent OR (wines costing between $30-$50 AND which my wife has rated at least good) OR the wine of the day”. Other combinations than Boolean ones are possible, however. For instance, one might combine two filters with a weighting to indicate that one was more important. One might also specify in a query that one attribute of an entity be similar to (“like”) a specific datum or an attribute of another entity.
  • A generalization of filtering considered is an order of relevance for re-ranking search results. For example, with the example provided earlier about filtering all results a user had already passed evaluated, similarly, a list of search results could down-weight results based on filtering criteria. This filtering criteria could either be explicit, or generated implicitly from other context such as GPS or prior search history. As another clarifying example, restaurants rated 5 stars may appear before other restaurants not rated by the person or persons performing a search query if a “prefer my highest rated” filter is active. The ability for a user to meet the system half way by requesting changes to the ranking is referred to as user-specified re-ranking.
  • The implementation of an evaluation filter may happen at one or more parts of a search system either alone or in combination. For example, it could be implemented in real-time at the time of a query or search. If the system has control over other parts of the result pages that are served, information from the result pages could be dynamically changed. For example, if a target user looks for Japanese food, but the result is for a restaurant that serves only Yakitori (grilled chicken or meat skewers), that information (the fact that it only serves Yakitori) may be obscured, and the target user may only be informed that the restaurant serves Japanese food. However, if a target user explicitly searches for restaurants serving Yakitori, the same restaurant may appear in the search results, but the target user might see the specific information that the restaurant serves only Yakitori, rather than the restaurant serves Japanese food.
  • Some search systems involve searching by, or for location, and return search results which have locations in the real world.
  • When entity search systems according to embodiments of the invention are performing ranking of certain criteria over others, all criteria may be fused together to generate an initial order of relevance in ordering the results of a search query. A mechanism of weighting certain criteria over others may be provided to determine the initial order of relevance. This criteria is most frequently determined a priori, for instance, using hand-tuning However, there are many ways to allow user specified filtering or re-ranking order of relevance, such as using machine learning or statistical techniques such as collaborative filtering or regression.
  • One such example of user-specified re-ranking an order of relevance may be exposing parameters that the system is using. There could be many motivations for this including providing clarity, or providing mechanisms for a user to tune/refine the automatically assumed parameters of the system. These parameters could be performed a priori, or at query time, or a hybrid using both approaches. For example, when a user is searching near a specific location, an entity search system may automatically determine a maximum radius for the search. This distance could be surfaced to the user, which in turn the user could use to provide feedback about if the estimated range was ideal or not, and if not, to change that specific parameter or criteria. This also means that when designing search ranking algorithms to model behavior, the entity search system may determine an order of relevance in intuitive ways that can be explained to the user. For example, use of a penalty function in a distance parameter could lead to a gradual tradeoff of distance and other factors, so that the most relevant restaurants in the periphery appeared and both the most relevant and less relevant restaurants in the center appeared. This approach offers certain advantages but, in some cases, may be difficult for users to work with as intuitively as a maximum radius. An algorithm designer might therefore choose a maximum radius model in this case to make it easier for a user to understand the meaning of a search query they were entering.
  • Although a user may specify distance as a criteria, for example, preferring entities located in closer proximity of 0.5 miles over entities located over 0.5 miles away, the user may still hold a higher weight (e.g., higher priority) to another criteria, such as a rating of the entity. Thus, the user could specify “more heavily care about distance” vs. “less heavily care about distance. So because the user weighs the rating more heavily than the distance, the user may select a 5-star rated entity over 0.5 miles away over a 3-star rated entity within 0.5 miles. Therefore, the entity search system may display the 5-star entity higher (e.g., higher order of relevance) than the 3-star entity, even though the 5-star entity is over 0.5 miles away and the 3-star entity is within 0.5 miles. However, in comparing two 3-star entities that are both within 0.5 miles, they may be ranked in an order based on distance (e.g., entity 0.2 miles away is displayed higher than an entity 0.4 miles away).
  • The criteria for searching is not limited to geographic, but rather any sort of parameters that could be modified. For geographical, it is also not limited to city, it could be neighborhood, country, zip code, real estate plots, crime gradients, etc.
  • One example of a specific type of dynamic filter is a mechanism for automatically changing the range of a search based on the search when doing a search for physical places. This may take in additional context, including hints such as signals from search rankers, GPS data, affinity graph information, or many other different types of subsystems. This would automatically determine the range necessary, balancing the two conflicting requirements of finding many high quality results, and not having the users travel far. This could be variable depending on not just the query, but also the specific information we have learned about a user, such as an observation about the user's decisions about this tradeoff.
  • Similar to a filter or a re-ranking, is the concept of search relaxation. Search relaxation occurs when a target user makes a query for a search, but the search is unsuccessful in finding entities matching the target user's query, so the query automatically becomes generalized, or altered in a pre-determined way. There are many different forms of search relaxation, such as: 1) ignoring explicit user criteria that have been specified about the price, radius of a search, etc., 2) exposing spelling correction logic 3) automatically generalizing a query, for example, if a user looks for Yakitori, and there are not many results, the entity search system begins searching for Japanese, which is broader or more generalized than Yakitori.
  • When and how search relaxation occurs may be based on explicit search relaxation criteria determined by a product designer, or may be based on implicit search relaxation criteria derived from information learned through statistical inference. For example, a search relaxation may occur if there are few results, or if there are no results. A search relaxation could also occur if the system determined that a word in a query was extremely rare, and furthermore was similar by edit distance or another distance metric to a non-rare word, in a spelling correction system. Search relaxation criteria may be broader than this, however. Relaxation criteria, and the way in which queries are relaxed, may change over time and may be inferred from user feedback or other information. For example, a system may notice that queries of one kind are commonly followed quickly by queries of another kind, and conclude that information responsive to the second query should be provided immediately without actually requiring the second query.
  • User feedback may be an explicit response from the user interacting with the user device. The user may interact with the user device via a mobile application associated with the entity search system. Interacting with the application on the user device allows the entity search system and a user to communicate with each other, such as sending queries to the entity search system, providing criteria, editing criteria, providing and editing entity search query results, etc. User feedback may also include editing the query and re-running a search based on the new query. Some search systems may allow a user to save queries for later use. In these systems the fact a query was saved may be user feedback about a query's utility.
  • FIG. 2 shows a block diagram of an exemplary modular entity search system 160 according to an embodiment of the invention, where the entity search system 160 is configured to provide explanations of the personalized recommendations. In other embodiments of the invention, an explanations provider may be separate from the recommendations provider, and may be operated by different systems. In the example shown in FIG. 2, the entity search system 160 operates as the recommendations provider and explanation (i.e., recommendations explanation) provider.
  • The entity search system 160 may be a server computer 700, which may be a single computer, a cluster of computers, a server, or a super computer. Processes and methods implemented by or at the server computer could also be implemented by or at a client, in various embodiments. The server computer 700 may comprise a processor 740, and a non-transitory computer readable medium 750, on which code is stored. There may be several databases to store data, for example, an entity database 730(a), a factor database 730(b), a user database 730(c), and a media object database 730(d). Stored in the entity database 730(a) may be evaluation data relating to entities, including entity meta-data (e.g., location, hours of operation, specialty, rating). Entity meta-data may include any sub-category of data related to the entity. The criteria database 730(b) may store previously determined and selected factors from a plurality of users. The user database 730(c) may store user data obtained from a plurality of users, such as real-time data from social networking sites (e.g., tweets, status updates), and stored data related to a plurality of users, such as user preferences and settings (e.g., gender, dietary restrictions). The real-time data may be explicit or implicit, and may include text, images, video, audio, or other media. The user data may be directly obtained from the user or may be obtained from external data sources, such as a social networking site associated with the user. The entity search system 160 may also include a media object database 730(d), storing media objects, such as high resolution photos. The media objects may be associated with entities, recommendations, and/or the target user, and may be used in the display of recommendations and/or recommendation explanations.
  • The user database and entity database could be NoSQL databases, an SQL database, another information retrieval system such as a computer filesystem, or an in-memory data store. In other embodiments, the system could have a temporary piece of data obtained from a third-party on demand, such that data does not need to be statically or locally stored. A database could consist of multiple storage facilities, such as a cache backed by a database or a normalized authoritative database and denormalized in-memory stores.
  • The code stored on the non-transitory computer readable medium 750 may be in modules, and is executable by the processor 740 to perform functions, which are implemented as processing steps described above by the entity search system providing recommendation explanations. The non-transitory computer-readable medium 750 may comprise software modules, such as a criteria weighting module 701, a filter module 702, a filter weighting module 703, an order of relevance module 704, a search display module 705, and a query analysis module 706. The functions of these modules are described in the process flows described above.
  • The entity search system 160, to communicate with external data sources, social networking sites, and users, may include a network interface 720. The network interface 720 includes hardware and software that enables the entity search system 160 to transmit and receive data over the Internet or any other communications network (e.g., telecommunications network, cable, radio).
  • Exemplary User Display and Interfaces
  • Filtering options may be dynamic based on information from the search using a query, and vice versa (the search options can be dynamic based on information from the filters). For example, if a user has entered information into a location search box (coupled with a query search box), and some criteria is used to determine that the user is specifying a location other than the current one, then using a radius-based distance criteria may not make sense. For example, if a user enters a city, it might be more prudent to search all locations in a city, rather than scoping by a radius around a specific location. Thus, if it is determined that such a filter is not prudent, it may be dynamically changed, or stripped from the user interface, to reinforce a user's understanding about said functionality. In some cases a filtering option may be automatically enabled, and this information may be communicated to the user or not, based on the context of the search, such as whether the user is searching by location and radius or all locations in a city, or whether the user is searching from a mobile device rather than a desktop computer. User displays of results are not limited to display screens but can include generally visual displays such as heads-up displays, audio results, and haptic feedback.
  • As shown in examples in FIGS. 3 and 4, the filters have been changed, because the term “Berkeley” has been specified in the top right location box. In FIG. 3, an exemplary user display 300 is illustrated for a user to customize filter parameters as criteria for a search, or for an order of relevance. The user may enter a search query in an input box 304, for example, “pizza” or “cheap eats”. In input box 306, the user may enter a location, select an option to choose “near me” or “current location,” which may enable the user device to determine the current location. The user device may use GPS (Global Positioning System), or other systems to determine the current location of the user device. Section 308 of the user display 300 may indicate a searching criteria “Search”, which could be by “Personal” 308(a) (e.g., personal preferences), or by “Distance” 308(b). A user may also indicate a “Range” 310, and may include a “Smart” option 310(a), in which the entity search system may determine the best range. Otherwise, the user may select a desired range in the options shown in 310(b) (e.g., 0.3 mi, 1 mi, 5 mi, and 15 mi). The user display 300 may also allow the user to set “Price” criteria 312, with options shown as 312(a) using “$”, with “$” indicating inexpensive, while “$$$$$” indicates expensive. The user may also select criteria to “Hide” 314, for example, to hide entities that the user has already evaluated 314(a) (e.g., “Placed I've Rated”), or chain restaurants 314(b) (e.g., “Big Chains”). When the user has completed selecting and augmenting the criteria, the user may select “Done” 302, to save the criteria.
  • In FIG. 4, an exemplary user display 400 is illustrated for a user to customize filter parameters as criteria for a search, or for an order of relevance. The user may enter a search query in an input box 404, for example, “pizza” or “cheap eats”. In input box 406, the user may enter a location, for example, “Berkeley” the prompting a different set of criteria options than shown in FIG. 3. Section 408 of the user display 400 may indicate a searching criteria “Search”, which could be by “Personal” 408(a) (e.g., personal preferences), or by “Distance” 408(b). However, since the user has inputted into the location box 406 “Berkeley,” the “Range” section 410, now displays a “Use Current Location” option 410(a), in which the entity search system may determine, using GPS or other systems, to determine the user's specific location within the explicit location in 406, Berkeley. The user display 400 may also allow the user to set “Price” criteria 412, with options shown as 412(a) using the dollar sign symbol “$”, with “$” indicating inexpensive, while “$$$$$” indicates expensive. The user may also select criteria to “Hide” 414, for example, to hide entities that the user has already evaluated 414(a) (e.g., “Placed I've Rated”), or chain restaurants 414(b) (e.g., “Big Chains”). When the user has completed selecting and augmenting the criteria, the user may select “Done” 402, to save the criteria. Upon selecting certain criteria, the entity search system may search in real-time as the criteria are being augmented, and shown in a textual display 416, preliminary results. For example, in the user display 400, the textual display 416 shows that no entities could be found with a “$” or “$$” price in the specified location, Berkeley.
  • FIGS. 5 and 6 show how the chosen parameters can differ based upon the query (City, vs. a specified range). FIG. 5 illustrates an exemplary user display 500 with search results for the primary user. The user may enter a search query in an input box 504, for example, “pizza” or “cheap eats”. In location box 506, the user may enter a location, for example, “Berkeley”. To augment other criteria for search, the user may select “Refine your search” 508 to display other criteria that the user may select and/or modify in the search. The user display 500 may show a set of entities, for example, “Jupiter's” in section 510, “Triple Rock Brewery & Alehouse” in 512, and “Bette's Oceanview Diner” in 514. Each section may display entity data, such as a name of the entity 510(a) “Jupiter's”, a type of food or cuisine 510(b) “Pizza”, a price range 510(c) “$$”, location data 510(d) “Berkeley—33.1 mi” (e.g., city and distance from current location), and evaluation data 510(g) “#2 Second most popular Pizza in Berkeley, 3382 Mentions” (e.g., rating, review, number of check-ins, etc.). Further, other navigation indicators may be displayed, such as an arrow 510(e), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Jupiter's”. There may also be other options 510(f), such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to ask for help. Entity “Triple Rock Brewery & Alehouse” in section 512 has similar options, indicators, and data, as in section 510 for “Jupiter's”. If the user wishes to view the results displayed in a different layout, the user may select 502 for a tiled format, or other layout.
  • FIG. 6 illustrates an exemplary user display 600 with search results for the primary user. The user may enter a search query in an input box 604, for example, “pizza” or “cheap eats”. To augment other criteria for search, the user may select “Refine your search” 608 to display other criteria that the user may select and/or modify in the search. In location box 606, the user may select “Near Me”, which would augment the search and display the search results differently from that shown in FIG. 5. The “Near Me” option would use the current location of the user device, determined using GPS or other systems. The user display 600 may show a new set of entities from those shown in FIG. 5, for example, “Hobee's Restaurant” in section 610, and “Lozano's Brushless Car . . .” in 612. Each section may display entity data, such as a name of the entity 610(a) “Hobee's Restaurant”, a type of food or cuisine 610(b) “American”, a price range 610(c) “$$”, location data 610(d) “Palo Alto—0.3 mi” (e.g., city and distance from current location), and evaluation data 610(g) “#3 Third most popular American in Palo Alto, 568 Mentions” (e.g., rating, review, number of check-ins, etc.). Further, other navigation indicators may be displayed, such as an arrow 610(e), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Hobee's Restaurant”. There may also be other options 610(f), such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to to ask for help. Entity “Lozano Brushless Car” in section 612 may have similar options, indicators, and data, as in section 610 for “Hobee's Restaurant”. If the user wishes to view the results displayed in a different layout, the user may select 602 for a tiled format, or other layout.
  • In another embodiment of the invention, the entity search system may apply a search relaxation, which occurs when a target user makes a query for a search, but the search is unsuccessful in finding sufficient entities matching the target user's query, so the query automatically becomes generalized, or altered in a pre-determined way. Search relaxation may happen in a way that is not exposed to the target user, or it could be explicitly explained to the target user why the search query and/or criteria have been relaxed, as shown in FIG. 7.
  • FIG. 7 illustrates an exemplary user display 700 with search results for the primary user. The user may enter a search query in an input box 704, for example, “noodle theory”. To augment other criteria for search, the user may select “Refine your search” 708 to display other criteria that the user may select and/or modify in the search. In location box 706, the user may select “Near Me”. If the user wishes to view the results displayed in a different layout, the user may select 702 for a tiled format, or other layout. The “Near Me” option would use the current location of the user device, determined using GPS or other systems. The user display 700 may show in a textual description 710, which no entities matching the search query (e.g., “noodle theory”) within the specified range (e.g., 0.3 miles). The entity search system may then make other recommendations matching the search query, but with relaxed range criteria. For example, “Noodle Theory” in 712. Again, each section may display entity data, such as a name of the entity 712(a) “Noodle Theory”, a type of food or cuisine 712(b) “Asian”, a price range 712(c) “$$”, and location data 712(d) “Oakland—31.4 mi” (e.g., city and distance from current location). Further, other navigation indicators may be displayed, such as an arrow 712(e), which would direct the user to a display with more detailed entity data regarding the specific entity, in this example, “Noodle Theory”. There may also be other options 712(f), such as an informative display about a recommendation from a recommendation system, a product logo, an icon to add the entity to a favorites list, or an icon to ask for help.
  • The description provides preferred exemplary embodiment(s) only, and is not intended to limit the scope, applicability or configuration of the invention. Rather, the description of the preferred exemplary embodiment(s) will provide those skilled in the art with an enabling description for implementing a preferred exemplary embodiment of the invention. It is to be understood that various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the invention as set forth in the appended claims.
  • Specific details are given in the description to provide a thorough understanding of the embodiments. However, it will be understood by one of ordinary skill in the art that the embodiments may be practiced without these specific details. For example, systems may be shown in block diagrams in order not to obscure the embodiments in unnecessary detail. In other instances, well-known processes, structures and techniques may be shown without unnecessary detail in order to avoid obscuring the embodiments.
  • Also, it is noted that the embodiments may be described as a process which is depicted as a flowchart, a flow diagram, a data flow diagram, a structure diagram, or a block diagram. Although a flowchart may describe the operations as a sequential process, many of the operations may be performed in parallel or concurrently. In addition, the order of the operations may be re-arranged. A process is terminated when its operations are completed, but could have additional steps not included in the figure. A process may correspond to a method, a function, a procedure, a subroutine, a subprogram, etc. When a process corresponds to a function, its termination corresponds to a return of the function to the calling function or the main function.
  • Moreover, as disclosed herein, the term “storage medium” may represent one or more devices for storing data, including read only memory (ROM), random access memory (RAM), magnetic RAM, core memory, magnetic disk storage mediums, optical storage mediums, flash memory devices and/or other machine readable mediums for storing information. The term “computer-readable medium” includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other mediums capable of storing, containing or carrying instruction(s) and/or data.
  • Furthermore, embodiments may be implemented by hardware, software, firmware, middleware, microcode, hardware description languages, or any combination thereof. When implemented in software, firmware, middleware or microcode, the program code or code segments to perform the necessary tasks may be stored in a machine readable medium such as storage medium. A processor(s) may perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and/or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
  • Further embodiments may be envisioned to one of ordinary skill in the art after reading this disclosure. In other embodiments, combinations or sub-combinations of the above disclosed invention may be advantageously made. The example arrangements of components are shown for purposes of illustration and it should be understood that combinations, additions, re-arrangements, and the like are contemplated in alternative embodiments of the present invention. Thus, while the invention has been described with respect to exemplary embodiments, one skilled in the art will recognize that numerous modifications are possible.
  • For example, the processes described herein may be implemented using hardware components, software components, and/or any combination thereof. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the claims and that the invention is intended to cover all modifications and equivalents within the scope of the following claims.

Claims (38)

1. A computer-implemented method for providing searches for entities to a primary user, the method comprising:
Obtaining user data related to a plurality of users relevant to the primary user;
storing the user data at the server computer;
obtaining entity data from a plurality of data sources, wherein the entity data is associated with an entity in a plurality of entities
storing the entity data, wherein the entity data associated with the plurality of entities is stored in an entity database;
receiving a query for a search for relevant entities;
searching for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data;
determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be communicated to the primary user;
determining the initial order of relevance of the set of relevant entities based on the set of criteria;
communicating to the primary user, on a user device, the set of relevant entities in the initial order of relevance to the primary user;
obtaining, via the user device, feedback data from the user related to the search for the set of relevant entities;
augmenting the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and
communicating, via the user device, the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
2. The computer-implemented method of claim 1, further comprising:
obtaining, via the user device, feedback data from the user related to the initial order of relevance for the set of relevant entities;
augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities based on the feedback data; and
communicating, via the user device, the set of relevant entities to the primary user based on the adjusted order of relevance.
3. The computer-implemented method of claim 1, further comprising:
assigning a corresponding weight of each criteria in the set of criteria;
determining the initial order of relevance of the set of relevant entities based on the weight of each criteria in the set of criteria;
obtaining, via the user device, feedback data from the user related to the corresponding weight of each criteria in the set of criteria;
augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities, based on the feedback data related to the corresponding weight of each criteria in the set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the adjusted order of relevance.
4. The computer-implemented method of claim 1, wherein the set of criteria includes one or more filters applied to entity data related to the plurality of entities.
5. The computer-implemented method of claim 4, wherein the one or more filters are applied either alone or in combination based on a corresponding weight assigned to each filter.
6. The computer-implemented method of claim 3, wherein one or more criteria in the set of criteria related to the query is implicitly determined, and is stored in a database.
7. The computer-implemented method of claim 3, wherein one or more criteria in the set of criteria related to the query is determined in real-time, by the server computer, based on the query.
8. The computer-implemented method of claim 7, wherein one or more criteria in the set of criteria related to the query is based on feedback data from the primary user.
9. The computer-implemented method of claim 3, wherein the one or more criteria includes geographic location, distance radius around the geographic location, or current location data.
10. The computer-implemented method of claim 9, wherein the current location data is obtained via the user device.
11. The computer-implemented method of claim 3, wherein the one or more criteria includes one or more attributes of entity data related to the plurality of entities, wherein the attribute includes cuisine, price, type, or environment.
12. The computer-implemented method of claim 1, wherein communicating the set of relevant entities may be numerical, textual, pictorial, auditory, tactile, either alone or in combination.
13. The computer-implemented method of claim 1, wherein the query meets a search relaxation criterion, the method further comprises:
ignoring one or more criteria in the set of criteria, thereby creating a reduced set of criteria;
determining a set of relevant entities based on the reduced set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the reduced set of criteria.
14. The computer-implemented method of claim 1, further comprising:
determining an error in the query;
correcting the error in the query, thereby creating a corrected set of criteria;
determining a set of relevant entities based on the corrected set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the corrected set of criteria.
15. The computer-implemented method of claim 3, further comprising:
broadening one or more criteria in the set of criteria, thereby creating a broadened set of criteria;
determining a set of relevant entities based on the broadened set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the broadened set of criteria.
16. The computer-implemented method of claim 1, wherein the entity provides goods or services to the target user.
17. The computer-implemented method of claim 13, wherein ignoring one or more criteria to create a reduce set of criteria is based on the corresponding weight of each criteria.
18. The computer-implemented method of claim 13, wherein ignoring one or more criteria to create the reduced set of criteria is based on a previous user response to each criteria.
19. A computer-implemented method for providing searches for entities to a primary user, the method comprising:
receiving a query for a search for relevant entities;
searching, at a server computer, for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data;
receiving location data from the primary user;
automatically determining a relevant distance from the location data of the primary user;
determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be communicated to the primary user;
determining the initial order of relevance of the set of relevant entities based on the set of criteria and the relevant distance;
communicating to the primary user, on a user device, the set of relevant entities in the initial order of relevance to the primary user;
obtaining, via the user device, feedback data from the user related to the search for the set of relevant entities;
augmenting the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and
communicating, via the user device, the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
20. A server computer comprising a processor and a non-transitory computer readable medium, the non-transitory computer readable medium comprising code executable by the processor to implement a method for providing searches for entities to a primary user, the method comprising:
obtaining, at the server computer, user data related to a plurality of users relevant to the primary user;
storing the user data at the server computer;
obtaining, at the server computer, entity data from a plurality of data sources, wherein the entity data is associated with an entity in a plurality of entities
storing the entity data, wherein the entity data associated with the plurality of entities is stored in an entity database;
receiving a query for a search for relevant entities;
searching, at the server computer, for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data;
determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be communicated to the primary user;
determining the initial order of relevance of the set of relevant entities based on the set of criteria;
communicating to the primary user, on a user device, the set of relevant entities in the initial order of relevance to the primary user;
obtaining, via the user device, feedback data from the user related to the search for the set of relevant entities;
augmenting the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and
communicating, via the user device, the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
21. The computer-implemented method of claim 20, further comprising:
obtaining, via the user device, feedback data from the user related to the initial order of relevance for the set of relevant entities;
augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities based on the feedback data; and
communicating, via the user device, the set of relevant entities to the primary user based on the adjusted order of relevance.
22. The computer-implemented method of claim 20, further comprising:
assigning a corresponding weight of each criteria in the set of criteria;
determining the initial order of relevance of the set of relevant entities based on the weight of each criteria in the set of criteria;
obtaining, via the user device, feedback data from the user related to the corresponding weight of each criteria in the set of criteria;
augmenting the initial order of relevance for the set of relevant entities, thereby creating an adjusted order of relevance for the set of relevant entities, based on the feedback data related to the corresponding weight of each criteria in the set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the adjusted order of relevance.
23. The computer-implemented method of claim 20, wherein the set of criteria includes one or more filters applied to entity data related to the plurality of entities.
24. The computer-implemented method of claim 23, wherein the one or more filters are applied either alone or in combination based on a corresponding weight assigned to each filter.
25. The computer-implemented method of claim 22, wherein one or more criteria in the set of criteria related to the query is implicitly determined, and is stored in a database.
26. The computer-implemented method of claim 22, wherein one or more criteria in the set of criteria related to the query is determined in real-time, by the server computer, based on the query.
27. The computer-implemented method of claim 26, wherein one or more criteria in the set of criteria related to the query is based on feedback data from the primary user.
28. The computer-implemented method of claim 22, wherein the one or more criteria includes geographic location, distance radius around the geographic location, or current location data.
29. The computer-implemented method of claim 28, wherein the current location data is obtained via the user device.
30. The computer-implemented method of claim 22, wherein the one or more criteria includes one or more attributes of entity data related to the plurality of entities, wherein the attribute includes cuisine, price, type, or environment.
31. The computer-implemented method of claim 20, wherein communicating the set of relevant entities may be numerical, textual, pictorial, auditory, tactile, either alone or in combination.
32. The computer-implemented method of claim 20, wherein the query meets a search relaxation criterion, the method further comprises:
ignoring one or more criteria in the set of criteria, thereby creating a reduced set of criteria;
determining a set of relevant entities based on the reduced set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the reduced set of criteria.
33. The computer-implemented method of claim 20, further comprising:
determining an error in the query;
correcting the error in the query, thereby creating a corrected set of criteria;
determining a set of relevant entities based on the corrected set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the corrected set of criteria.
34. The computer-implemented method of claim 22, further comprising:
broadening one or more criteria in the set of criteria, thereby creating a broadened set of criteria;
determining a set of relevant entities based on the broadened set of criteria and the corresponding weight of each criteria in the reduced set of criteria; and
communicating, via the user device, the set of relevant entities to the primary user based on the broadened set of criteria.
35. The computer-implemented method of claim 20, wherein the entity provides goods or services to the target user.
36. The computer-implemented method of claim 32, wherein ignoring one or more criteria to create a reduce set of criteria is based on the corresponding weight of each criteria.
37. The computer-implemented method of claim 32, wherein ignoring one or more criteria to create the reduced set of criteria is based on a previous user response to each criteria.
38. A computer-implemented method for providing searches for entities to a primary user, the method comprising:
receiving a query for a search for relevant entities;
searching, at a server computer, for a set of relevant entities relevant to the primary user from the plurality of entities based on the query, entity data, and user data;
receiving location data from the primary user;
automatically determining a relevant distance from the location data of the primary user;
determining a set of criteria for an initial order of relevance, wherein the initial order of relevance is an order in which the set of relevant entities are to be communicated to the primary user;
determining the initial order of relevance of the set of relevant entities based on the set of criteria and the relevant distance;
communicating to the primary user, on a user device, the set of relevant entities in the initial order of relevance to the primary user;
obtaining, via the user device, feedback data from the user related to the search for the set of relevant entities;
augmenting the search for the set of relevant entities, thereby updating the set of relevant entities, based on the feedback data; and
communicating, via the user device, the updated set of relevant entities to the primary user, thereby providing an augmented search for relevant entities to the primary user.
US13/553,684 2011-07-20 2012-07-19 Method and apparatus for allowing users to augment searches Abandoned US20130024449A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/553,684 US20130024449A1 (en) 2011-07-20 2012-07-19 Method and apparatus for allowing users to augment searches

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161510004P 2011-07-20 2011-07-20
US201161510003P 2011-07-20 2011-07-20
US201161509995P 2011-07-20 2011-07-20
US201161509999P 2011-07-20 2011-07-20
US13/553,684 US20130024449A1 (en) 2011-07-20 2012-07-19 Method and apparatus for allowing users to augment searches

Publications (1)

Publication Number Publication Date
US20130024449A1 true US20130024449A1 (en) 2013-01-24

Family

ID=47556530

Family Applications (3)

Application Number Title Priority Date Filing Date
US13/553,646 Active 2033-10-17 US9189551B2 (en) 2011-07-20 2012-07-19 Method and apparatus for category based navigation
US13/553,684 Abandoned US20130024449A1 (en) 2011-07-20 2012-07-19 Method and apparatus for allowing users to augment searches
US13/553,599 Abandoned US20130024464A1 (en) 2011-07-20 2012-07-19 Recommendation engine that processes data including user data to provide recommendations and explanations for the recommendations to a user

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US13/553,646 Active 2033-10-17 US9189551B2 (en) 2011-07-20 2012-07-19 Method and apparatus for category based navigation

Family Applications After (1)

Application Number Title Priority Date Filing Date
US13/553,599 Abandoned US20130024464A1 (en) 2011-07-20 2012-07-19 Recommendation engine that processes data including user data to provide recommendations and explanations for the recommendations to a user

Country Status (1)

Country Link
US (3) US9189551B2 (en)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151961A1 (en) * 2010-08-26 2013-06-13 Kyocera Corporation Character string retrieval apparatus
US8732101B1 (en) 2013-03-15 2014-05-20 Nara Logics, Inc. Apparatus and method for providing harmonized recommendations based on an integrated user profile
US8756187B2 (en) 2011-09-28 2014-06-17 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US20140278992A1 (en) * 2013-03-15 2014-09-18 Nfluence Media, Inc. Ad blocking tools for interest-graph driven personalization
US9501503B2 (en) 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
US9619567B2 (en) 2011-06-06 2017-04-11 Nfluence Media, Inc. Consumer self-profiling GUI, analysis and rapid information presentation tools
US20170144566A1 (en) * 2014-09-23 2017-05-25 Bayerische Motoren Werke Aktiengesellschaft Cell-Contacting System for a Motor-Vehicle Battery Module and a Motor-Vehicle Battery Module
US9898756B2 (en) 2011-06-06 2018-02-20 autoGraph, Inc. Method and apparatus for displaying ads directed to personas having associated characteristics
US20180307707A1 (en) * 2013-04-25 2018-10-25 Google Inc. System and method for presenting condition-specific geographic imagery
US10467677B2 (en) 2011-09-28 2019-11-05 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US10789526B2 (en) 2012-03-09 2020-09-29 Nara Logics, Inc. Method, system, and non-transitory computer-readable medium for constructing and applying synaptic networks
US11151617B2 (en) 2012-03-09 2021-10-19 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US11709851B2 (en) 2011-07-20 2023-07-25 Opentable, Inc. Method and apparatus for quickly evaluating entities
US11727249B2 (en) 2011-09-28 2023-08-15 Nara Logics, Inc. Methods for constructing and applying synaptic networks

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8549407B2 (en) * 2007-12-05 2013-10-01 Ebay Inc. Multi-dimensional dynamic visual browsing
US10269057B2 (en) * 2010-07-19 2019-04-23 Payme, Inc. Mobile system and method for payments and non-financial transactions
US20130031190A1 (en) 2011-07-29 2013-01-31 Xtreme Labs Inc. Method and system for providing notifications
CN103425659B (en) * 2012-05-15 2017-06-09 阿里巴巴集团控股有限公司 Information search method and server based on geographical position
US9990745B2 (en) * 2012-11-30 2018-06-05 Facebook, Inc. Personalized-recommendation graph
US9146986B2 (en) * 2013-03-14 2015-09-29 Facebook, Inc. Systems, methods, and apparatuses for implementing an interface to view and explore socially relevant concepts of an entity graph
US20150025995A1 (en) * 2013-07-19 2015-01-22 Ebay Inc. Generating recommendations based on transaction data
US10510018B2 (en) 2013-09-30 2019-12-17 Manyworlds, Inc. Method, system, and apparatus for selecting syntactical elements from information as a focus of attention and performing actions to reduce uncertainty
US20150095278A1 (en) * 2013-09-30 2015-04-02 Manyworlds, Inc. Adaptive Probabilistic Semantic System and Method
US11188543B2 (en) * 2013-10-14 2021-11-30 International Business Machines Corporation Utilizing social information for recommending an application
US9531722B1 (en) 2013-10-31 2016-12-27 Google Inc. Methods for generating an activity stream
US9542457B1 (en) 2013-11-07 2017-01-10 Google Inc. Methods for displaying object history information
US9614880B1 (en) 2013-11-12 2017-04-04 Google Inc. Methods for real-time notifications in an activity stream
US9509772B1 (en) 2014-02-13 2016-11-29 Google Inc. Visualization and control of ongoing ingress actions
US9430476B2 (en) * 2014-03-13 2016-08-30 GM Global Technology Operations LLC Method and apparatus of user recommendation system for in-vehicle apps
CN103902670B (en) * 2014-03-17 2016-04-13 百度在线网络技术(北京)有限公司 Search recommend method and device
KR20150126196A (en) * 2014-05-02 2015-11-11 삼성전자주식회사 Data processing apparatus and method for processing data based on user feeling
US9626361B2 (en) * 2014-05-09 2017-04-18 Webusal Llc User-trained searching application system and method
US9536199B1 (en) 2014-06-09 2017-01-03 Google Inc. Recommendations based on device usage
US9507791B2 (en) 2014-06-12 2016-11-29 Google Inc. Storage system user interface with floating file collection
US10078781B2 (en) 2014-06-13 2018-09-18 Google Llc Automatically organizing images
US20160124959A1 (en) 2014-10-31 2016-05-05 Google Inc. System and method to recommend a bundle of items based on item/user tagging and co-install graph
US9870420B2 (en) 2015-01-19 2018-01-16 Google Llc Classification and storage of documents
US10311499B1 (en) * 2015-03-23 2019-06-04 Amazon Technologies, Inc. Clustering interactions for user missions
CN104850641B (en) * 2015-05-26 2018-08-21 无线生活(杭州)信息科技有限公司 A kind of method and device of recommendation information
US10580024B2 (en) * 2015-12-15 2020-03-03 Adobe Inc. Consumer influence analytics with consumer profile enhancement
US10362137B2 (en) * 2015-12-28 2019-07-23 Verizon Patent And Licensing Inc. Hebbian learning-based recommendations for social networks
US20170236223A1 (en) * 2016-02-11 2017-08-17 International Business Machines Corporation Personalized travel planner that identifies surprising events and points of interest
US9743243B1 (en) 2016-03-16 2017-08-22 International Business Machines Corporation Location context inference based on user mobile data with uncertainty
US20180032621A1 (en) * 2016-08-01 2018-02-01 Yuppr, Inc. Location and social aware, multi-dimensional, dynamic, positive recommendations
US10607273B2 (en) * 2016-12-28 2020-03-31 Google Llc System for determining and displaying relevant explanations for recommended content
US11301774B2 (en) * 2017-02-28 2022-04-12 Nec Corporation System and method for multi-modal graph-based personalization
US20190114712A1 (en) * 2017-10-16 2019-04-18 Zepa Financial Technology Ltd. System and method for supporting decision according to multiple aggregated decisions
CN108416616A (en) * 2018-02-05 2018-08-17 阿里巴巴集团控股有限公司 The sort method and device of complaints and denunciation classification
US11112950B2 (en) 2018-05-22 2021-09-07 Conduent Business Services, Llc Personalizing application interfaces based on usage
CN108805341A (en) * 2018-05-25 2018-11-13 夏传友 Distributed optimization method, apparatus, terminal device and the storage medium of navigation circuit
US11301513B2 (en) * 2018-07-06 2022-04-12 Spotify Ab Personalizing explainable recommendations with bandits
CN110874737B (en) * 2018-09-03 2024-06-18 京东科技控股股份有限公司 Payment mode recommendation method and device, electronic equipment and storage medium
CN109524095A (en) * 2018-10-23 2019-03-26 平安医疗健康管理股份有限公司 A kind of service push method, device, server and medium
US20220238204A1 (en) * 2021-01-25 2022-07-28 Solsten, Inc. Systems and methods to link psychological parameters across various platforms
CN116645211B (en) * 2023-05-15 2024-05-10 中信建投证券股份有限公司 Recommended user information generation method, apparatus, device and computer readable medium

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070239702A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Using connectivity distance for relevance feedback in search
US20080244429A1 (en) * 2007-03-30 2008-10-02 Tyron Jerrod Stading System and method of presenting search results
US20090076928A1 (en) * 2007-08-28 2009-03-19 Needish, Inc. System and method for automating RFP process and matching RFP requests to relevant vendors
US20090293019A1 (en) * 2008-05-22 2009-11-26 Keith Raffel User interface having slider controls for weighted parameters in searching or decision making processes
US20100023508A1 (en) * 2003-09-30 2010-01-28 Microsoft Corporation Search engine enhancement using mined implicit links
US20100076968A1 (en) * 2008-05-27 2010-03-25 Boyns Mark R Method and apparatus for aggregating and presenting data associated with geographic locations
US7876214B1 (en) * 2002-06-27 2011-01-25 Earthcomber, Llc System and method for providing reviews to a mobile user of restaurants having attributes matching a stated preference
US20110231383A1 (en) * 2010-03-22 2011-09-22 Barry Smyth Systems and methods for user interactive social metasearching

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US6370513B1 (en) * 1997-08-08 2002-04-09 Parasoft Corporation Method and apparatus for automated selection, organization, and recommendation of items
EP1156424A2 (en) * 2000-05-17 2001-11-21 Matsushita Electric Industrial Co., Ltd. Information recommendation apparatus and information recommendation system
US8185487B2 (en) * 2001-02-12 2012-05-22 Facebook, Inc. System, process and software arrangement for providing multidimensional recommendations/suggestions
WO2003054760A2 (en) * 2001-12-21 2003-07-03 Accenture Global Services Gmbh Evaluation of a plurality of alternatives based on a plurality of individual preferences
EP1605619A4 (en) * 2003-02-28 2012-01-11 Ntt Docomo Inc Radio communication system and radio communication method
US7606772B2 (en) 2003-11-28 2009-10-20 Manyworlds, Inc. Adaptive social computing methods
CN1890682A (en) 2003-12-03 2007-01-03 皇家飞利浦电子股份有限公司 Enhanced collaborative filtering technique for recommendation
US7818394B1 (en) 2004-04-07 2010-10-19 Cisco Techology, Inc. Social network augmentation of search results methods and apparatus
US7707220B2 (en) 2004-07-06 2010-04-27 Icosystem Corporation Methods and apparatus for interactive searching techniques
EP1846810A4 (en) * 2005-01-11 2009-04-22 Trusted Opinion Inc Method and system for providing customized recommendations to users
WO2007002820A2 (en) 2005-06-28 2007-01-04 Yahoo! Inc. Search engine with augmented relevance ranking by community participation
US8290810B2 (en) * 2005-09-14 2012-10-16 Jumptap, Inc. Realtime surveying within mobile sponsored content
US7853485B2 (en) 2005-11-22 2010-12-14 Nec Laboratories America, Inc. Methods and systems for utilizing content, dynamic patterns, and/or relational information for data analysis
US20070150342A1 (en) 2005-12-22 2007-06-28 Law Justin M Dynamic selection of blended content from multiple media sources
US7653761B2 (en) 2006-03-15 2010-01-26 Microsoft Corporation Automatic delivery of personalized content to a portable media player with feedback
US20070282621A1 (en) 2006-06-01 2007-12-06 Flipt, Inc Mobile dating system incorporating user location information
US20080104059A1 (en) 2006-11-01 2008-05-01 Dininginfo Llc Restaurant review search system and method for finding links to relevant reviews of selected restaurants through the internet by use of an automatically configured, sophisticated search algorithm
NO325864B1 (en) 2006-11-07 2008-08-04 Fast Search & Transfer Asa Procedure for calculating summary information and a search engine to support and implement the procedure
US7849104B2 (en) 2007-03-01 2010-12-07 Microsoft Corporation Searching heterogeneous interrelated entities
US9053195B2 (en) 2007-07-19 2015-06-09 Grant Chieh-Hsiang Yang Method and system for user and reference ranking in a database
US9626685B2 (en) 2008-01-04 2017-04-18 Excalibur Ip, Llc Systems and methods of mapping attention
US8145619B2 (en) * 2008-02-11 2012-03-27 International Business Machines Corporation Method and system for identifying companies with specific business objectives
US8306921B2 (en) 2008-02-13 2012-11-06 Toyota Motor Engineering & Manufacturing North America, Inc. Mobile recommendation and reservation system
US8538811B2 (en) 2008-03-03 2013-09-17 Yahoo! Inc. Method and apparatus for social network marketing with advocate referral
US20090234664A1 (en) * 2008-03-11 2009-09-17 Schaffnit Wayne A System and method for recommending entertainment venues for specific occasions
US8095432B1 (en) 2009-01-30 2012-01-10 Intuit Inc. Recommendation engine for social networks
US8244564B2 (en) 2009-03-31 2012-08-14 Richrelevance, Inc. Multi-strategy generation of product recommendations
WO2010141429A1 (en) 2009-06-01 2010-12-09 Sean Christopher Timm Providing suggested web search queries based on click data of stored search queries
US8359285B1 (en) 2009-09-18 2013-01-22 Amazon Technologies, Inc. Generating item recommendations
US20110125759A1 (en) * 2009-11-17 2011-05-26 Yoono, Inc Method and system to contextualize information being displayed to a user
US8285840B2 (en) 2010-03-15 2012-10-09 Cellco Partnership Using social networking to help users purchase mobile applications and devices
US20110270774A1 (en) * 2010-04-30 2011-11-03 Microsoft Corporation Group Recommendations in Social Networks
US8719198B2 (en) 2010-05-04 2014-05-06 Microsoft Corporation Collaborative location and activity recommendations
US8347211B1 (en) 2010-06-22 2013-01-01 Amazon Technologies, Inc. Immersive multimedia views for items
US8682918B2 (en) * 2010-11-22 2014-03-25 Salesforce.Com, Inc. Method and system for making content-based recommendations
US20120209839A1 (en) * 2011-02-15 2012-08-16 Microsoft Corporation Providing applications with personalized and contextually relevant content
US20120278252A1 (en) * 2011-04-27 2012-11-01 Sethna Shaun B System and method for recommending establishments and items based on consumption history of similar consumers
US8751472B2 (en) * 2011-05-19 2014-06-10 Microsoft Corporation User behavior model for contextual personalized recommendation
US9449106B2 (en) 2013-03-08 2016-09-20 Opentable, Inc. Context-based queryless presentation of recommendations

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7876214B1 (en) * 2002-06-27 2011-01-25 Earthcomber, Llc System and method for providing reviews to a mobile user of restaurants having attributes matching a stated preference
US20100023508A1 (en) * 2003-09-30 2010-01-28 Microsoft Corporation Search engine enhancement using mined implicit links
US20070239702A1 (en) * 2006-03-30 2007-10-11 Microsoft Corporation Using connectivity distance for relevance feedback in search
US20080244429A1 (en) * 2007-03-30 2008-10-02 Tyron Jerrod Stading System and method of presenting search results
US20090076928A1 (en) * 2007-08-28 2009-03-19 Needish, Inc. System and method for automating RFP process and matching RFP requests to relevant vendors
US20090293019A1 (en) * 2008-05-22 2009-11-26 Keith Raffel User interface having slider controls for weighted parameters in searching or decision making processes
US20100076968A1 (en) * 2008-05-27 2010-03-25 Boyns Mark R Method and apparatus for aggregating and presenting data associated with geographic locations
US20110231383A1 (en) * 2010-03-22 2011-09-22 Barry Smyth Systems and methods for user interactive social metasearching

Cited By (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130151961A1 (en) * 2010-08-26 2013-06-13 Kyocera Corporation Character string retrieval apparatus
US9740286B2 (en) * 2010-08-26 2017-08-22 Kyocera Corporation Character string retrieval apparatus
US9898756B2 (en) 2011-06-06 2018-02-20 autoGraph, Inc. Method and apparatus for displaying ads directed to personas having associated characteristics
US9619567B2 (en) 2011-06-06 2017-04-11 Nfluence Media, Inc. Consumer self-profiling GUI, analysis and rapid information presentation tools
US11709851B2 (en) 2011-07-20 2023-07-25 Opentable, Inc. Method and apparatus for quickly evaluating entities
US9009088B2 (en) 2011-09-28 2015-04-14 Nara Logics, Inc. Apparatus and method for providing harmonized recommendations based on an integrated user profile
US10423880B2 (en) 2011-09-28 2019-09-24 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US11727249B2 (en) 2011-09-28 2023-08-15 Nara Logics, Inc. Methods for constructing and applying synaptic networks
US8909583B2 (en) 2011-09-28 2014-12-09 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US11651412B2 (en) 2011-09-28 2023-05-16 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US9449336B2 (en) 2011-09-28 2016-09-20 Nara Logics, Inc. Apparatus and method for providing harmonized recommendations based on an integrated user profile
US8756187B2 (en) 2011-09-28 2014-06-17 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US10467677B2 (en) 2011-09-28 2019-11-05 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US11151617B2 (en) 2012-03-09 2021-10-19 Nara Logics, Inc. Systems and methods for providing recommendations based on collaborative and/or content-based nodal interrelationships
US10789526B2 (en) 2012-03-09 2020-09-29 Nara Logics, Inc. Method, system, and non-transitory computer-readable medium for constructing and applying synaptic networks
US20140278992A1 (en) * 2013-03-15 2014-09-18 Nfluence Media, Inc. Ad blocking tools for interest-graph driven personalization
US8732101B1 (en) 2013-03-15 2014-05-20 Nara Logics, Inc. Apparatus and method for providing harmonized recommendations based on an integrated user profile
US10331733B2 (en) * 2013-04-25 2019-06-25 Google Llc System and method for presenting condition-specific geographic imagery
US20180307707A1 (en) * 2013-04-25 2018-10-25 Google Inc. System and method for presenting condition-specific geographic imagery
US10394854B2 (en) 2013-05-09 2019-08-27 Microsoft Technology Licensing, Llc Inferring entity attribute values
US9501503B2 (en) 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
US20170144566A1 (en) * 2014-09-23 2017-05-25 Bayerische Motoren Werke Aktiengesellschaft Cell-Contacting System for a Motor-Vehicle Battery Module and a Motor-Vehicle Battery Module

Also Published As

Publication number Publication date
US9189551B2 (en) 2015-11-17
US20130024464A1 (en) 2013-01-24
US20130024456A1 (en) 2013-01-24

Similar Documents

Publication Publication Date Title
US20130024449A1 (en) Method and apparatus for allowing users to augment searches
US11709851B2 (en) Method and apparatus for quickly evaluating entities
US20220292575A1 (en) Computer System and Method for Analyzing Data Sets and Generating Personalized Recommendations
US20230042931A1 (en) Menu Personalization
US9396492B2 (en) Computer system and method for analyzing data sets and providing personalized recommendations
AU2012283930B2 (en) A recommendation engine that processes data including user data to provide recommendations and explanations for the recommendations to a user
US20160188742A1 (en) Bookmarking Search Results
US9110894B2 (en) Systems and methods for determining related places
US20100331016A1 (en) Location-based promotion for a mobile communication network
US20100302056A1 (en) Location discovery system and method
CN112088390A (en) Personalized match score for a place
US20100305855A1 (en) Location relevance processing system and method
WO2019152126A1 (en) Generating conversational representations of web content
AU2012283928B2 (en) Method and apparatus for category based navigation
AU2012283929B2 (en) Method and apparatus for allowing users to augment searches

Legal Events

Date Code Title Description
AS Assignment

Owner name: NESS COMPUTING, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:CHATTERJI, SOURAV;SCHIFF, JEREMY RYAN;REESE, COREY LAYNE;AND OTHERS;SIGNING DATES FROM 20120831 TO 20120917;REEL/FRAME:029050/0306

AS Assignment

Owner name: NESS COMPUTING, LLC, CALIFORNIA

Free format text: CONVERSION OF CORPORATION TO LLC;ASSIGNOR:NESS COMPUTING, INC.;REEL/FRAME:032387/0975

Effective date: 20140205

AS Assignment

Owner name: OPENTABLE. INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:NESS COMPUTING LLC;REEL/FRAME:032969/0450

Effective date: 20140422

STCB Information on status: application discontinuation

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