wiki:Drupal/UserBehaviourAnalyser

User Behaviour Analyser

one of the OrganikComponents

The User Behaviour Analyser Component aims to track and analyse the behaviour and actions of users while interacting with the OrganiK platform in order to conclude patterns and reinforce its personalisation capabilities.

The following are considered part of the user behaviour and worth analysing:

  • Browsing history: Drupal has built-in support for storing the date and time of the last interaction of a user with a page. This information is stored in a database table and is considered useful because it may reveal the pages of interest to a user, along with the recency of the visit. Nevertheless, the information of the intensity of the user's interest towards a page is missing, since it is not possible to know how many times and for what purpose a user has interacted with a page.
  • User actions: The lack of information by the browsing history is compensated by the tracking of user actions. The OrganiK developers have extended the Drupal code in order to store every interaction between a user and a node. Thus, a suitable database table stores and differentiates between the user actions on a content item, i.e. viewing, editing, viewing a posted comment, posting a comment. This information is then utilised to compute a function for the importance of content items to users.
  • Use of annotation terms: The core Drupal code is extended in order to track and store the use of annotation terms. Drupal only stores the list of terms used to annotate a content item, but misses the information of which user has created and/or used an annotation term. This information is utilised to compute a function for the popularity of annotation terms, based on their use within OrganiK.

· Ratings: By utilising a suitable module (“Fivestar” ratings) users of OrganiK may rate the content items they read on a scale of 1 to 5 stars. These rating are stored and when analysed can offer valuable information on the preferences of users.

Figure 1: User Behaviour Analysis Component - Tracking and analysis of user interaction with OrganiK

Recommendations based on User Behaviour

OrganiK offers personalised recommendations of content items and tags that are based on employing collaborative filtering algorithms to analyse the user behavior. More specifically, collaborative recommenders are developed for OrganiK that base their analysis on the users’ browsing activity, on the users’ ratings on items, on the users’ actions on content items and on the users’ tagging activity to provide personalised content and tag recommendations.

Types of Recommenders

Recommenders have been classified according to the source of knowledge analysed as follows: Collaborative, where the collective activity is analysed, Content-based, where the features of items are analysed, Demographic, where the demographic profile of users is analysed, and Knowledge-based, where users’ preferences are matched to item features after the domain has been adequately modeled. Each category has its advantages and limitations and the selection of a specific method depends a lot on the domain where it will be applied. Collaborative recommenders (or collaborative filtering recommenders) have the benefit of not requiring prior modeling of the domain or detailed information for the users, and also they require hardly any maintenance. They analyse the activity of the community and are able to make predictions on the perceived usefulness of a specific item to a specific user. Since this type of recommenders harnesses the community information it is possible to provide recommendations of items totally different from the usual interests of users.

Collaborative Filtering, CF The recommendation problem in the collaborative filtering approach is defined as the process of estimating the usefulness, or utility, of a specific item, s, for a specific user, c, after analysing the utilities, assigned to this specific item by other users , similar to the current user. The utility in the simplest case can be the rating users give to a specific item. Based on the approach followed for predicting the utility of an item to a user, collaborative recommenders are further classified into memory-based, where predictions are made based on computed similarities between users and between items, and model-based, where predictions result from a learned model, e.g. clusters of users or Bayesian network of items.

In OrganiK we use memory-based collaborative filtering recommenders. In this type of collaborative recommenders the utility values are used to compute similarities between users and then make predictions about which items the user would like based on the assumption that "users who agreed in the past tend to agree again in the future". Initially each user is described with a vector of S dimensions, where S is the number of content items. The value of each dimension is the utility function, e.g. a rating. Various methods are then used to compute similarities between users, e.g. Pearson correlation, Cosine similarity. To conclude on a predicition of a rating for a specific item, the ratings of all, or the k most similar users, for this item are aggregated. The weighted average of all ratings (where weight is usually the similarity score) is the predicted rating.

CF in OrganiK for personalised Content and Tag Recommendations Ratings by users are not always available. For this reason in OrganiK we have used other ways to calculate implicitly the value of the utility of a content item for a specific user. Such implicit ways are based on the browsing activity, the user actions on content items and the user tagging activity.

