System and method for accurately and efficiently generating recommendations for surrounding points of interest

The method forms groups based on visitor information and uses a mindset function to provide personalized point-of-interest recommendations, addressing cold start and data sparsity, and ensuring security by not relying on user check-in data, thus enhancing user trust and privacy.

JP7715459B2Active Publication Date: 2025-07-30NAVER CORP
View PDF 9 Cites 0 Cited by

Patent Information

Application Number
JP2020196340
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-07-31
Filing Date
2020-11-26
Publication Date
2025-07-30
Estimated Expiration
2040-11-26

AI Technical Summary

Technical Problem

Existing point-of-interest recommendation systems face challenges such as cold start and data sparsity, lack of integration of user context, and security concerns due to reliance on personal data, leading to inefficiencies and user distrust.

Method used

A method that forms groups based on visitor information using frequent itemset mining, determines user preferences through a mindset function, and provides personalized recommendations without requiring user check-in data, integrating user interactions to refine suggestions.

Benefits of technology

Enables accurate, efficient, and secure point-of-interest recommendations by leveraging similarity groups and user interactions, addressing cold start and data sparsity while enhancing user trust and privacy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007715459000020
    Figure 0007715459000020
  • Figure 0007715459000021
    Figure 0007715459000021
  • Figure 0007715459000022
    Figure 0007715459000022
Patent Text Reader

Abstract

To provide a system and a method for accurately and efficiently generating recommendation of a surrounding point of interest.SOLUTION: A method 100 for recommendation of a point of interest includes the steps of: electronically obtaining a plurality of points of interest for an area selected by a user associated with a location of the user; electronically retrieves point of interest data including visitor information about visitors associated with the obtained plurality of points of interest and information about the plurality obtained of points of interest; electronically forms a plurality of groups based upon the visitor information; electronically determines a mindset function from a plurality of mindset functions; electronically determines a group from the plurality of groups based upon the information about the obtained plurality of points of interest and the determined mindset function; and communicates a point of interest of the obtained plurality of points of interest to the user.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application claims the benefit of the filing date and the right of priority of European Patent Application No. 19306522, which was filed on November 26, 2019, and the entire content of which is incorporated herein by reference, based on 35 U.S.C.§119(a).

Background Art

[0002] Point-of-interest recommendation is a location-based service application. A point-of-interest recommendation system is a special application of recommender systems. The literature includes personalized and socialized approaches to point-of-interest recommendation, where historical check-ins and social links are used to predict whether a certain point of interest should be recommended to a user as the next location.

[0003] Personalization has been a focus in many approaches proposed by Levandoski et al. (Justin J Levandoski, Mohamed Sarwat, Ahmed Eldawy, Mohamed F Mokbel: "Location-Aware Recommendation Systems", 2012 IEEE 28th international conference on data engineering), Ye et al. (Mao Ye, Peifeng Yin, Wang-Chien Lee: "Location Recommendation for Location-Based Social Networks", SIGSPATIAL), Cao et al. (Xin Cao, Gao Cong, Christian S Jensen: "Semantic Location Mining from GPS Data", VLDB 2010), and Liu et al. (Bin Liu, Yanjie Fu, Zijun Yao, Hui Xiong: "Learning Geographical Preference for Point-of-Interest Recommendation", Proceedings of the 19th ACM SIGKDD international conference on Knowledge discovery and datamining, 2013), etc. Here, past check-ins are utilized to predict the points of interest that a user wants to visit next by techniques such as Matrix Factorization and Poisson Factor Modeling.

[0004] Socialization has been treated as an approximation method proposed by Hu (Bo Hu, Martin Ester: "Spatial Modeling in Online Social Media for Location Recommendation", RecSys 2013), Backstrom et al. (Lars Backstrom, Eric Sun, Cameron Marlow: "Find and See: Improving Geographic Prediction by Social and Spatial Proximity", Proceedings of the 19th international conference on World wide web 2010), and Liu et al. (Yong Liu, Wei Wei, Aixin Sun, Chunyan Miao: "Utilizing Geographical Neighborhood Characteristics for Location Recommendation", Proceedings of the 23rd ACM International Conference on Information and Knowledge Management 2014), etc. Here, information encapsulated in location-based social networks (LBSN) is used to predict user preference degrees by utilizing a link-based method.

[0005] Traditionally, the problem of point-of-interest recommendation is defined as learning users' implicit preference degrees from their past check-ins (Jie Bao, Yu Zheng, David Wilkie, Mohamed Mokbel: "Recommendation in Location-Based Social Networks: A Survey", GeoInformatica 2015). To solve such problems, approximation methods use memory-based and model-based CF (Collaborative Filtering) as de facto methods. At this time, a check-ins matrix is used to learn preference degrees (Betim Berjani, Thorsten Strufe: "Spot Recommendation System in Location-Based Online Social Networks", Proceedings of the 4 thworkshop on social network systems 2011)。

[0006] Such an approach requires the user's personal data. However, since obtaining the user's personal data involves the risk of data seizure, some users feel security risks. Also, when the conventional method cannot access the user's personal data, there may be problems such that a plurality of functions included in such a state-of-the-art method cannot be used or the method does not function as desired. Such a problem is known by the term "cold start challenge".

[0007] To address the cold start challenge, it has been proposed to enrich the sparse check-in matrix by social aspects such as friendship links (Mohsen Jamali, Martin Ester, Trust walker: "A Random Walk Model for Integrating Trust-based and Item-based Recommendations", Proceedings of the 15th ACM SIGKDD International Conference on Knowledge discovery and data mining 2009). It is assumed that the user shows more interest in the places that their friends have visited in the past. For example, friendship links use the approach proposed by Lalwani et al. (Deepika Lalwani, Durvasula VLN Somayajulu, P Radha Krishna: "Community-driven Social Recommendation System", 2015 IEEE International Conference on Big Data (Big Data) IEEE 2015) to construct friend groups by community detection techniques.

[0008] The category-based search interface (see Tomi Heimonen, "Mobile findex: Facilitating Information Access in Mobile Web Search by Automatic Result Clustering," advances in Human-Computer Interaction 2008) captures the user's explicit requests in categorical form (e.g., selecting points of interest in the "historic sites" category). Categories enable a higher level of personalization for the user, thereby reducing the user's uneasiness with the system and increasing trust. However, in a realistic scenario, since requests and intentions are often ambiguous, the user attempts to resolve that ambiguity in an iterative process. The only iteration possible in the traditional search paradigm is to resume the search in other categories.

[0009] The literature has also investigated using the geographical context. The geographical context is mainly encapsulated in the form of "distance". The geographical context captures multiple aspects of the user's actual requests, but there are still many fundamental user requests that remain unaddressed. For example, it is not easy to capture the user's intentions, actual situation, time related to distance, and emotions.

[0010] There are fundamental problems with state-of-the-art methods. Some of these problems are described as follows.

[0011] Cold start and data sparsity: The cold start problem occurs when a user with limited check-in history requests a recommendation. Data sparsity means the lack of data for identifying similarities between users. Many users utilize point-of-interest services without signing in. As a result, it is not possible to search the social graph (e.g., friendship relationships). Typical recommendation systems that rely on past check-ins and user similarities for personalized and socialized recommendations cannot produce results when cold start and data sparsity exist. Users who induce cold start include (i) new users without a history and (ii) users who are concerned about privacy and reject the use of their own data.

[0012] Interpretation of interactions: Most point-of-interest recommendation systems assume that the process is one-shot. Here, the user enters the system with a clear intention, and the system returns the point of interest most relevant to this intention. However, in reality, such a process is not realistic. Users often try to interact with the system to gradually build their intentions. The problem with multi-shot recommendation systems is that it is not clear how the interaction between the system and the user should affect the recommendation strategy.

[0013] Integration of context: Another problem in surrounding point-of-interest recommendations is integrating the user's context into the recommendation process. Context is not limited to time and / or location but also applies to the user's mindset when receiving a recommendation. For example, different points of interest should be recommended when the user is hungry or wishes for a break.

[0014] Explanatory: Users may not trust the algorithmic uncertainty obtained from the cold start problem and session-based interactions with the system. Users may also wonder why such specific points of interest were given as recommendations. The issue of recommendation transparency has been a long-standing problem.

Summary of the Invention

Problems to be Solved by the Invention

[0015] Therefore, there is a need in the art to address the problems of point of interest recommendation as described above.

[0016] Therefore, it is preferable to provide an improved point of interest recommendation method that can overcome the drawbacks of the prior art as described above.

[0017] Also, it is preferable to provide a method for accurately and efficiently / effectively generating point of interest recommendations in a secure manner.

Brief Description of the Drawings

[0018] The accompanying drawings are incorporated in and form a part of the specification for the purpose of explaining the principles of the embodiments. The drawings should not be construed as being limited to the illustrated and described embodiments regarding how the embodiments are configured and used. Additional features and advantages will become apparent in the following detailed description as shown in the accompanying drawings.

