FIELD OF THE INVENTION

The present disclosure relates to the data bases in general, and to enhancing the exploration of data items, in particular.

BACKGROUND OF THE INVENTION

The Internet environment enables users to get access to mass amounts of information, content, products, etc. Existing methods of reaching the most relevant specific subset of information use search engines and/or navigation tools.

When, for example, visiting popular websites that include mass amounts of information such as YouTube, Amazon, iStock Images, etc., the common means of locating content consist of either using a search engine (i.e. formulating a textual description of the requested information), navigation through categories and sub categories, viewing suggested popular items, or getting recommendations based on related items. Recommendations are based on the notion of “people who viewed A also viewed B”, and “people who viewed B also viewed C”.

SUMMARY OF THE INVENTION

One technical problem dealt with by the present disclosure is how to explore a data source.

While search tools known in the art are typically effective when the user knows how to define what they are looking for, many times this is not the case. Search and navigation require that the users know what they are looking for as well as how to define it. Sometimes users want to explore information without knowing a priori exactly what they are looking for, or without knowing how to define what they are looking for, or to guess in what category it might be.

Known in the art recommendation methods are based on the notion of “people who viewed A also viewed B”, and “people who viewed B also viewed C”. It assumes that all those who liked “A” will most likely also like “B”, and in turn that all those who like “B” will also like “C”. In reality, there are people who like “A” as well as “B” and dislike “C”, while there are people who like “A” and dislike “B”, yet like “C”.

Known in the art navigation through categories restrict the grouping of items to one-to-one relationships.

Most existing search means typically present the user with too many options to choose from, for example too many categories, too many results for a search term, etc. It is very common to have a highly relevant piece of information buried in heaps of irrelevant data and never be found.

Embodiments of the invention provide method for exploring the most relevant data items, or pieces of information from data sources of various forms and sizes, using the accumulated formalized and clustered behavior of previous users combined with an effective analysis and learning system. According to some embodiments, users are presented with data items that may interest them and are encouraged to rank these data items in order to improve the system's suggestions. The system may also pose the user a selection of questions, meant to further discern the user's preferences. There is no barrage of information on the user as found in methods known in the art. As the user provides more feedback, every data item or question presented becomes increasingly relevant to them. The more data items (or selection questions) the user ranks, the better the system can analyze his taste, preference (or current mood), associate the user with a specific pre-defined cluster of previous users (based on their rankings) and present increasingly relevant data items—without any need for the user to define what they are looking for.

According to some embodiments the user is presented with an evolving list of data items (referred to as “dynamic item list” hereunder) possibly interlaced with selection questions when necessary, displaying increasingly relevant data items as they go based on the user's feedback.

Such a system provides a better solution compared to navigation through categories since people—and preferences associated with these people—are grouped by division into multi-level clusters. Such a solution provides a better correlation between a selection of a cluster that a person is associated with and the preferences of this person comparing to method known in the art such as navigation through categories.

The term data item refers herein to an entity in a data source. Such entity may include textual data, an image, an audio clip and a video clip. The entity may represent a product, a service, an article, a person or any other data source entity.

The term data source refers herein to an entity that may provide data items such as a database or web service that may or may not reside on the World Wide Web or be installed locally, or take any other form (be it physical or logical). According to some embodiments, visual representation of a data item is determined by the client's implementation, but usually includes the name of the data item, description, multimedia media data such as image or a video and any other available data elements deemed relevant by the client. These data elements may be acquired from the original data source as well as from related external or internal data sources as defined in the system for that client (e.g., external web services, knowledge bases, etc.). The system may increase the frequency of certain data items to be ranked (for example, new data items).

While the system continually learns from users' feedback, an initial training period may be required wherein the system mainly receives feedback from users, usually without affecting the results displayed to the user. In some embodiments, the training period can be eliminated, for example if a priori information about the data items is gathered and utilized. Such a priori information can be gathered, for example, using existing information about relations between data items in the data source, previous users' preferences regarding data items, code installed on the website to fetch relevant user behavior or from any external data source.

