This application claims priority to Finnish Patent Application No. 20095642 filed on Jun. 9, 2009, the entirety of which is incorporated herein by reference.
The present invention generally relates to identification of geographical items.
Travellers need various local services the quality and properties of which are greatly variable. Without local knowledge, it may be difficult to select e.g. a suitable restaurant according to one's taste and possible dietary restrictions. There are various ways to guide travellers. For instance, travel agencies collect information about common travel destinations and advise their clients as part of their service. However, it has become increasingly common to book travels directly by internet and thus no opportunity arises to discuss about travel destinations with travel agency clerks. Moreover, the clerks may never have been to the destinations of interest, or their visits may have taken place long ago or been made with quite different interests. Time differences may also prevent or hinder seeking further information from people in home country, while language and culture barriers may prevent enquiring information concerning different points of interest in the destination.
There are also numerous printed travel guides and the Internet has also numerous travel stories and recommendations in various sites, blogs, video postings, news articles, chat rooms and discussion groups, among others. Such sources are, however, poorly suited to someone willing to quickly decide where to go at a given instant, accounting for her own preferences. For instance, carrying of travel guides is a physical burden and it may be physically impossible to contact suitably knowledgeable people when information concerning particular location is desired.
It is an object of the invention to address and at least mitigate problems related to travelling in foreign or generally unfamiliar destinations.
According to a first exemplary aspect of the invention there is provided a method comprising:
maintaining a location database comprising information regarding each of a number of different geographical items in different locations;
maintaining a user database comprising user records for various users, each user record comprising the user's identification data;
maintaining in at least one of the location database and the user database an identification of different geographical items which each user has visited;
defining geographical-item-to-geographical-item similarities between different geographical items based on the user database;
defining user-to-user similarities between the users based on the user database;
computing a weighted combination of the defined geographical-item-to-geographical-item and user-to-user similarities; and
identifying particularly relevant geographical items in a given location to a user based on the weighted combination.
It is recognised that there are various other fields or approaches to identifying desired information in general or in particular with relation to travel guiding.
Amazon.com use the collective preferences of their whole user base to find similar items for a given item in their shopping service. This method is based on average users. There, a server generates additional recommendations using a previously-generated table which maps items to lists of similar items. The similarities reflected by the table are based on the collective interests of the community of users.
TripAdvisor is a web service that collects reviews of hotels and other travel locations. The service ranks and presents lists of these locations according an aggregate of scores given by their site's users. The relationships amongst these users are not collected on the site, and so the ranking does not consider them.
It is also appreciated that normally online services that give recommendations have used a combination of metrics (e.g. star-ratings given by users, amount of web traffic to a location's page, placement paid for by vendors) without due regard to the factors of influence that exist in normal social relationships. For example, a particular group of friends may dislike a restaurant because of their common preferences or history, even if that restaurant were popular and highly rated by their visitors and critics. In order to identify particularly relevant points of interests to an individual (as opposed to an average user) from a list of alternatives, attention should be paid to factors such as social influence, shared taste, and preference for mainstream versus the unusual. Such concepts are typically hard to translate into a computer model.
However, the inventors have perceived these needs and challenges and address them with different aspects and embodiments of this invention.
The method may further comprise allowing different users to determine access rights indicative of which other users are allowed to access to their travel data; and using the access rights in defining the user-to-user similarities.
The method may further comprise producing a number of web pages corresponding to different geographical items based on the information regarding the geographical items concerned.
The method may further comprise receiving a request for identifying of relevant geographical items in a given location from requesting user;
computing for the requesting user the weighted combination of the defined geographical-item-to-geographical-item and user-to-user similarities;
identifying particularly relevant geographical items in a given location to the requesting user based on the weighted combination; and
providing the requesting user with the identified particularly relevant geographical items.
The geographical items may be different areas of towns or cities.
The method may further comprise determining particularly relevant points of interests for a given user in a particular area of town or city, the points of interests being referred to as POIs; the determination comprising the steps of:
defining POI-to-POI similarities between different POIs; and
computing a weighted combination based on the defined POI-to-POI similarities and the user-to-user similarities.
According to a second exemplary aspect there is provided an apparatus comprising:
a communication port for communicating with different user devices;
characterized in that the apparatus comprises:
a memory comprising:
a location database comprising information regarding each of a number of different geographical items in different locations;
a user database comprising user records for various users, each user record comprising the user's identification data; and the memory comprising:
in at least one of the location database and the user database an identification of different geographical items which each user has visited;
and the apparatus further comprising a processor for controlling the operation of the apparatus, configured to control the apparatus to perform:
defining geographical-item-to-geographical-item similarities between different geographical items based on the user database;
defining user-to-user similarities between the users based on the user database;
computing a weighted combination of the defined geographical-item-to-geographical-item and user-to-user similarities; and
identifying particularly relevant geographical items in a given location to a user based on the weighted combination.
According to a third aspect of the invention there is provided a computer program stored in a memory medium comprising computer executable program code for controlling an apparatus, comprising:
computer executable program code configured to cause the apparatus to maintain a location database comprising information regarding each of a number of different geographical items in different locations;
computer executable program code configured to cause the apparatus to maintain a user database comprising user records for various users, each user record comprising the user's identification data;
computer executable program code configured to cause the apparatus to maintain in at least one of the location database and the user database an identification of different geographical items which each user has visited;
computer executable program code configured to cause the apparatus to define geographical-item-to-geographical-item similarities between different geographical items based on the user database;
computer executable program code configured to cause the apparatus to define user-to-user similarities between the users based on the user database;
computer executable program code configured to cause the apparatus to compute a weighted combination of the defined geographical-item-to-geographical-item and user-to-user similarities; and
computer executable program code configured to cause the apparatus to identify particularly relevant geographical items in a given location to a user based on the weighted combination.
Different aspects and embodiments of the present invention have been illustrated in the foregoing. Some embodiments may be presented in this document only with reference to certain exemplary aspects of the invention. It should be appreciated that corresponding embodiments may apply to other exemplary aspects as well.
The invention will be described, by way of example only, with reference to the accompanying drawings, in which:
In the following description, like numbers denote like elements.
The service is accessed by users over the internet. Typically, the users interact with the service using a web browser, initially to register a user account and then to add their travel plans.
Users may use a local service application on their mobile devices. This application displays service information in the form of maps showing places of interest, and lists of travel plans of the user and of those who have shared their travel information with the user. This information is transmitted on request to the service application over the internet.
The users may indicate that they have visited a place of interest, or enter information on a place of interest not currently listed. In either case, this data is transmitted over the internet to the service's servers.
The internet service is accessed via a set of web servers, which serve data in response to requests from a user's web browser or mobile device application.
The application's data is read from and written to a database which sits on the same local network as the web servers.
A separate process runs batch jobs to analyse service data for patterns and metrics. The results of this analysis is written back to the database for use by the web servers.
6.1 Create one web page per Point of Interest (POI)
6.2 Solicit user data on users who have visited each POI
6.3 Calculate item-item similarity between POIs using user behaviour data
6.4 Calculate user-user similarity between users using commonality of POI visits
6.5 Detect social network among the users
6.6 Partition the social network into subsets
6.7 Calculate and store per-user trust metric independently for each subset
6.8 Check if particular user is logged in the service
6.9 If yes, make a weighted combination of item-item, user-user and trust metric data based on user's location, user's position in the social network and POI data from other users in the social network
6.10 If no, make a weighted combination of item-item, user-user and trust metric data based on user's location (from IP address) and usage history in the session so far
6.11 Display recommendation
In step 6.1, the POIs are real-world places in a particular location such as hotels, restaurants and places to visit or explore (e.g. museums, marketplaces). A unique identifier is assigned to each POI, e.g. ‘thai-pavilion’. This identifier and the real-world city location of the POI are used together to form a unique web URL for each POI, e.g. http://www.dopplr.com/place/gb/london/eat/thai-pavilion. Hence, meaningful web addresses are formed to users. Moreover, the providing of individual URLs to different POIs enables simple and efficient monitoring how different users access various POIs.
In step 6.2, Information is gathered about who has visited each POI. Normally, the users access the service via fixed or mobile terminals. When a user visits the web pages of a POI or more generally accesses a POI record in a database of different POIs, the user is presented with an interface allowing to register in the service having been to that place. In a preferred embodiment, the user is allowed to perform this registration with a dedicated first control using a single click. A dedicated second control after using of the first control or in parallel with the first control is provided to indicate a rating for the visited POI (e.g. whether it was favoured or not or how highly it was liked on a scale of one to three, for instance). A third control may be provided to signal to the service the data to that the user has not visited the POI. These data are stored in the location database in association with the POI in question.
In one embodiment of the invention, the user accesses the service with a mobile interface and the user is presented with a map of the POIs. The service makes use of positioning capabilities (e.g. GPS) of the user's equipment to locate the map on the user's current location. Also in this embodiment, the user identifies a visit by making a selection (e.g. by tapping a point on map with a touch screen) to represent a visit. On recording the visit, location data of the user's equipment may also be used to verify or detect physical presence at the POI. This data is then transmitted to the location database in association with the POI in question.
In step 6.3, an item-to-item similarity is calculated between different POIs using behaviour data of the users. Taking the user-visit data for each POI, a collaborative-filtering index is built of the similarity between POIs based on the overlap of tastes between users who have made the visits. Collaborative filtering may be employed in this step. In result, a list is obtained for each POI of other POIs that are likely to be preferred by users who have visited the POI. This list is stored in the location database in association with each POI.
The item-to-item list may prepared in a batch operation at times when the service usage is lower. Alternatively, or additionally, the item-to-item list may be prepared or updated on obtaining data from the users, e.g. in connection with step 6.2. In this manner, the location database may be kept up-to-date when user's feed further information in the service.
In step 6.4, user-to-user similarity is calculated between users using commonality of POI visits. Taking the user-visit data for each POI, the service builds a collaborative-filtering index of the similarity between users based on the overlap of tastes between users who have made visits to each POI. The taste is indirectly and automatically detecting from the types of POIs that the users have preferred in their own data entries to the service (in connection with step 6.2). This step results in a list for each user of other users who have similar POI visit habits to them. This list is stored in the user database in association with each POI.
In step 6.5, connections are gathered between users of web service, resulting in data representing a social network. The service enables the users to share travel plans with other users. Users explicitly choose whom they allow sharing of their travel plans. The social network or graph of connections between users that results is assumed to model the real-life social network between those users. This graph is stored in the database.
In step 6.6, the social network is partitioned into subsets or communities. The partitioning is carried out using e.g. travel patterns or social connectedness. Let us considered from the point of view of the mathematics of graph theory that a social network is a directed, labelled graph. Highly-connected users in this graph are assumed to have a higher probability of being trusted by other users than unconnected users. However, the social connections represented service are assumed not presumed to represent a single community, but instead a number of communities whose members have social connections of varying strength.
In order to separate out these communities for the purposes of calculating a metric of influence for each individual, a graph-partitioning algorithm such as that implemented by METIS (see http://glaros.dtc.umn.edu/gkhome/metis/metis/overview) is used to divide the social graph into a number of partitioned modules. Each user will be a member of some module and this community or these communities are recorded in their database records.
In step 6.7, the service calculates and stores per-user trust metric independently for each partitioned subset of the social network. In order to derive an influence metric per user, a standard centrality calculation is performed (see e.g. http://en.wikipedia.org/wiki/Centrality) for each user, independently for each partitioned module of the social graph. Then, each user's resulting score is stored in their record in the user database.
In step 6.8 it is checked whether the viewer of current web page is logged in? If yes, the process continue from step 6.9, otherwise the process advances to step 6.10.
In step 6.9 a weighted combination is made of item-item, user-user and influence metric data based on current user's position in the social network and their POI visits. This step may involve following sub-steps:
Step A: Take the profile of the currently logged-in user and consider in particular: 1. history of travel destinations. 2. history of POI visits. 3. home city and country. 4. user-user similarity list derived in step 6.4. 5. the other users with common travel information. 6. the subset or community of her social graph (see 6.6 above).
Step B: Consider the POI being viewed, or the current user goal (e.g. a search for a good place to eat in London). Derive candidate lists of similar users and similar POIs. Apply a weighting to rank these lists using the social network influence metric for each user's visit data being considered. Apply a double-weighting if a user is in the immediate social network of the viewing user, or a slightly increased weighting if they are in the same social network module of the viewing user. If applicable for the current user's target, apply contextual filters to the POIs being considered, such as “only consider data from users whose home city is New York”.
After step 6.9 the process continues to step 611 to provide results to the user.
In step 6.10, a weighted combination is made of the item-to-item, user-to-user and influence metric data based on user's location (e.g. as obtained from IP address) and click stream in the user's session so far. As there is no database record available for the user to give an influence metric, history of travel and POI visits for the current viewer, the service creates a “stereotype” user record based on observed web traffic from the user's current web session. The user's IP address is resolved to a city or country using a Geographical IP lookup service such as the GeoIP. The user's browsing history is used to consider any POI pages viewed on the service as if such POIs had been visited by the user. Using this incomplete user data and the item-item similarities previously calculated, but without the influence-metric weighting from the social graph, the process jumps to sub-step B of step 6.9 described in the foregoing.
In step 6.11, a recommendation or a particularly relevant set of POIs in the form of items and comparative lists is displayed on to the user.
Based on the current POI being viewed, or the travel information being entered or queried, the user is provided with one or more lists of POIs that are found suitable for the user. These lists are presented with a prose or explanation of the link to the suggested POIs to motivate and explain the composition of the list. The prose may involve an explanation such as “people who stay at this hotel like to eat at these restaurants”, or “people from New York like to explore these places when visiting Helsinki”, or “two people you know [with their names] with similar travel habits to you like to stay in this part of town when visiting Berlin”.
An “absolute score” is calculated by a simple count of how many users have visited this place.
A “weighted score” is calculated by summing a weighted score for each place of interest, customised for the user viewing the information. Customisation may involve, for example, a multiplier based on how trusted the visitor to the place is by the user viewing the information, or a multiplier based on how socially-connected the visitor is in the social graph.
The further towards the top-right of the diagram a place is plotted, the more generally popular amongst both mainstream and trustworthy or influential individuals it is. A trend-line is shown to demonstrate this area of the graph.
A place that is shown towards the top-left of the scatter plot is popular with the mainstream of users, but their weighting for this context is not strong, therefore this may be considered an “obvious” recommendation.
A place that is shown towards the bottom-right of the scatter plot is not popular with users in general, but those users that have visited this place are considered influential or trustworthy according to the metric used. Therefore this place may be considered an “undiscovered gem” or “in the know” location.
910: Compile a list of POIs visited by a user for a particular town. Look up the latitude and longitude coordinate of each POI.
920: For each POI, look up what city neighbourhood that latitude/longitude point is in, using a geography “gazetteer” dataset such as that available from http://www.geonames.org/ or http://code.flickr.com/blog/2009/05/21/flickr-shapefiles-public-dataset-10/
930: Add up the number of visits to each neighbourhood. For example, for San Francisco this might result in a table such as: “Downtown: 5. Castro: 7. Noe Valley: 1. Japantown: 1. Mission: 2”
940: Perform steps 910 to 930 for each city the user has visited, resulting in a number of “scores” for each neighbourhood in each city visited.
When the service is in use and the data on places and users is readily compiled, in an embodiment of the invention the service simply updates the user database 710 when new entries are received from users. However, to initialise the databases before the service is in its established state, step 950 repeats the process of steps 910 to 940 for each user.
960: Apply the process described with reference to
970: When a user intends to travel to a new city, use their neighbourhood history and the item-item similarity data to recommend which neighbourhood of this new city they should visit, book a hotel or eat in.
980: For the recommended neighbourhoods, display to the user the most popular POIs in that neighbourhood.
The embodiments described in the foregoing provide numerous advantages to a traveller over prior known techniques. As opposed to travel guides, there is no need to carry along heavy, space consuming and potentially outdated information. Moreover, by automatically adapting information gathered from the users and weighting the data based on tracked user behaviour, it may be possible to identify likely relevant and rapidly updating data for benefit of a traveller. The provided service is also very easy and fast to use and simple to deploy with generally available software applications such as web browsers.
The foregoing description has provided by way of non-limiting examples of particular implementations and embodiments of the invention a full and informative description of the best mode presently contemplated by the inventors for carrying out the invention. It is however clear to a person skilled in the art that the invention is not restricted to details of the embodiments presented above, but that it can be implemented in other embodiments using equivalent means or in different combinations of embodiments without deviating from the characteristics of the invention.
Furthermore, some of the features of the above-disclosed embodiments of this invention may be used to advantage without the corresponding use of other features. As such, the foregoing description shall be considered as merely illustrative of the principles of the present invention, and not in limitation thereof. Hence, the scope of the invention is only restricted by the scope and spirit of the appended patent claims.
Number | Date | Country | Kind |
---|---|---|---|
20095642 | Jun 2009 | FI | national |