Figure 1

Figure 2

Figure 3

Figure 4

Figure 5

Figure 6

Figure 7

[0019] Hereinafter, a point of interest recommendation system and method will be described. In order to provide a complete understanding of the embodiments described for the purpose of explanation, a plurality of examples and specific details are set forth.

[0020] The elements and structures of the exemplary embodiments will be described with reference to the drawings indicated by reference numerals. Also, when the embodiment is a method, the steps and elements of the method may be combined as parallel or sequential executions. Unless otherwise specified, all embodiments described below may be combined with each other.

[0021] FIG. 1 is a flowchart showing the process of a point of interest recommendation method 100 in an embodiment. A point of interest may mean a specific point of interest location that someone finds useful or interesting. Although the embodiments describe points of interest, those skilled in the art will understand that the following embodiments can also be used for recommending areas of interest where one or more areas and / or points of interest are provided to the user.

[0022] In step 110, the method according to this embodiment may obtain one or more points of interest, such as museums, restaurants, beaches, etc., for an area such as a geographical area. The area may be determined based on the location of the user determined by the location detection means. For example, the one or more points of interest may be obtained from a dataset of points of interest that includes the locations of multiple points of interest. The one or more obtained points of interest may be located in the determined area.

[0023] In stage 120, the method according to this embodiment may search for point-of-interest data of one or more acquired points of interest, for example, check-in data. The point-of-interest data may include information about visitors to the acquired points of interest, such as visitor information like demographic data of the visitors, and information about the acquired points of interest, such as point-of-interest information.

[0024] For example, the point-of-interest data may include a set of check-in data associated with visitor information and point-of-interest information. The point-of-interest data may be searched on a computer device that executes the method according to this embodiment, such as a mobile computing device, or a server or computer far away from an automobile. In an embodiment, the visitor information is associated with a time or period such as morning, afternoon, or evening, and the visitor information is searched only for a specific time or a specific period when the visitor visited one or more acquired points of interest. By searching the visitor information only for a specific time or a specific period, the data to be processed or transmitted can be reduced.

[0025] The visitor information of a visitor may include, for each visitor, at least one of the time, time interval, and / or period when the visitor visited a point of interest, a display of the visitor's characteristics, all the points of interest visited by the visitor during a specified period among the plurality of acquired points of interest, the number of photos taken by the visitor at one of the plurality of acquired points of interest, the number of photos saved by the visitor on the visitor's mobile device, the number of photos taken by the visitor during a specified period, and the number of photos posted by the visitor, a display of the number of the visitor's friends, a display of the number of times the visitor visited a specific point of interest among the acquired points of interest, at least one of a display of the visitor's age, the visitor's gender, and the number of times the visitor has traveled.

[0026] The obtained plurality of points of interest information may include, for each of the one or more obtained points of interest, a display of at least one of an evaluation score, one or more categories, a price range, business hours, peak hours, total number of visitors, payment methods, accessibility for disabled persons, presence or absence of a parking lot, insertion date, and the size of each point of interest.

[0027] In step 130, a plurality of groups are formed based on visitor information. The plurality of groups may be formed by a FIM (frequent itemset mining) technique. Here, each group is a frequent itemset, and the items include demographic attributes of visitors and points of interest related to the visitors, and the demographic attributes are obtained from visitor information.

[0028] (As will be described in more detail below), by applying the apriori mining algorithm to the online context, the method 100 according to the present embodiment provides efficient mining of similar groups. A similar group is a group in which all members of the group have at least one common characteristic (for example, the age range of visitors who visit a specific category of points of interest used to describe, label, or represent the group, the number of friends of visitors who visit the points of interest, or the time when the visitor has lunch at a restaurant, etc.).

[0029] In step 140, based on the points of interest information, one or more groups are determined from the plurality of formed groups. For example, the one or more groups may be determined from the plurality of groups by applying a mindset function. The mindset function may be selected by the user. For example, the method 100 according to the present embodiment may include a step of receiving user input from the user. The mindset function is determined by user input from the user, and the user input includes at least one of the selection of a label associated with the mindset function and the selection of points of interest and / or groups previously selected by the user. The mindset function may be determined from a plurality of mindset functions.

[0030] Each of the plurality of mindset functions may include one or more pre - defined functions and one or more weighting values for each of the one or more pre - defined functions. Each of the one or more pre - defined functions may have one or more input variables obtained from information regarding one or more points of interest. The weighting values define how important one function of the plurality of functions is, but by selecting different weighting values for different mindsets, the same pre - defined function is weighted differently so as to be used to determine a group with specific characteristics. The one or more weighting values may include at least one of a pre - defined weighting value (also called "prior") and a user - specific weighting value (also called "weighting value"). The user - specific weighting value may be updated by user input. The pre - defined weighting value may be calculated offline.

[0031] One or more determined groups maximize an optimization problem. For example, one or more variables of the one or more points of interest associated with the one or more groups enable the maximization of the mindset function. Here, the variables are obtained from the information regarding the plurality of acquired points of interest.

[0032] In stage 150, one or more of the plurality of acquired points of interest are provided to the user. The one or more points of interest are associated with the one or more determined groups. For example, the one or more points of interest may include the points of interest that the visitors visit the most for the one or more groups. Also, the one or more points of interest may be provided in combination with one or more displays of the characteristics of the one or more determined groups.

[0033] Assume that there is no data available to a (e.g., privacy - concerned) user, but it may be possible to obtain point - of - interest recommendations by searching for similar groups from publicly available point - of - interest datasets. The recommended points of interest may be described using groups associated with them, for example, described as "The group of photo - enthusiasts tends to visit La Butte located in the 18th arrondissement of Paris" and "The group of food lovers tends to visit the les Apotres de Pigalles restaurant in the same arrondissement".

[0034] In an embodiment, the user may interact with such groups to detect groups associated with themselves. Based on such interactions, new groups may be mined to match the user's preference level. Such an iterative process ensures that the groups and their points of interest reflect the user's interests. The method according to the embodiment can find the user's concerns without requiring any of the user's historical check - in data and can provide recommendations that match them.

[0035] The step of providing one or more points of interest to the user may include the step of displaying one or more points of interest to the user, for example, displaying one or more points of interest on the display of the user's mobile device or on the display of an automobile. Once one or more points of interest are provided to the user, the user may perform other interactions with the system by selecting one of the points of interest or by selecting the user's interest group or mindset. The system may be associated with the name "LikeMind". Examples of methods for displaying one or more points of interest to the user are shown in FIGS. 2 and 3.

[0036] FIGS. 2 and 3 show a part of a map 200 of a part of a city, for example, Paris. The user's position 210 may be displayed on the map 200. Also, an area 220 may be depicted in accordance with the user's position 210. The area 220 may correspond to a radius around the user's position. The area may be selected by the user.

[0037] For example, the region may be based on the user's position and a radius specified by the user from the user's position. Alternatively, the region may be associated with a position selected by the user and / or may be specified by a predefined value.

[0038] FIG. 2 shows a plurality of points of interest 230a, 230b, 230c recommended to the user. The points of interest 230a to 230c may be determined by the method according to the embodiment.

[0039] The plurality of points of interest 230a to 230c may each be associated with a different group. A set of points-of-interests may be associated with a group, e.g., a group of visitors, and group members have at least one similarity defined based on characteristics, features, or information of the group members. For example, the set of points of interest 230a may be associated with a first group, e.g., a group of visitors who tend to actively check in and visit historical sites in the afternoon, the set of points of interest 230b may be associated with a second group, e.g., a group of visitors who tend to visit Asian restaurants, and the set of points of interest 230c may be associated with a third group, e.g., a group of visitors who have many friends and tend to visit cafes and American restaurants on weekends.

[0040] FIG. 2 shows a set of points of interest associated with three different groups. Each set of points of interest is shown as including three points of interest in the example of FIG. 2, but the number of points of interest within a set of points of interest and the number of sets of points of interest associated with each group should not be limited to three. The number of points of interest within a set of points of interest and the number of sets of points of interest associated with each group may be predefined or selected by the user.

[0041] Each point of interest in the set of points of interest may include a display indicating a group associated with the set of points of interest. For example, the set of points of interest may be differentiated by color. For example, the set of points of interest 230a may be displayed in green, the set of points of interest 230b may be displayed in red, and the set of points of interest 230c may be displayed in orange. However, other methods may be used to differentiate different sets of points of interest. For example, the points of interest may be displayed in different sizes and shapes, and / or the sets of points of interest may be labeled.

[0042] Each point of interest in the set of points of interest may be selected by the user. Alternatively and / or additionally, each set and / or point of interest in the set of points of interest, or each group associated with the set of points of interest, may be selected by the user.

[0043] For example, the user may select a point of interest in the set of points of interest 230c. This may correspond to clicking on the touch screen of the device to select the point of interest, as shown by reference numeral 240. However, other methods such as voice commands or virtual or physical keyboard input may be used to select the point of interest.