According to some embodiments, the system collects user ranking input of data items in a number of different ways, for example:

Users viewing and ranking a data item on a number scale, e.g. between 1 (not interesting) to 10 (very interesting)

Users positioning a slider on a graphic scale

Receiving verbal input from the user

Exposure statistics (i.e. measuring the time spent by the user viewing or interacting with the presented data item)

Any other means of user input

In cases where the system presents more than one data item to be ranked, the system can ask, for example, which data item is more interesting or present the comparison in a graphic format allowing the user to rank the data items internally according to interest, relevance, etc.

According to some embodiments, the system can receive data sources and data items either as a feed (XML, flat file or another designated format of data item data, via push or pull), using code to fetch data items automatically from the client site, using a local data source or by any other means. The data source can include a large quantity of many types of data items (e.g., products, videos, articles, or any other type of presentable information). Each data item can include different attributes such as name, description, image, video, links to other locations, etc. This information (or link to the information) is stored in the system.

The system can get (via push or pull) updated data items and data sources at regular intervals. New data items may be taken into consideration, for example, by being added to the data item collection as unranked data items, while eliminated data items can be removed.

According to some embodiments, a training period is provided. During the training period, a combination of random data items, popular data items from previous site rankings or external rankings, non-ranked data items or data items with fewer rankings are presented to the user as a dynamic item list to be ranked. The system stores the ranking of each user.

Once a sufficient amount of users and ranked data items has been accumulated, the system initiates a clustering process, intended to group users with similar preferences (also referred to as “moods”) into clusters. The term distance refers herein to a representation of the gap between preferences of users, preferences of clusters and preferences of users and clusters. For example, one method of calculating distance consists of comparing the sum of the squared differences between rankings of identical data items; for example, a user who has so far ranked3data items. The distance from each cluster can be calculated by accumulating the sum of squared differences between each of the 3 user's rankings to the cluster weighted average rankings of each of these data items. The smaller the sum is, the smaller the distance between the user and the cluster is. The level of similarity is inverse to the distance; the smaller the distance, the higher the level of similarity. For example if the distance between the preference of user A and cluster X is 3 while the distance between the preference of user B and cluster X is 4, then the level of similarity between user A and cluster X is higher than the level of similarity between user B and cluster X.

The number of clusters resulting from the clustering process can either be predefined to a specific target or maximal value or decided dynamically according to different criteria. If the clustering is dynamic, a possible criterion could be, for example, the maximum allowed distance between a specific ranker and the cluster closest to them. Once the distance of the closest cluster is greater than this value, a new cluster is created to accommodate this user.

The clustering can be done using an iterative process, initially calculating the distances between each pair of users. The closest pairs are combined to one cluster, and the process is repeated with the new combined cluster acting as a new user entity instead of the individual users, using the weighted average rankings of the users in the cluster as the cluster entity's rankings. A few sets of clusters can be calculated for further optimization of the suggested dynamic item list.

The clustering process may be done in bulk, and can either be run at pre-defined intervals or time periods or be triggered by other events such as a specific amount of users that ranked since last clustering.

The clustering calculation can also take into account change of preference of a user (changing mood). The change of preference may be identified by a significant shift between clusters when calculating the distances of subsequent groups of rankings by the same user. For example, results of rankings of data items 1-5 in the dynamic item list by a certain user may be closer to cluster A, while results of rankings of data items 6-10 in the dynamic item list may be closer to another cluster. In some embodiments, the process of rebuilding the clusters associates the preferences of the user before changing mood to cluster A and the preferences of the user after changing mood to cluster B.