With the help of the User Behaviour Analyser Component, OrganiK tracks and stores valuable information for the user behaviour. This information is used to compute certain valuable functions and feed the recommendation algorithms. Suitable add-ons to the Recommendation API are employed and fed with adequate input in order to provide accurate and personalised recommendations based on the user behaviour.

Fivestar recommender:

This recommender uses the pair “user – content item” with weight equal to the rating. The recommender can then compute a list of users with similar tastes to the current user as well as a list of recommended content items which were highly rated by users with similar tastes to the current user.'

Code
Browsing History Recommender:

This recommender takes into consideration the browsing history of users and uses the pair “user – content item” with weight equal to the recency of the user's interaction with the item. As such, the recommender is able to compute a list of recommended content items for the current user based on the browsing history of similar users.'

Code
User Actions Recommender:

This recommender takes into consideration the actions a user performed on a content item and uses the pair “user – content item” with weight equal to the importance of the item for the specific user. The recommender then computes a list of recommended content items for the specific user, as it is described below:

Code
Content Recommendations

The purpose of this recommender is on one hand to predict content items that could be of interest to the user, and on the other hand to present content items similar to the item currently viewed by the user.

To achieve predicting valuable items the collaborative filtering algorithm based on user similarity is employed, while to conclude on akin items the collaborative filtering algorithm based on item similarity is used. The difference between the two variations of the collaborative filtering algorithm is that on the user-to-user approach predictions are made based on the correlations discovered between users, while on the item-to-item approach based on the correlations discovered between items.

To compensate for the often lack of explicit evaluation/ratings of content items by users, an alternative method for estimating the utility of a specific item to a specific user is proposed. This method is inspired from the idea of looking into the browsing history of users to discover hidden information in navigation patterns, but rather suggests a simpler approach based on the importance of actions users perform on items in a collaborative environment. A function estimates the interest of a user, c, in a content item, s, and acts as a measure of utility, (formula 1). The interest function takes into consideration the actions of a user viewing or editing a content item, and viewing or adding a comment on a content item, while it assigns suitable weights to each type of action. The interest value results as a weighted sum of the number of times a user performed the abovementioned actions on the content item.

(Formula 1)

The collaborative recommenders described above may optionally include a temporal discount to lower the impact of items used before a specific time period. A measure of timeliness, (formula 2), is introduced that affects the value of the utility function, and is depended on the time elapsed since the last time any user acted upon the content item.

(Formula 2)

Tag History Recommender:

This recommender takes into consideration the use of annotation terms by users and uses the pair “user – annotation term” with weight equal to the popularity of a term based on its internal use. The recommender can then compute a list of recommended annotation terms for the specific user, as described below:

Code
Tag Recommendations

The purpose of this recommender is to support users in retrieving resources organised in an ad-hoc manner, based on a structure that emerges from the tagging actions of the community. The recommender extends the collaborative filtering technique in the domain of folksonomies, in order to predict tags that the user might not have used before, but which could be relevant to her interests. The prediction results from analysing the tagging activity of the community of users by exploiting the collaborative filtering methodology. In this case we are defining the recommendation problem in the space of users, C, and tags, T. The usefulness of a tag, t, to a user, c, is estimated based on a utility function, (formula 3), that takes into consideration the number of times the tag is used by the user and combines it with a measure of tag popularity. In various papers the popularity of a tag is synonymous to the frequency of its use. In the current implementation a tag popularity measure was employed that silences the influence of tags that were used only once or used multiple times by a single user. The resulting recommendations are based on user-to-user collaborative filtering analysis and make personalised suggestions of tags outside the scope of a specific content item.


(Formula 3)

The collaborative recommenders described above may optionally include a temporal discount to lower the impact of items used before a specific time period. A measure of timeliness, (formula 4), is introduced that affects the value of the utility function, and is depended on the time elapsed since the last time any user acted upon the tag.


(Formula 4)

Last modified 7 years ago Last modified on 07/21/10 14:15:34

Attachments (4)

Download all attachments as: .zip