[0044] In response to the user's selection of a point of interest or set of points of interest, some or all of the steps of the method shown in FIG. 1 may be performed for new recommendations for the set of points of interest. The method shown in FIG. 1 may be repeated one or more times in response to user input or interaction for each iteration. Also, user input or interaction may be considered for each new recommendation.

[0045] FIG. 3 shows new recommendations for points of interest, namely, sets of points of interest 230d, 230e, 230f, that are displayed to the user in response to the user selecting one point of interest from the set of points of interest 230c, as shown in FIG. 2. Also, the previously selected point of interest 230c may be displayed to the user.

[0046] The new recommendations of points of interest as shown in FIG. 3 are a follow-up iteration of the method for recommending points of interest according to the embodiment. The new recommendations of points of interest may be based on user selection 240 and / or one or more past user inputs, or user interactions.

[0047] The set of points of interest 230d, 230e, 230f may be associated with a different group than the set of points of interest 230a, 230b, 230c. However, one or more characteristics associated with the group of FIG. 2 may be the same as or similar to the characteristics of the group of FIG. 3.

[0048] For example, the set of points of interest 230d may be associated with a first group, for example, a group of visitors with a high number of check-ins to shopping centers, the set of points of interest 230e may be associated with a second group, for example, a group of visitors who visit modern art museums with few photo postings, and the set of points of interest 230f may be associated with a third group, for example, a group of visitors with many friends who visit restaurants in the evening.

[0049] Again, each point of interest in the set of points of interest 230d, 230e, 230f, each set of points of interest, and / or each group associated with the point of interest or set of points of interest may be selected by the user. In response to the user's selection of a point of interest, group, or set of points of interest, another iteration may begin for a new recommendation of a set of points of interest, and some or all of the steps of the method shown in FIG. 1 may be executed. Again, user input or interactions from the last one or more iterations may be considered for the new recommendation.

[0050] As an example, assume the user is Jane who visited Paris as a tourist. Jane is walking in the Pompidou Center area. After walking for 30 minutes, she feels tired, so she requests a "me time" recommendation according to the application of the embodiment and looks for an interesting place, which is a beach (the area indicated by the dotted line 220 in FIG. 2) where she can sit and rest. Concerned about privacy, Jane does not share all her past check-in data. In response to her request, as shown in FIG. 2, three groups related to Jane's intention are output, for example, a user group, a visitor group, and the top three interesting places for each group. While looking at the additional group descriptions displayed, Jane checks whether she can find a doppelgenger among the group members. Jane, who has a social personality, shows interest in the yellow group, that is, the visitors who have many friends and tend to visit cafes and American restaurants on weekends. This motivates her to refine her intention and request a place where she can eat. While interacting with the system, Jane asks where people in this neighborhood usually eat. As a result, the system's multiple recommendation system, LikeMind (described in more detail below), provides, for example, as shown in FIG. 3, three other groups to meet Jane's intention. This supports Jane in making a decision and heading towards an American restaurant called "HD Diner Chatelet".

[0051] Therefore, surrounding recommendations (i.e., user- and / or location-aware recommendations) support the user in obtaining actionable interesting place recommendations by interacting with similar groups such as the visitor group. In the exploration process, the user may refine their ambiguous request and then finalize the decision. The way the user specifies their mindset (e.g., "me time", "I'm hungry") allows the user to apply their context to the recommendation system and can be biased so that the user is actually interested in receiving the results.

[0052] User μ may request a Point-of-Interest recommendation. The user's Point-of-Interest photo portfolio showing the user's interests may be denoted as P μ In a cold start scenario where there is no or unavailable information about the user's Point-of-Interest, there is no entry in the photo portfolio (P μ = φ). The Point-of-Interest dataset D = <U, P> may include a set (collection) of visitors U and a set (collection) of Point-of-Interest P. The set of visitors U may be associated with one or more Points-of-Interest or locations.

[0053] A visitor may mean a person who visits a Point-of-Interest. In the case of visitor u ∈ U, the set u.demogs may include tuples of the form <d, v>. Here, d is a demographic attribute (e.g., age, gender, number of trips, number of check-ins), and v ∈ domain(d). Different from location-based social networks (LBSN), the method according to the embodiment does not need to model a user-user matrix, and users do not need to know each other. The set u.checkins may include tuples of the form <p, t>, which indicates that u visited the Point-of-Interest p ∈ P at time t.

[0054] The Point-of-Interest p ∈ P may be defined by the tuple p = <loc, att>. Here, p.loc is itself a tuple <lat, lon> (latitude and longitude respectively), which defines the place where p is geographically located. The set p.att is a set of tuples of the form <a, v>, which indicates that the Point-of-Interest has the value v for the attribute a such that v ∈ domain(a). Examples of Point-of-Interest attributes may include rating score, category, price range, business hours, congestion time, total number of check-ins, credit card acceptance, accessibility for disabled people, presence of a parking lot, insertion date (the date when the Point-of-Interest was added to the database), and the radius or size of the Point-of-Interest location.

[0055] Points of interest may be evaluated by scores. The scores of points of interest may be determined by a function. The scores may reflect the degree of interest in the points of interest. This function will be referred to as a utility function hereinafter. The point-of-interest utility function f:2 P ->[0, 1] may return a value between 0 and 1, which reflects the degree of interest in one or more points of interest. Other utility functions such as those that reflect popularity, surprise, and diversity for points of interest may be considered.

[0056] For example, the utility function reflecting popularity (popularity(P)) may include the normalized average number of check-ins of P, the utility function reflecting prestige (prestige(P)) may include the normalized average evaluation score of P, the utility function reflecting recency (recency(P)) may include the inverse difference between the current date and the average insertion date of P, the utility function reflecting coverage (coverage(P)) may include the polygonal area induced by the geographical locations of the points of interest within P normalized by the size of the city, the utility function reflecting surprise (surprise(P)) may include the normalized Jaccard distance between the point-of-interest category of P and the point-of-interest categories of the points of interest visited by user P μ and the point-of-interest category of P, the utility function reflecting category (category(P, cat)) may include the normalized Jaccard similarity between the set category and the category of P, the utility function reflecting diversity (diversity(P)) may include the normalized Jaccard distance between the point-of-interest category sets of P, and the utility function reflecting size (size(P)) may include the normalized average radius of the points of interest within P.

[0057] The utility functions may be defined as maximization objectives, that is, the maximum values of these functions are regarded as ideal for the user. Also, the utility functions may receive as input one or more variables associated with one or more points of interest.

[0058] For example, the "Great Pyramids" in Egypt and the "Notre Dame Cathedral" in France receive 14.7 million and 13 million visitors per year respectively. When considering that "Niagara Falls" can accommodate a maximum number of visitors (i.e., 30 million), the popularity function defined as the number of visits per year provides popularity(Great Pyramids)=0.49, popularity(Notre Dame)=0.43, and popularity(Great Pyramids, Notre Dame)=0.46 (the average of the two values). The set of all utility functions is denoted by F.

[0059] The exploratory point-of-interest recommendation settings may be based on "context", which may include the user's current time and location, point-of-interest category, point-of-interest text description, neighborhood characteristics, and the user's last visited or interested point-of-interest.

[0060] In an embodiment, for a user μ given only the current time and location, the tuple c μ =<loc, time> is used as denoted. For greater generality, c μ .time may denote a categorized variable with values such as "morning" (5:00 - 11:00), "afternoon" (12:00 - 7:00), "evening" (18:00 - 22:00), and "night" (23:00 - 4:00).

[0061] An additional dimension of contextuality is the "mindset", i.e., the user's actual situation, emotions, and intentions. The mindset must reflect the way in which the interest level of a point-of-interest is calculated based on the user's interests.

[0062] In online services such as "AroundMe", users are able to search the vicinity of the user by selecting explicitly interested point-of-interest categories (e.g., museums, historical sites), while the mindset captures the implicit intentions of users that are difficult to capture (e.g., "Let's learn").

[0063]

Table 1

[0064] The mindset m is a tuple m = <label, func()>, where label provides a simple description of the mindset and func() defines the semantics of the degree of interest in points of interest. For example, when m.label = "I'm hungry", m.func() is formulated to increase the degree of interest in restaurants and cafes. Also, when m.label = "let's learn", m.func() comes to prefer museums, libraries, and cultural sites.

[0065] Selecting a mindset helps in quickly searching for points of interest. Also, the mindset enables searching for points of interest even when the user has no exact requirements. The mindset may be described as a label. Examples of mindsets are as shown in Table 1.

[0066] Given a mindset m, the function m.func() is defined as follows.

[0067]

Equation

[0068] On the contrary, when b i、m = 1, the mindset m is defined only based on f i . The user-specific weight value reflects the importance of the utility function for the user. For example, users often show more interest in popularity than in coverage. It is assumed that the weight value is formed when the user interacts with the system. If a set W of all possible user-specific weight values is given, initially, for all w ∈ W, w = 1.0. The weight value is dynamically changed for each user, while the prior value may be learned offline and maintained without change during online execution. The combination of the weight value and the prior value generates posterior values for the utility function.