According to some embodiments, distinguishing data items are presented in the dynamic item list to be ranked by the user. The distinguishing data items are characterized by high variance of ranking between different clusters, for example, with the highest variance of all measured clusters. A distinguishing data item may be determined by measuring the variance of rankings of all the data items between the different clusters. Data items with the highest variances are distinguishing data items. These data items can be general distinguishing data items (hereunder “general distinguishing”, i.e.), or data items that distinguish between subsets of clusters (hereunder “subset distinguishing”), that is to say, data items that for a specific subset of clusters display the highest ranking variance between those clusters).

In the calculation of distinguishing data items, the weight of the cluster (i.e. the number of users it contains) may also be considered.

Once a user starts using the system, a feedback-based dynamic item list is presented to the user, who is then encouraged to rank the presented data item before reviewing the next item in the dynamic item list.

The dynamic item list is a set of data items optimized for the user (based on their perceived preference or mood). The most common dynamic item list optimization method is explained below, but custom methods can be developed and used as well if necessary, depending on specific client requirements.

If available, the first data items presented may be the highest general distinguishing data items (i.e. the data items that provide the clearest distinction between clusters), or a random selection between few highest general distinguishing data items. Once ranked by the user, the system then calculates the cluster closest to the user (based on the relevant distance calculation as previously explained). Once the closest cluster has been determined, the system presents a set of data items consisting mainly of highly ranked data items from this cluster, but also of data items that have not yet received sufficient rankings within the cluster (e.g., recently added data items and data items with the fewest amount of rankings in this cluster), as well as general distinguishing data items and subset distinguishing data items of a few clusters, preferably clusters that are close to the user's rankings so far.

Although it is assumed that the highest ranked data items from the closest cluster are the most interesting to the user and are therefore presented more frequently within the dynamic item list so that the user will get more relevant data, at the same time the system may interject data items that may help the system learn the user's mood more efficiently as well as improve its clustering (such as the aforementioned rarely-ranked and distinguishing data items). In some embodiments, it may also be possible for the system to present users with predetermined questions (from an internal or external data source, and not necessarily from the data source to be explored) that are deemed to be distinguishing questions, with the aim of pinpointing the user's cluster or mood as quickly as possible. After every pre-defined number of data items presented (or based on other predetermined criteria), the system dynamically recalculates the cluster closest to the user and continues presenting the dynamic item list based on the methodology above.

In some embodiments, data items in the dynamic item list are presented one at a time and the ranking assigned to the data item is an absolute rank on the predefined scale. In some other embodiments calling for more than one data item to be displayed, the internal ranking within the displayed group is normalized to the predefined ranking scale. In some other embodiments two or more data items are displayed to the user and the user is requested to select any number of relevant data items out of the group. Based on the selections, the system attributes a numeric rank to each of the data items. For example, if one data item is selected over the other, it will be assigned a rank of 10 and the other data item will be assigned a rank of 1.

According to some embodiments, the system can also be applied to a subset of the data items in the data source, such as in the case of a search query or browsing filter. In such a case, only data items present in the relevant subset are taken into account in all the above mentioned methodologies.

According to some embodiments, the system has several sets of clusters, for example a set that divides the users into 10 clusters, into 100 clusters and into 1000 clusters. The distances of users' rankings can be calculated using a different cluster set, based on defined parameters such as number of rankings so far, distance from clusters, etc. There is also the option of creating mood clusters, that is to say, clusters that take a user's mood into account. The mood clusters may be generated in addition to the normal clusters, whose data items can be presented along with data items from the regular clusters when attempting to determine, based on user feedback, if a user's current selections are due to general preference or a specific current mood.

The system can monitor positive user interaction, such as: clicking on a certain link (such as “view more”); purchasing a product; time spent reviewing a data item, etc. The system may increase the weight of the ranks of a user that performed such an interaction, under the assumption that such a user's input is more valuable.

It should be noted that the clustering and distance calculation methods outlined above are only examples of the basic implementation. Other methods can be used for clustering (in addition to or instead of the iterative method described above) and distance calculation (complementing or replacing the use of the sum of squared differences).

