Some current technologies on cell phone apps or other online/computer programs are designed to provide choices and guidance for users. But they are all based on objective information to create or collect other object information to indirectly meet users' interests. For example, GPS is to provide the route from user's current position to the target position; data-driven online advertising is based on user's browsing history to provide targeted advertise.
In other words, current searching systems are based on positions, such as the name of restaurant, specific model of products, etc. Some dynamic data collection methods are getting popular to explore the potential interests of people by using their browsing cache, online shopping history, etc.
There is still lack of understanding on users' subjective interests behind their choices; and users sometimes lose their original intention during online searching.
One barrier is those interests are subjective and most of time too fuzzy to be quantified; another barrier is search engines don't consider users multiple interests, positions, boundary conditions and preferences articulately, to conduct multiple layer interest to position or position to interest interpretation before generating solution. One series of classical algorithm to deal with PI Map with interests and positions is
Hidden Markov Models (HMMs). The three basic problems have been well studied in HMMs, which can be used in this invention:
Problem 1: Given the observation (e.g. positions in this invention) sequence and a model (e.g. PI Map), how to efficiently computer the probability of the observation sequence.
Problem 2: Given the observation sequence (e.g. positions) and the model (e.g. PI Map), how to choose a corresponding state sequence (e.g. interests), which is optimal in some meaningful sense (i.e., best “explains” the observations)?
Problem 3: How to adjust the model parameters (e.g. PI Map) to maximize the satisfaction of solutions from this method.
With this current level of interest/location modeling background, embodiments of the present application provide a method to map users' abstract interests into concrete positions, and navigate through multiple positions to meet compound interests with constrains such as location, time, money, etc.
A method to search concrete positions based on abstract interests or vice versa is disclosed. Based on user's initial inputs of interests to positions mapping (PI Map), this method extends the map further with other users' similar inputs. Weight is associated to each connection in the map to represent preferences. Multiple layers in the map are interconnected to represent different levels of abstraction. When users search for the positions to match multiple interests with constrain and execution order, the method uses the PI Map to find the optimal positions with shortest overall distance to those interests as solutions. Based on the users' usage and final choice, the PI Map is dynamically adjusted through connections and associated weight. Further data analytics is conducted based on the aggregated PI Map from a group of users.
The interest to position mapping will have three different types: one-to-one, one-to-many, or many-to-one, as explained more later.
As shown in the step (1), in layer L0, H is an abstract interest and it is connected with two concrete positions A0 and B0; in a more concrete layer L1, A0 and B0 are interests related to more concrete positions A1and B11.
To clarify the notation convention in this application, use L0A0 and L0B0 to represent the A0 and B0 as position in layer L0; use L1A0 and L1B0 represent the A0 and B0 as interest in layer L1.
As shown in step (2), based on user's initial inputs, the method expends the PI Map from a database (D), which includes a group of users' shared PI Maps. For example, it suggests two alternative positions, L1B12 and L1B13, which connects with the interest L1B0. L1B12 is highlighted to user since most of other user places higher weight on L1B12 than L1B13. In step (2), the method may use different font or color for the display appearance of most related items with higher weight.
In the step (3), user accepts the expansion by including suggested L1B12 into its personal PI Map.
In the step (4), user inputs an inquiry with execution order: ‘Find position in L1 to meet interest L1A0then L1B0, with constrain’. In this inquiry, L1A0 and L1B0 are the interests; and a user is looking for concrete positions to fulfill those interests within the boundary of constrain and following an execution order.
Alternatively, a user may input an inquiry with logic ‘and’: ‘Find position in L1 to meet interest L1A0 and L1B0’; or with logic ‘or’: ‘Find position in L1 to meet interest L1A0 or L1B0’.
Different optimization function for different type of inquiry will be applied as shown in Function (1)-(3). The cost is affiliated to each position to represent money or time consumptions. The constrain requires the summation of cost for all positions in one solution within a boundary, as shown in Function (1)-(3). If the method cannot find answers, it will search it in other users' shared IP map database D, in the step (5).
If it still cannot find the results, then in step (6), the method asks rewrite the inquiry. One way to rewrite the inquiry is to leverage interests to other in higher abstract layer and find alternative path to a position in the same abstract layer which inquiry asked for. For example, leverage L1A0 and L1B0 to L0H , and still searching for positions in L1, which have path to L0H; the solution would be L1B11 only. Another option is to drop constrain.
If it still cannot find the results, in step (7), the method asks users to manually input all or partial of solutions.
In Step (8), multiple solutions created by the method are displayed with the order of their calculated distance between interests and positions. The distance is calculated by the summation of inverse of weight along the path of interests to positions, as shown in the Function(1)-(3), below.
A User selects the preferred solution in step (8). If there is no preferred solution from user's aspect, the user can ask to go through step 5 again.
As shown in the flow chart, the user selected preferred solution is highlighted: ‘Perform L1A12 then L1B12, for example. Note that in this example, the execution order is L1A12 firstly, then L1B12, which is following the order of interests in the inquiry; and L1A2 position didn't exist in the personal PI Map before. It is either coming from step 5 (shared PI Map database, D) or from step 7 (manual inputs). Those positions included in preferred solution will be propagated to personal PI Map by adding new position (L1A12 in this example) to connect with interest (L1A0) and increasing the weight for existing position L1B12, in the step (9).
This refined personal PI Map will be in further propagated to shared PI Map database (D) in the step (10).
In the step (11), a data mining process finds, for a group of users, most of users have common positions corresponding to interests L1A0and L1B0are postions L1A11 and
In the step (12), a business decision is to establish new products/service on L1A11 and L1B11 to best meet users' common interests L1A0 and L1B0. Another way to conduct data mining is to find the correlation among users' different interests. For example in the step (11), it finds most of users having interest L1A0, also having interest L1B0; in the step (12), a business decision is placing the position L1B11 next to L1A11.
Optimization function for the inquiry ‘Find positions in L1 to meet interest L1A0 (first priority, aAU) and L1B0 (second priority, aBO)’:
Optimization function for the inquiry ‘Find position in L1 to meet interest L1A0 then L1B0’
Optimization function for the inquiry ‘Find position in L1 to meet interest L1A0 or L1B0’:
One alternative usage of this method is to search for interests behind giving positions. In the step (4) of
If one position can meet multiple interests, the method finds the optimization solutions with minimum distance, as shown in Function (4).
Optimization function for the inquiry ‘Find interests in L1 to meet position L1A1 (first priority, aA1) and L1B12 (second priority, aB12)’:
The second alternative usage of this method is to find the positions in other layers with different concrete level. In the step (4) of
The third alternative usage of this method is to find hidden positions/interests based on user' inputs and inquiry history.
As shown in
In scenario 1, the method detects the hidden interest L1E0 in the path from L1A0 to L1A11/12/13. The method will suggest to execute L1E11 to fulfill a hidden interest L1E0, which appeared in user's historical inquiry before.
In scenario 2, the method finds a more abstract layer L0, which has a high weighted connection from L0H to L0B0 in the personal PI Map. The method will modify the weight, aB0 in the Function (1) and (4), to let results have shortest distance to B0.
In scenario 3, the method also breaks down a constrain to interest L1G0 and position L1G11. Consequently, constrain will be treated as an interest to create optimal solutions by calculating with other inquired interests.
This application claims the priority filing date of May 1, 2012, of a provisional application by the same inventor, application Ser. No. 61/641,112.