[0069]

Table 2

[0070] Table 2 shows the prior values of the mindset with the maximum value of the prior value for each mindset shown in bold.

[0071] Table 2 shows an example of the prior value of the utility function of the mindset. For example, the mindset m2 (i.e., "surpriseme") is a combination of utility functions such as surprise, popularity, prestige, diversity, and magnitude in descending order of its prior value.

[0072] In the case of the "category" function, the point of interest category must be specified. Table 3 shows examples of specific categories for each mindset. As shown in Table 2, since the pre-values of m1, m6, and m7 are 0, they may not be related to the category function. Therefore, it is not necessary to specify a category for such mindsets.

[0073]

Table 3

[0074] Alternatively or additionally, mindsets may be combined in an indirect manner by selecting different mindsets from different iterations. Here, the result of each iteration affects the result of subsequent iterations. By selecting different mindsets from multiple iterations of the method for point of interest recommendation, the results of subsequent iterations may be affected by the user's selection of previous results.

[0075] Groups such as visitor groups or user groups may be formed based on datasets / data such as point of interest datasets / point of interest data. Such datasets may be generated by collecting data or obtaining datasets from external sources or remote servers. For example, publicly available point of interest datasets from third parties such as Yelp, TripAdvisor, Foursquare, and Gowalla may be used for group formation.

[0076] The dataset may include information about visitors and information about points of interest, and / or may be composed of D = <U, P>. To construct a similarity relationship in a dataset such as a publicly available point of interest dataset, a "visitor group" may be formed or constructed by aggregating sets of visitors having common demographics, characteristics, and / or points of interest.

[0077] The visitor group may be virtual, and group members do not necessarily need to know each other. That is, the members of the group are "location friends" (who checked in at the same place), not "social friends" (socially connected like in an LBSN). The visitor group may be a triple g = <members, demogs, POIs>. Here, g.members ⊆ U, and "demogs" and "POIs (Points-of-interests)" may include conditions based on the following mathematical formulas that these members can satisfy.

[0078]

Number

[0079] P μ The "relevance" between a visitor group associated with P and a user μ may be defined by a Boolean function rel(g, P μ ). Here, if the result is 1, it may be regarded as "relevant", and if the result is 0, it may be regarded as "irrelevant". This may be calculated as follows.

[0080]

Number

[0081] In an embodiment, given a user μ, and a context c associated with the user μ = <loc, time>, a mindset m = <label, func>, a radius r, and constants k and k’, the problem is to find k groups G and, for each group of G, k’ points of interest such that the following conditions are met.

[0082]

Number

[0083] The first three conditions ensure that the groups are relevant to the user, are located near the user's location, and are within the same time category of the user's context. The last condition applies the input mindset to the groups and verifies whether the groups' points of interest match the mindset maximally. The problem of determining k groups by maximizing the optimization objective for ambient recommendations using similar groups involves (i) relevance and distance constraints, and (ii) maximizing more than one objective (since the mindset function combines many utility functions for the purpose).

[0084] Since the number of potential relevant groups is huge, ambient recommendations using similar groups are not actually easy. A brute - force scan of the group space extremely consumes the time taken by the mindset function to the maximum.

[0085] In an embodiment, the method and system for ambient point-of-interest recommendation using similar groups are session-based methods and systems, which start from the ambiguous user intent for point-of-interest recommendation and end when the user is satisfied with the generated points of interest. The method and system for ambient point-of-interest recommendation may be referred to as "LikeMind" in the following description. Each session may be composed of a finite sequence of iterations including capturing the interaction with the user. It may start by defining a new iteration mindset or selecting a mindset function (which may be maintained in the same way as the previous iteration). When each iteration ends, k related groups and / or k' points of interest for each group are provided to the user.

[0086] FIG. 4 is a flowchart showing the process of method 300 for point-of-interest recommendation in an embodiment. Specifically, method 300 may be an iterative method with repetition based on the user input of user 302.

[0087] For example, when each iteration ends, the user may freely bookmark some of the recommended points of interest as their favorites. Thus, the user provides two types of feedback to the system, which are the mindset (maintained unchanged during successive iterations) and the point-of-interest bookmarks. This multi-iterative architecture runs counter to most of the conventional single-iterative point-of-interest recommendation approaches by integrating the user interaction into the recommendation. The steps included in method 300 of FIG. 4 may be combined with the steps included in method 100 of FIG. 1.

[0088] Algorithm 1 Input: Visitor U and point of interest P, user context c μ =<loc, time>, radius r, mindset m, number of groups k, number of points of interest per group k' Output: Group G and its point of interest P G

[0089]

Number

[0090] In each iteration, the system may return or provide groups and points of interest from a point of interest dataset (addressing the cold start problem) based on the functionality of the selected mindset. Algorithm 1 describes such a process.

[0091] In step 310, the method and system of the present invention explore all nearby points of interest that exist within the area or radius 306 associated with the user. For example, the method and system of the present invention explore all nearby points of interest that are up to r km / miles away from the user (first line). Here, r may be an input parameter defined by the user or predefined. The parameter r ensures that the recommendations are related to the user's location 304 or the location selected by the user. The points of interest may be retrieved from a dataset 308 that includes information about the points of interest.

[0092] As an example, to achieve searching for points of interest at a near real-time speed, an implementation of the ST_DWithin function of PostGIS (a spatial database extension for the PostgreSQL relational database) is used. The set of nearby points of interest is nearbyP⊆P.

[0093] In step 320, check-in information associated with the explored points of interest is obtained and may be matched with the time 312 associated with the user 302. This time may correspond to the current time or a time selected by the user. The check-in information may include information about the visitors who visited the points of interest.

[0094] Based on nearby points of interest P, information such as check-in information for such nearby points of interest may be retrieved from dataset 314 (second line). Dataset 308 and dataset 314 may be stored in the same data storage, or in different / distributed data storages. The point of interest is included in the set of nearby points of interest p ∈ P, and the time associated with the user is the check-in time t = c μ .time or belongs to a specific period associated with the check-in, the check-in <p, t> may be included in the set of all nearby check-ins H.

[0095] For example, the time condition may convey that the check-in and the user context must belong to the same time category, e.g., "morning". The set H may serve as a join table function between the point of interest and the visitor. For this purpose, the check-in information may be used to search for visitors who have checked in at nearby points of interest.

[0096] Step 330, group G among the checked-in visitors * is mined. Group G * may be mined or determined based on one or more parameters 326. The one or more parameters 326 may be set by the user 302.

[0097] In step 340, one or more groups G, e.g., a group of visitors, may be determined or searched from group G * . The set of groups G is a subset of group G * . The number of groups to be searched is denoted by k and may be defined or selected by the user or predefined.

[0098] Specifically, stage 340 may include determining k groups G that collectively maximize a mindset function (line 4). The set of groups G may match the user's intentions expressed in the mindset. Finally, k' points of interest corresponding to group G are selected. For example, the top k' points of interest for each group that are visited by most of the group members may be selected (line 5).

[0099] In stage 350, k' points of interest and / or k groups G are provided to user 302. At this stage, the user may observe the k groups for selecting to bookmark the points of interest and the k' points of interest for each group G to enrich their photo portfolio.

[0100] The groups may be mined such that the groups are described by one or more characteristics of the visitors associated with the group. In an embodiment, the FIM (Frequent Itemset Mining) technique is used to search / mining the groups. Here, each group is a frequent itemset, and the items are common demographic attributes and POIs of the group members or visitors. The groups can be discovered in innumerable ways, but in the embodiment, FIM is used to obtain describable groups that overlap, whereby a visitor may be a member of two or more groups and may be described in different ways. By providing describable groups, the user can easily know the reasons why specific POIs are provided, and thereby can receive an explanation about the reasons why specific POIs are provided to the user.

[0101] For each visitor u ∈ U, a transaction trans(u) may be constructed that includes all of u's demographic attributes and visited POIs. The set τ includes the transactions of all visitors, i.e., τ = {trans(u)|u ∈ U}. Given any group of visitors g = 〈members, demogs, POIs〉, a group support supp(g) may be defined as a measure of the importance of g (Equation (3)).

[0102]

Number

[0103] A transaction may be a set of items encoded by integers. Thus, all points of interest and demographic values may be encoded by a single integer. Points of interest are already associated with unique identifiers that can often be used directly in transactions, while demographic attributes may have different values in a discrete or continuous domain. For example, the demographic attribute "number of check-ins" may include a wide range of different values.

[0104] An equal-frequency discretization approach may be used to obtain a specific number of categories, e.g., four categories, for each demographic attribute. For example, the categories may be "very few", "few", "some", and "many". Equal-frequency discretization determines the minimum and maximum values of each attribute, sorts all values in ascending order, and divides the range into a predefined number of intervals such that all intervals contain the same number of sorted values.

