wiki:Drupal/Recommender

Recommender Component

one of the OrganikComponents

The Recommenders module is an implementation of a recommender system, i.e. a system that utilises past information of the system in order to provide suggestions to the user. This component assists users of the OrganiK system as the volume of resources in the knowledge intensive corporate environment scales up.

Recommenders are commonly used commercially in order to suggest products or services but in OrganiK they are used for suggesting related resources, such as blog posts or wiki pages, and tags while annotating the various resources.

Recommendations Engine

The recommendation engine of OrganiK utilised various recommendation algorithms which heavily employ statistics and probabilities in order to compute similarities between users and based on these to predict and recommend content items that could be of interest. The Drupal community offers the “Recommendation API” which implements the classical collaborative filtering algorithms. RTD partners have implemented suitable add-ons which utilise this API among others.

Suggested Tags Recommender

Using

When editing a content item (node) OrganiK analyses the text of the node and suggests (based on content analysis) the most descriptive and important keywords which may be used for annotation purposes. As the user edits and changes the text, the list of suggested tags is updated.

How it works

The text of the content item is analysed based on a linguistic (natural language processing) algorithm, a statistical algorithm (latent Dirichlet allocation) and an algorithm that is based on the TF-IDF (term frequency–inverse document frequency) measure which helps to evaluate how important a word is to a document in a collection or corpus. Each algorithm identifies the most important words or phrases of the text to be suggested as tags. Every word or phrase has a score with value within the range 0 and 1; the greater the score, the more important and descriptive the tag is for the specific text.

After each algortihm has analysed the text the results are aggregated and combined. For the cases where the same word or phrase is suggested by more than one algorithm its final score results from summing up all individual scores. Finally the scores of all results are divided by 3 (to make sure that the score remains between 0 and 1 even for the results that have an aggregated score.

Configuration

To view the related tag recommendations it is necessary that the modules below are enabled.

Administer / Site building / Modules
  • organik_utils
  • wordanalyser
  • organik_nlp
  • organik_nlp_api
  • semantic_api
  • rdf
  • taxonomy

Most important, set the NLP Servlet location in the NLP configuration. Example location: localhost:8080/OrganikTextAnalyzerServlet/TextAnalyzerServlet.

Also, the LDA Servlet location should also be set. Example location http://hermes.epd.ece.ntua.gr:8080/LdaTextAnalyser/AnalyseExistingResources and http://hermes.epd.ece.ntua.gr:8080/LdaTextAnalyser/AnalyseText

Development

It is part of organik_utils and wordanalyser modules

Related Content Recommender

The related content recommender analyses the current content item (node) and recommends similar content items (nodes) based on text similarity.

Using

When visiting the page of a content item (node) a block with a list of similar content items shows up on the right side. Moreover the same block appears when the user edits the node. The list of related content items is updated as the user changes the text of the node.

How it works

The related content recommender combines results from a content-based recommender (CN-based) and collaborative filtering-based recommenders (CF-based).

The content-based recommender is based on a statistical algorithm (latent Dirichlet allocation) to identify the most important topics of the text. Based on this analysis and the topic to topic similarity, the algorithm is able to compute similarities between content items, and finally suggest the most similar content items for the specific text.

The collaborative filtering recommenders run periodically and analyse the existing information on user behaviour to compute similarities between users and items, and to predict interesting items for users. The information analysed involves the browsing history (CF-B), the actions users perform on content items (edit, comment, etc.) (CF-UA), and the ratings of users on content items (CF-R), (see here for further details).

Each algorithm suggests similar and/or related content item. Every content item has a score with value within the range 0 and 1; the greater the score, the more similar and/or related the content item is.

The results of each algortihm are aggregated and combined. For the cases where the same content item is suggested by more than one algorithm its final score results from aggregating all individual scores:

Final Score = 0.4 * [CF-based] + 0.6 * [CN-based],

where CF-based = (0.2 * CF-B ) + (0.4 * CF-UA) + (0.4 * CF-R)

Configuration

To view the related content recommendations it is necessary that the modules below are enabled and that the "Related Content" block is visible.

Administer / Site building / Modules
  • organik_utils
  • wordanalyser
  • organik_nlp
  • organik_nlp_api
  • semantic_api
  • rdf
  • taxonomy
Administer / Site building / Block
  • Recommender 1: Related content should be visible in the Right sidebar

Most important, the LDA Servlet location should also be set. Example location http://hermes.epd.ece.ntua.gr:8080/LdaTextAnalyser/AnalyseExistingResources and http://hermes.epd.ece.ntua.gr:8080/LdaTextAnalyser/AnalyseText

Development

It is part of organik_utils and wordanalyser modules

Personalised Items Recommender

Using

In OrganiK every user has a personal space (My Account) where she can manage some personalised settings (e.g. subscriptions) and view personalised messages (notifications) and recommendations. The personalised recommendations pages provides personalised recommendations of content items (nodes), tags and users that are predicted to be interesting and important for the specific user. The predictions are based on analysing the user behaviour and employing Collaborative Filtering algorithms.

How it works

The personalised items recommender offers recommendations of content items and tags that are predicted to be interesting for the specific user, as well as recommendations of users with similar interests. To this end 4 collaborative filtering-based recommenders (CF-based) are employed that analyse the existing information on user behaviour. The information analysed involves the browsing history (CF-B), the actions users perform on content items (edit, comment, etc.) (CF-UA), the ratings of users on content items (CF-R), and the tagging activity of users (CF-T).

For further details see the User Behaviour Analysis.

Recommended Content Items

The CF-B, CF-UA and CF-R algorithms suggests content items that are predicted to be related to user interests. Every content item has a score with value within the range 0 and 1; the greater the score, the more relevant the content item is.

The results of each algortihm are aggregated and combined. For the cases where the same content item is suggested by more than one algorithm its final score results from aggregating all individual scores:

Final Score = (0.2 * CF-B ) + (0.4 * CF-UA) + (0.4 * CF-R)

Recommended Tags

The CF-T algorithm exploits the tagging behaviour of users (which tags are used by which users, how popular a tag is) and predicts tags that are considered important for users. Each recommended tag has a score in the range of 0 to 1. The greater the score the more relevant the tag is.

Similar Users

The CF-UA and CF-R algorithms base their predictions on the computed similarities between users. These similarities are used to suggest users that are though to have similar interests with the specific user. Every suggested user has a score with a similarity value within the range 0 and 1; the greater the score, the more similar the content item is.

The results of each algortihm are aggregated and combined. For the cases where the same user is found similar by more than one algorithm its final score results from aggregating the individual scores:

Final Similarity Score = (0.6 * CF-UA) + (0.4 * CF-R)

Configuration

To view the personalised items recommendations it is necessary that the modules below are enabled.

Administer / Site building / Modules
  • organik_utils
  • fivestar_rec
  • history_rec
  • organik_fivestar_rec
  • organik_history_rec
  • tag_history_rec
  • user_action_history_rec

Development

It is part of organik_utils

See also

See here how user behaviour - based recommenders work.

See here how content - based recommenders work.

Last modified 7 years ago Last modified on 07/27/10 10:01:24