[0105]

Table 4

[0106] Figure 5 shows an example of discretized values for demographic attributes within a dataset. The discretized attributes generate 28 items (7 attributes and 4 categories for each attribute) to be inserted into the transaction. For example, a visitor transaction may include the "many places" and "few photos" items, which means that the visitor visited many places but did not take many photos.

[0107] In addition to demographics and visited points of interest, the transaction may include a point of interest category and a check-in time. This enriches the transaction so that the group has richer information. In the case of point of interest p in the transaction of visitor u, p.att may be concatenated with trans(u). For example, if Louvre ∈ trans(u), a category, e.g., <cat, museum>, may be an additional item of trans(u). This enables the system to generate a group of visitors who generally check in at museums but not necessarily at the Louvre Museum. For example, in Figure 2, all visitors in group 230a checked in at "historic sites", but the places checked in at by each visitor may be different sites.

[0108] Also, in the case of a pair of point of interest and visit time <p, t> ∈ u.checkins, t may be discretized into time unit and week unit categories, and trans(u) may be concatenated with the time unit and week unit categories along with the category of p. For example, in Figure 2, all members of group 230a may check in at a restaurant (any point of interest in the "restaurant" category) in the evening.

[0109] If a transaction set τ is given, an a priori mining algorithm may be used to mine groups. The input of the a priori mining algorithm is of the ARFF (Attribute-Relation File Format) type, including a set of all enriched transactions. The a priori mining algorithm may not be efficient for a large number of transactions because its execution time increases geometrically with the number of transactions. In a conventional system, such a calculation is performed in an offline stage prior to an online survey of groups, but in the mining process according to an embodiment, it may be performed on the fly by an adjacent filter preceding the a priori mining algorithm. That is, the a priori mining algorithm mines groups only for visitors who have checked in near the user. This significantly reduces the size of the visitor set compared to the total number of users.

[0110] Each mindset is associated with a function that is a set of utility functions (Equation (1)) linearly combined with user-specific weighting values and prior values. The mindset function accepts variables related to a set of points of interest as input and then returns a value in the range [0, 1]. If a mindset m and a group g are given, the utility of g with respect to the function of m may be measured as follows.

[0111]

Number

[0112] When the space of all group utility values is given, the problem is to search for k groups with the maximum group utility value. Since each mindset function is composed of a combination of multiple utility functions, maximizing the mindset function becomes a multi-objective optimization problem. However, in order to reduce the complexity of the problem by single-objective optimization, user-specific weighting values and prior values may be used, and a scalarization approach may be utilized. In an embodiment, a multi-objective optimization approach is used to obtain groups. In an embodiment, a greedy-style algorithm may be used to maximize the mindset function (Algorithm 2).

[0113] Algorithm 2 Input: User μ, mined groups G * , mindset m, number of groups k to be returned, time limit tl.

[0114] Output: Group G such that |G| = k

[0115]

Number

[0116] The algorithm starts by removing all groups that are not relevant to the user (second line). This is to make the groups match the user's preference degree provided from previous interactions. The user may indicate the user's preference degree by "bookmarking" the recommended points of interest. The points of interest bookmarked in this way strengthen the user's photo portfolio but contribute to identifying groups that are not relevant to the user's preference degree. If the user clicks on the point of interest p, then p μ is added to P. The relevance of group g with respect to P, that is μ

[0117]

Number

[0118] After pruning unrelated groups, the algorithm is iterated over the group space to maximize the mindset function. At each step, the algorithm incorporates a new group into the set of k groups and then checks whether the value of the mindset function increases. If an improvement is made, the new group becomes a member of the k-group configuration and another group is selected for replacement. If the time limit tl is exceeded, the improvement loop is interrupted. Usually, the time limit tl must be a user-defined input parameter, but in an embodiment, the time limit is fixed at the time of "continuous recording latency", i.e., t1 = 100 ms. This is the limit at which a human has an instantaneous experience of the interaction process.

[0119] The function pick() (lines 5 and 6) may use different semantics to enforce a "scan order" in the space of groups G * The semantics may be designed to improve the optimization process by moving faster towards the optimized value. The mindset is a combination of different optimization objectives. A "support" measure (Equation (3)) may be used to enforce the order, which makes it more likely that larger groups are selected. The larger the group, the more visitors it contains and the more insightful it is. Thus, the function pick(G * 、k) returns the top k invisible groups within G with the largest support * .

[0120] Since the weighted value of the mindset function is updated by the user's interaction, the recommendation becomes more personalized each time the user interacts with the method and system of the present invention. Given a user μ and a mindset m, the weighted value of the function f of m.func() i is calculated as follows.

[0121]

Number

[0122] When μ has already executed some interaction with the system (i.e., Pμ≠φ), w i、μ The value of is based on the direction of the previous selection towards f of μ i This reflects the importance of the utility scale for user μ. When there is no available interaction, the weighting value is set to 1.0. For example, f i =coverage, and when P contains the point of interest from only one neighborhood in the city, w i、μ may include values close to 0. Intuitively, this indicates that the subjective preference of μ is not very important for maximizing coverage.

[0123] P μ It should be noted that P affects the method according to the embodiment at two different levels of subdivision, namely, the group and mindset levels. At the group level, this enables the system to prune early the groups where P μ and the point of interest do not overlap (the second line of Algorithm 2). At the mindset level, this enables the user-specific weighting value of the utility function to be adjusted according to the user preference of P μ

[0124] For the experiments according to the embodiment, the Gowalla dataset [27, 41] collected from a popular LBSN with 36,001,959 check-ins of 319,063 visitors at 2,844,076 POIs (points of interest) during the period from November 2010 to December 2011 was used. The Gowalla dataset is used as a proof of concept. The timeliness of the point of interest dataset is important. The check-in matrix density of Gowalla is 2.9×10 -5 ​It is so. POIs are grouped into seven different categories, namely, community, entertainment, food, nightlife, outdoor, shopping, and travel. Each category contains multiple sub-categories. For example, "park" is included in the "outdoor" sub-category. Gowalla is one of the few point-of-interest datasets that provide attributes of both visitors and points of interest. This forms groups that include both demographic attributes and points of interest. This enhances the explicability of the groups and enables users to explore groups associated with themselves. The attributes of visitors are as shown in Table 4. Points of interest are described using attributes such as insertion date, location, total number of check-ins, radius (in meters), and category. The experiments according to the embodiments prove the efficiency and effectiveness of the present invention. In the following part of this description, the method and system according to the embodiments may be referred to as "LikeMind".

[0125] Unlike the single-recommendation algorithm, exploratory systems like LikeMind integrate the end-user into the loop. As shown below, the multi-recommendation system LikeMind has a sufficient speed to enable realistic interaction with users. Also, the efficiency of the system is examined by measuring the execution time in each iteration.

[0126] To address the cold start problem, the overall behavior of LikeMind is examined in providing the potential for customization, contextuality, and explicability in point-of-interest recommendations. To remove the influence of human decisions from the exploratory process of LikeMind, interactions are simulated with the Gowalla dataset, and the hit ratio (HR) is analyzed for each simulated session. HR is a metric widely used to evaluate recommendation algorithms.

[0127] Specifically, 100 different sessions are simulated, and the HR is reported as the average for all sessions. In each session, first, a user is randomly selected from the Gowalla dataset. A check-in <p, t> is randomly selected from the set μ.checkins, and the user's context is set to c μ = <p.loc, t>. The set

[0128]

Number

[0129]

Number

[0130] The set ζ μ includes the nearby points of interest (restricted using a radius r) that the user μ visited within two days after their current context time c μ .time. In this experiment, r is set to 0.5 km. LikeMind contributes to the HR if its output overlaps with ζ μ . To simulate a cold start environment, the entire set μ.checkins is masked off as the test set.

[0131] Each session includes N consecutive iterations. Each iteration is executed by simulating the action of selecting a mindset m. After this, LikeMind will use m and c μ to generate a group and its points of interest. The iteration ends by simulating the action of selecting an interest group g * and the points of interest p * associated with g * . The point of interest p * is added to P μ .

[0132] Two baselines for group selection are investigated. (i) The group is randomly selected. (ii) The group g * for which Cosine(g * .demogs, μ.demogs) is maximum is selected. The latter is called the optimal group strategy. Also, two baselines for mindset selection are investigated. (i) One of the mindsets m1~m7 (see Table 1) is randomly selected. (ii) The mindset m for which m.func() has the maximum value with respect to the points of interest of g * in the previous iteration is selected. The latter is called the optimal mindset strategy. For a more realistic simulation of the mindset selection process, it is considered that the user always switches to a new mindset every iteration.

[0133] Accordingly, a parameter θ is defined that indicates the probability that the mindset is maintained without change in the next iteration. For example, when θ = 0.8, there is a high probability that the mindset will not change during consecutive iterations. By default, a random strategy is used for both group and mindset selection, and θ = 0.5.

[0134] HR is determined at two different levels of granularity, namely, the iteration level and the session level. At the iteration level, the measurement is

[0135]

Number

[0136]

Number

[0137] In Equation (7), N is the number of iterations, S is the number of sessions (S = 100), and 1(i,j,μ) is a hit (ζ μA hit indicator function based on iteration that returns "1" when there is a common point of interest). At the session level, the measured value is HR S Denoted as @N and calculated by the average HR for the entire session as a result of all interactions in N iterations.

[0138]

Number

[0139] In Equation (8), 1(i,j,μ) is a session-based hit indicator function that returns "1" when there is at least one hit in iteration j of session i. It is obvious that the session-level HR includes the iteration-level HR.

[0140] Figure 5 shows HR values using various strategies such as group selection, mindset selection, and mindset change. HR is measured by changing N (number of iterations) from 2 to 50. The bar graph on the left side of Figure 5 reports the iteration-level HR, and the bar graph on the right side reports the session-level HR.

[0141] Related to the group selection strategy, the optimal group increases HR by an average of 22% and 38.8% at the iteration level and session level respectively (the top row of Figure 5). At the session level, HR increases to a value exceeding 50% after only 10 iterations and reaches 82% at 50 iterations. Therefore, similar groups serve as a preferred proxy function for obtaining user preference.

[0142] Related to the mindset selection strategy, the optimal mindset increases HR by 22.4% at the session level (the middle column in Figure 5). However, the increase at the iteration level is not significant. This indicates that, in contrast to the group selection strategy, mindset selection has a long-term impact on the overall session. At the session level, HR increases to nearly 50% after 10 iterations and reaches 65% after 50 iterations.

[0143] Also, the effect of changing the mindset during consecutive iterations was investigated. There are three different values for the parameter θ, namely, θ = 0.2, θ = 0.5, and θ = 0.8. The larger the θ value, the higher the probability that the mindset is maintained without being changed during consecutive iterations. The results are shown in the bottom row of Figure 5. In both the case where the value of θ is extremely low and the case where it is extremely high, both provide lower HR values compared to the case where θ = 0.5. This effect amplifies with more iterations. Therefore, the optimal strategy for changing the mindset is a mixed strategy, that is, the mindset is not necessarily changed for each iteration, and there is an equal possibility that the previous mindset is reused.

[0144] In this experiment, the efficiency of LikeMind was investigated by measuring the average execution time for each iteration. The radius r and the number of groups k are the two input parameters that most affect the performance of LikeMind. Accordingly, the execution time was reported by changing r between 50 m and 1 km and k between 5 and 70. Since the k' parameter is a dependent variable of k, it was not specifically analyzed. All performance experiments were run on a 2.2 GHz Intel Core i7 with 32 GB of DDR4 memory on the OS X 10.14.6 operating system.

[0145] To analyze the performance of LikeMind, the execution time is reported for each of the following steps of Algorithm 1.

[0146] Step 1: Search for nearby points of interest (the nearby_POIs() function on the first line of Algorithm 1) Stage 2: Search for check-ins at nearby points of interest (checkins_of() function in the second line of Algorithm 1) Stage 3: Construction of the transaction matrix and generation of similar groups (mine_groups() function in the third line of Algorithm 1), and Stage 4: Search for the k optimal groups and k' related points of interest for a given mindset (maximize() function in the fourth line of Algorithm 1).

[0147] The average execution time over 100 iterations is reported. Each iteration is simulated as described in the "Simulation Study" section. By default, the parameters were set to k = k' = 5 and r = 0.5 km.

[0148] ​

[0149] While specific embodiments have been described, it will be apparent to those skilled in the art that various modifications, changes, and improvements of the embodiments are possible within the scope without departing from the spirit of the embodiments, based on the above teachings and the content of the appended claims. Also, descriptions of areas that those skilled in the art may be familiar with have been omitted to avoid unnecessarily obscuring the embodiments described herein. Therefore, it must be understood that the embodiments should not be limited to specific exemplary embodiments, but only to the appended patent claims.

[0150] The above-described embodiments have been explained in the context of methods and steps, but these also represent descriptions of corresponding components, modules, or features of the corresponding devices or systems.

[0151] Some or all of the methods and steps may be implemented by a computer in that they may be executed by (or using) a processor, a microprocessor, an electronic circuit, or a processing circuit.

[0152] The above-described embodiments may be implemented by hardware or software. The implementation may be executed by a computer-readable storage medium, such as a non-transitory storage medium like a floppy (registered trademark) disk, a DVD, a Blu-Ray, a CD, a ROM, a PROM, an EPROM, an EEPROM, or a flash memory. Such a computer-readable medium may be any available medium accessible by a general-purpose or special-purpose computer system.

[0153] Generally, an embodiment may be implemented as a computer program product having program code or computer-executable instructions, which, when the computer program product is executed on a computer, operate to perform one of the methods described herein. The program code or computer-executable instructions may be recorded on a computer-readable storage medium.

[0154] In an embodiment, the storage medium (or data carrier, computer-readable medium) includes a computer program or computer-executable instructions for performing one of the methods described herein recorded thereon. In other embodiments, the apparatus includes one or more processors and the storage medium described above.

[0155] In other embodiments, the apparatus includes means, such as a processing circuit, e.g., a processor communicating with a memory, which is configured or adapted to perform one of the methods described herein.

[0156] Other embodiments include a computer having a computer program or instructions installed thereon for performing one of the methods described herein.

[0157] The methods and embodiments described above may be implemented within an architecture such as that shown in FIG. 7. This includes a server 500 and one or more client devices 502 communicating via a (wireless and / or wired) network 504, such as the Internet, for data exchange. The server 500 and client devices 502 include a data processor 512 and a memory 513, such as a hard disk. The client device 502 may include an autonomous vehicle 502b, a robot 502c, a computer 502d, or a mobile phone 502e, and may be any device that communicates with the server 500.

[0158] As described in more detail in the embodiments, the method according to the embodiments of FIGS. 1-4 may be executed on the server 500. In other embodiments, the training and classification methods according to the embodiments of FIGS. 1-4 may be executed on the client device 502. In still other embodiments, the training and classification methods may be executed on other servers or by a plurality of servers in a distributed manner.

[0159] A novel approach for point-of-interest (POI) recommendation based on similarity groups is disclosed that addresses the general problems of cold start, customizability, contextuality, and explainability. Specifically, an efficient method for providing POI recommendations in a fast manner is disclosed. Also, a mindset function is provided that extends the user context and enables capturing of the actual situation, the user's sentiment, and the user's intent. The similarity groups and mindset may be time-aware / time-dependent. Further, the methods and systems described herein may include setting user-defined constraints on POI preference and mobility patterns to improve the results of POI recommendations. Also, a transfer learning approach may be used to leverage rich check-ins in the public POI dataset for cold-start-resistant POI recommendation.

[0160] The above-described embodiments are superior to conventional methods that include personalized and socialized POI recommendation approaches where past check-ins and social links are used to predict what POIs should be recommended to a user. Also, the user does not need to share personal data for POI recommendation, and security is enhanced by POI recommendation based on similarity groups.

[0161] (A1) The point-of-interest recommendation may be personalized. That is, the result may be based on the user preference captured by the user's past check-ins and interest patterns. (A2) Since the user trusts similar users (i.e., users in a similar group) and makes decisions based on, for example, the content previously enjoyed by the similar users, the point-of-interest recommendation can integrate the social aspect and reflect the preferences of other users similar to the user. (A3) The point-of-interest recommendation system is exploratory to integrate the interaction between the system and the user, i.e., the customization of the recommended points of interest. (A4) It should be noted that the point-of-interest recommendation can also capture the user's current situation (so-called context) including the user's actual situation and emotions.

[0162] The conventional approaches to point-of-interest recommendation do not address all of the aspects described above simultaneously.

[0163] A method for point-of-interest recommendation implemented by a computer includes the steps of obtaining a plurality of points of interest for a region (the region is at least one of those selected by the user and those related to the user's location), searching for point-of-interest data including visitor information regarding visitors related to the obtained plurality of points of interest and information regarding the obtained plurality of points of interest, forming a plurality of groups (each group of the plurality of groups is related to at least one of the obtained plurality of points of interest) based at least in part on the visitor information, determining one or more groups from the plurality of groups based at least in part on the information regarding the obtained plurality of points of interest, and providing to the user one or more of the obtained plurality of points of interest (the one or more points of interest are related to the determined one or more groups).

[0164] By forming a plurality of groups based at least in part on visitor information and determining one or more groups from the plurality of groups based at least in part on information of the plurality of obtained points of interest, the privacy of the user is protected, thereby enhancing security. The construction of similar groups does not depend on the social aspects or check-ins of the user and enables the recommendation of points of interest related to the characteristics of the visitor.

[0165] Members of the group, for example, visitors, have at least one common characteristic used to describe, label, or represent the group and the points of interest associated with the corresponding group.

[0166] According to one aspect, the position of the user may be determined by a tracking system such as GPS (Global Positioning System), and the area may be determined based on the position of the user. In an embodiment, the position of the user is determined by a Wi-Fi positioning system.

[0167] According to one aspect, the method implemented by a computer further includes determining a mindset function from a plurality of mindset functions. The mindset function includes one or more predefined functions, such as utility functions, and one or more groups from the plurality of groups are determined based at least in part on the information regarding the plurality of obtained points of interest and the determined mindset function. Each function of the one or more predefined functions may receive at least one variable corresponding to a set of points of interest associated with one or more groups of the plurality of groups as an input.

[0168] For example, one or more variables of points of interest associated with one or more determined groups enable maximization of a mindset function, where the variables are obtained from information of a plurality of acquired points of interest. The mindset or the mindset function may be defined to capture the user's actual situation, emotions, and intentions, and may enforce the semantics of the point of interest interest level. By using the mindset function, related similar groups and their points of interest are determined in an efficient and effective manner.

[0169] According to one aspect, the mindset function may be determined based on the user's user input. The user input may include at least one of a label associated with the mindset function, such as a selection of an explanatory label of the mindset function, and a selection of a point of interest and / or group previously provided to the user.

[0170] Additionally or alternatively, the mindset function may be determined based on at least one of the current time and data associated with the user. The mindset function may include one or more weighting values for each of one or more pre-defined functions, where the one or more weighting values include at least one of a pre-defined weighting value and a user-specific weighting value, and the user-specific weighting value is updated by the user's input.

[0171] For example, the user-specific weighting value may be updated in response to the user selecting or bookmarking one of the points of interest provided to the user.

[0172] According to one aspect, the visitor information is retrieved for a specific time or a specific period related to the time or period during which the visitor visited one or more points of interest acquired by the visitor. This makes it possible to provide accurate point-of-interest recommendations in an efficient and rapid manner. For example, one or more groups may be determined within about 100 milliseconds (ms). The processing may be executed on a small device, such as a mobile device with limited processing resources. The plurality of groups may be formed by FIM (frequent itemset mining) techniques, each group being a frequent itemset, and the items including the demographic attributes of the visitor and the points of interest associated with the visitor, the demographic attributes being obtained from the visitor information. The visitor's visitor information may include, for each visitor, the time, time interval and / or period during which the visitor visited a point of interest, a display of the visitor's characteristics, all the points of interest visited by the visitor during the period specified by the visitor among the plurality of acquired points of interest, the number of photos taken by the visitor at one of the plurality of acquired points of interest, the number of photos saved by the visitor on the visitor's mobile device, at least one display of the number of photos taken by the visitor during the specified period and the number of photos posted by the visitor, a display of the number of the visitor's friends, a display of the number of times the visitor visited a specific point of interest among the points of interest acquired by the visitor, at least one of a display of the visitor's age, the visitor's gender, and the number of times the visitor has traveled.

[0173] According to one aspect, the step of providing one or more points of interest to the user includes providing to the user the point of interest that the visitor visits the most for each of the one or more groups.

[0174] Alternatively or additionally, the one or more points of interest are provided in combination with one or more displays of the characteristics of the one or more determined groups. In an embodiment, points of interest (e.g., restaurants, cafes, museums) that have not been visited by the user over a given time interval, e.g., 30 days, are provided to the user.

[0175] According to one aspect, one or more groups are determined based at least in part on information of a plurality of acquired points of interest and the user's photo portfolio, the photo portfolio including a display of points of interest previously selected and / or visited by the user. The information regarding the plurality of acquired points of interest may include, for each point of interest of the one or more acquired points of interest, a display of at least one of an evaluation score, one or more categories, a price range, business hours, peak hours, total number of visitors, payment methods, accessibility for disabled persons, availability of a parking lot, an insertion date, and a size of each point of interest. According to other embodiments, the one or more groups may be determined based on the information regarding the plurality of acquired points of interest but not based on the user's photo portfolio. For example, the one or more groups may be determined based only on the information regarding the plurality of acquired points of interest so that the user's personal information is not used to determine the one or more groups. Thereby, sensitive personal data need not be transmitted or acquired, thereby protecting the user's privacy and enhancing security.

[0176] According to one aspect, a method implemented by a computer may be an iterative method, in response to a user selecting a point of interest from one or more provided points of interest or a group of one or more determined groups, one or more updated groups being determined by steps over at least several times of the same method, and one or more updated points of interest associated with the one or more determined updated groups being provided to the user.

[0177] For example, the at least plurality of steps may include determining one or more updated groups from a plurality of groups or a plurality of updated groups, at least partially based on information regarding a plurality of obtained points of interest and a user selection of a point of interest from one or more provided points of interest or one or more determined groups, and providing to the user one or more updated points of interest of the plurality of obtained points of interest, or newly obtained points of interest, wherein the one or more updated points of interest are associated with the one or more determined updated groups. User interactions affect the manner in which similar groups are selected.

[0178] In other embodiments, a computer-readable storage medium having computer-executable instructions recorded thereon is provided. When executed by one or more processors, the computer-executable instructions perform the point of interest recommendation method described above.

[0179] In other embodiments, an apparatus including a processing circuit is provided. The processing circuit is configured to perform the point of interest recommendation method described above.

[0180] A computer-implemented method for accurately and efficiently generating surrounding point-of-interest recommendations includes: (a) electronically obtaining a plurality of points of interest for a region (the region being a region selected by a user associated with the user's location); (b) electronically searching for visitor information associated with the plurality of obtained points of interest and point-of-interest data including information on the plurality of obtained points of interest; (c) electronically forming a plurality of groups (each group of the plurality of groups being associated with a point of interest of the plurality of obtained points of interest) based on the visitor information; (d) electronically determining a mindset function from a plurality of mindset functions (the mindset function including pre-defined functions); (e) electronically determining a group from the plurality of groups based on the information on the plurality of obtained points of interest and the determined mindset function; and (f) communicating to the user the points of interest of the plurality of obtained points of interest (the points of interest being associated with the determined group).

[0181] The method described above may receive user input from the user, the mindset function is determined based on the user input, and the user input includes the selection of a label associated with the mindset function and the selection of a point of interest or group previously provided to the user.

[0182] The mindset function may be determined based on the current time and data associated with the user, and variables associated with points of interest of a group that maximizes the mindset function, the variables being obtained from the information on the plurality of obtained points of interest.

[0183] The mindset function may include weight values for each of the pre-defined functions, the weight values including pre-defined weight values and user-specific weight values, the user-specific weight values being updated by the user's input.

[0184] The mindset function may be determined based on the current time and data associated with the user.

[0185] The variables of the points of interest related to the group may optimize the mindset function, and the variables are obtained from the information of multiple acquired points of interest.

[0186] Each of the pre-defined functions may receive, as input, variables corresponding to a set of points of interest related to a group of multiple groups. Each of the pre-defined functions is defined as the normalized average number of visitors of the set of points of interest, the normalized average evaluation score of the set of points of interest, the inverse difference between the current date and the average insertion date of the set of points of interest, the polygonal area induced by the geographical location of the points of interest within the set of points of interest normalized by the size of the city, the normalized Jaccard distance between the point-of-interest category of the set of points of interest and the point-of-interest category of the points of interest visited by the user, the normalized Jaccard similarity between the set category and the category of the set of points of interest, the normalized Jaccard distance between the set of point-of-interest categories within the set of points of interest, and the normalized average radius of the points of interest within the set of points of interest.

[0187] The visit information may be related to a time or a period, and the visitor information is retrieved for a specific time or a specific period when the visitor visited the acquired points of interest.

[0188] The multiple groups may be formed by frequent item set mining techniques. Each group is a frequent item set, and the items include the demographic attributes of the visitors and the points of interest related to the visitors. The demographic attributes are obtained from the visitor information.

[0189] The points of interest may be provided in combination with the display of the characteristics of the determined group. The group may be determined based on the information about the multiple acquired points of interest and the user's photo portfolio, and the photo portfolio includes the display of the points of interest previously selected and / or visited by the user.

[0190] The group may be determined based on the information of the multiple acquired points of interest so as to protect the user's privacy.

[0191] The above-described method may determine the user's position. The above-described method may determine an area based on a pre-defined radius from the user's position. The above-described method may determine an area based on a pre-defined radius from the user's position.

[0192] Visitor information regarding visitors may include the time when each visitor visited a point of interest.

[0193] Visitor information regarding visitors may include a display of the characteristics of each visitor.

[0194] Visitor information regarding visitors may include all the points of interest visited by each visitor during a specific period among the multiple points of interest obtained for each visitor.

[0195] Visitor information regarding visitors may include a display of the number of photos taken by each visitor at the points of interest among the multiple points of interest obtained for each visitor.

[0196] Visitor information regarding visitors may include a display of the number of friends of each visitor.

[0197] Visitor information regarding visitors may include a display of the number of times each visitor visited a specific point of interest among the points of interest obtained by the visitor.

[0198] Visitor information regarding visitors may include the age of each visitor.

[0199] Visitor information regarding visitors may include the gender of each visitor.

[0200] Visitor information regarding visitors may include a display of the number of trips of each visitor.

[0201] Information regarding the multiple obtained points of interest may include a display of the evaluation scores for each of the obtained points of interest.

[0202] The information on the plurality of acquired points of interest may include a category for each of the acquired points of interest.

[0203] The information on the plurality of acquired points of interest may include a price range for each of the acquired points of interest.

[0204] The information on the plurality of acquired points of interest may include business hours for each of the acquired points of interest.

[0205] The information on the plurality of acquired points of interest may include congestion hours for each of the acquired points of interest.

[0206] The information on the plurality of acquired points of interest may include the total number of visitors for each of the acquired points of interest.

[0207] The information on the plurality of acquired points of interest may include a payment method for each of the acquired points of interest.

[0208] The information on the plurality of acquired points of interest may include accessibility for disabled persons for each of the acquired points of interest.

[0209] The information on the plurality of acquired points of interest may include the presence or absence of a parking lot for each of the acquired points of interest.

[0210] The information on the plurality of acquired points of interest may include the size of each of the acquired points of interest for each of the acquired points of interest.

[0211] As described above, the embodiments have been described based on limited embodiments and drawings. However, those skilled in the art will be able to make various modifications and variations from the above description. For example, even if the described technology is executed in an order different from the described method, and / or the components such as the described system, structure, device, circuit, etc. are combined or combined in a form different from the described method, or opposed or replaced by other components or equivalents, appropriate results can be achieved.

Claims

1. A method implemented by a computer to generate point-of-interest recommendations for a user, comprising: (a) receiving, by a receiver, an electronic positioning signal from a positioning system; (b) using a processor and a memory to electronically determine the location and area of the user based on the received positioning signal from the positioning system (the area is related to the determined location of the user); (c) using a processor and a memory to electronically obtain a plurality of points of interest for the determined area; (d) using a processor and a memory to electronically search for point-of-interest data and information regarding the plurality of obtained points of interest within the determined area (the point-of-interest data includes visitor information regarding visitors associated with the plurality of obtained points of interest); (e) using a processor and a memory to electronically form a plurality of groups (each group is related to a point of interest within the determined area) based on the determined visitor information, wherein the plurality of groups are formed by frequent item set mining techniques, each group is a frequent item set, the items include demographic attributes of the visitor and points of interest associated with the visitor, and the demographic attributes are obtained from the visitor information; (f) electronically determining a mindset function from a plurality of mindset functions by the user inputting information using an input interface; (g) using a processor and a memory to apply the determined mindset function based on the information regarding the points of interest within the determined area to electronically determine a group from the plurality of groups; and (h) using a processor and a memory to communicate to the user the points of interest within the determined area (the points of interest are related to the determined group). A method as claimed in claim 1, including the above steps.

2. The method according to claim 1, wherein the mindset function is further determined based on the selection of a label associated with the mindset function input by the user and the selection of points of interest.

3. The mindset function is determined further based on a selection of a label associated with the mindset function input by the user and a group previously provided to the user. The method according to claim 1.

4. The mindset function is determined further based on the current time, data associated with the user, and a variable of a point of interest associated with a group that maximizes the mindset function, and the variable is obtained from the information regarding the plurality of acquired points of interest. The method according to claim 1.

5. The mindset function includes a predefined function and a weighting value for each function of the predefined functions, the weighting value includes a predefined weighting value and a user-specific weighting value, and the user-specific weighting value is updated by the input of the user. The method according to claim 1.

6. The electronic positioning signal is a GPS signal. The method according to claim 1.

7. The mindset function is determined further based on the current time and data associated with the user. The method according to claim 1.

8. The electronic positioning signal is a Wi-Fi positioning signal. The method according to claim 1.

9. The mindset function is determined further based on a variable of a point of interest associated with a group that maximizes the mindset function, and the variable is obtained from the information regarding the plurality of acquired points of interest. The method according to claim 1.

10. The mindset function is determined further based on a selection of a label associated with the mindset function input by the user, a point of interest selected by the user, and a group previously provided to the user. The method according to claim 1.

11. Each mindset function receives, as an input, a variable corresponding to a set of points-of-interest associated with a group of the plurality of groups. Each mindset function the normalized average number of visitors of the set of points of interest, the normalized average evaluation score of the set of points of interest, the inverse difference between the current date and the average insertion date of the set of points of interest, a polygonal area induced by the geographical location of the points of interest within the set of points of interest normalized by the size of the city The normalized Jaccard distance between the point-of-interest categories of the set of points of interest and the point-of-interest categories of the points of interest visited by the user, The normalized Jaccard similarity between the set category and the category of the set of points of interest, The normalized Jaccard distance between sets of point-of-interest categories within the set of points of interest, and The normalized average radius of the points of interest within the set of points of interest as defined by The method according to claim 1.

12. The visitor information is associated with time, and the visitor information is retrieved for a specific time when the visitor visited the acquired point of interest. The method according to claim 1.

13. The visitor information is associated with a period, and the visitor information is retrieved for a specific period when the visitor visited the acquired point of interest. The method according to claim 1.

14. The step of communicating the points of interest to the user includes the step of communicating the point of interest having the largest number of visitors for each group. The method according to claim 1.

15. The point of interest is communicated in combination with the display of the characteristics of the determined group. The method according to claim 1.

16. The point of interest is provided in combination with the display of the characteristics of the determined group. The method according to claim 14.

17. The group is determined based on the information regarding the plurality of acquired points of interest and the user's photo portfolio, and the photo portfolio includes the display of the points of interest previously selected and / or visited by the user. The method according to claim 1.

18. The group is determined based on the information regarding the plurality of acquired points of interest so as to protect the privacy of the user. The method according to claim 1.

19. The group is determined based on the information regarding the plurality of acquired points of interest so as to protect the privacy of the user. The method according to claim 17.

20. The determined area is based on a predefined radius from the determined position of the user. The method according to claim 1.

21. The visitor information regarding the visitor includes the time when the visitor visited the point of interest for each visitor. The method according to claim 1. Claim 22 The visitor information regarding the visitor includes a display of the characteristics of the visitor for each visitor, The method according to claim 1. Claim 23 The visitor information regarding the visitor includes all points of interest within the determined area visited by the visitor during a specific period for each visitor, The method according to claim 1. Claim 24 The visitor information regarding the visitor includes a display of the number of photos taken by the visitor at points of interest within the determined area for each visitor, The method according to claim 1. Claim 25 The visitor information regarding the visitor includes a display of the number of friends of the visitor for each visitor, The method according to claim 1. Claim 26 The visitor information regarding the visitor includes a display of the number of times the visitor has visited a specific point of interest within the determined area for each visitor, The method according to claim 1. Claim 27 The visitor information regarding the visitor includes the age of the visitor for each visitor, The method according to claim 1. Claim 28 The visitor information regarding the visitor includes the gender of the visitor for each visitor, The method according to claim 1. Claim 29 The visitor information regarding the visitor includes a display of the number of trips made by the visitor for each visitor, The method according to claim 1. Claim 30 The information regarding points of interest within the determined area includes a display of the evaluation scores for each point of interest within the determined area, The method according to claim 1. Claim 31 The information regarding points of interest within the determined area includes the category for each point of interest within the determined area, The method according to claim 1. Claim 32 The information regarding points of interest within the determined area includes the price range for each point of interest within the determined area, The method according to claim 1. Claim 33 The information regarding points of interest within the determined area includes the business hours for each point of interest within the determined area, The method according to claim 1. Claim 34 The information regarding points of interest within the determined area includes the crowded hours for each point of interest within the determined area, The method according to claim 1. Claim 35 The information regarding points of interest within the determined area includes the total number of visitors for each point of interest within the determined area, The method according to claim 1. Claim 36 The information regarding the points of interest within the determined area includes the payment method for each point of interest within the determined area. The method according to claim 1.

37. The information regarding the points of interest within the determined area includes the accessibility for disabled persons to each point of interest within the determined area. The method according to claim 1.

38. The information regarding the points of interest within the determined area includes the presence or absence of a parking lot for each point of interest within the determined area. The method according to claim 1.

39. The information regarding the points of interest within the determined area includes the size of each point of interest for each point of interest within the determined area. The method according to claim 1.

Citation Information

Patent Citations

  • Information providing system, output terminal, portable terminal, and storage medium

    JP2002132819A

  • Integrated information management system using mobile terminal and its method

    JP2004178339A

  • Sightseeing spot recommendation device and program

    JP2012079144A

  • Route presentation device, mobile terminal, route presentation method, route display method, route presentation program, and route display program

    JP2015036690A

  • Item recommendation system, item recommendation method and program

    JP2016091535A