Artificial Intelligence/Search/Recommender Systems

Recommender Systems
Recommender Systems were created to assist in sorting through the vast amount of information that the internet can provide. These systems function by taking in some type of user information, such as preferred music artists etc. and provide recommendations for new items based on the user’s previous choices. As shown by Zaier, Godin, and Faucher (2008) recommender systems have been very commercially successful, specifically in e-commerce.

Basic Functioning
As defined by Zhan et al. (2008), a recommender system has two basic entities; the user, which is the person, or agent using the system to give and receive recommendations, and the item is whatever entity that is being rated and searched by the user. The users form a community, which is usually the main source of information for the database, however other methods are used as well.

Collaborative Filtering
Collaborative filtering is a commonly used system, though because it does not deal with. Chun and Hong (2001) explain that this method is based on the idea that human preferences are correlated, and one individual’s preferences can provide suggestion about another who is similar along some constraint. The system operates on numeric rating values of items as given by users.

To determine relatedness between two users in a collaborative system, a Pearson Correlation is often used. This is a mathematical formula often used in statistics that can determine the correlation between two variables, as expressed as a rating of how correlated the variables are.

Content Based Filtering
Research by Hijikata, Iwahama, and Nishida (2006) on content based filtering indicates that though it a common recommender system for text based information, with current advancements it is becoming a good option for music as well. They explain that most filter systems that deal with music data tend to create a content model of parameters from the music, which is then compared with a user’s profile also using the music parameters. The system then functions by comparing the content model to the user profile, using one of two methods. Hijikata et al. define the first method as a vector method, which attaches vectors to parameters of the profile which are then compared to the content model using distance. The second method for comparison involves weighting the feature parameters of a profile, and subsequently using them in a calculation to be compared to a threshold value. Hijikata et al. refined comparing user profiles to a content model, and reduced issues with using content based filtering with music data by introducing a learned decision tree in the user profile. Using the decision tree allows the important parameters to be filtered out, and is easily read and changed by the user, and also removes unimportant noise data.

Knowledge Based Filtering
Chung and Hong also distinguished another type of model, which is considered to be knowledge based. Knowledge based recommenders ask users about what they are looking for, and searches through a database to find selections based on the user’s requirements, and often ask the user to provide information as to the relevance of the choices.

Though these are the most common types of recommender systems, there are many other types and hybrids that are occasionally used.

Agent Based Recommendation
Possibly the most popular and often used recommender is the internet search engine. An agent is a data miner that takes information about individuals. Though the type of system used to generate site recommendations varies, Birukov, Blanzieri, and Giorgini (2005) created an agent based recommender which like most uses an individual’s behaviour to provide better suggestions to users within the individual’s community (group sharing similar patterns), but also extracted implicit knowledge from individual users for the groups.

Implementation
Each of the system types described above involve different methods of search and recommendation. The only true commonality between them is the fact that they have an input, some sort of information from the user, processing, in which relevant options are determined, and an output, usually a text recommendation that often refers to an item, website, song/artist, etc. that can be subsequently viewed or accessed by the user.

Below is an example of pseudocode written by Birukov et al. as an example of the most commonly seen and used system, agent based recommendation:

global result for all message in INBOX do    if (message.type == 'query') then result := nil if (query.sender == user) then google-search(query.sender,query.keyword,result.links) inform(self, user, result.links) end if

SICS.internal-search(query.sender,query.keyword,result.links) SICS.external-search(query.sender,query.keyword,result.agents)

if (query.sender == user) then if (result.agents == nil) then add(DF,result.agents) end if

for all agent in result.agents do     request(self,agent,query.keyword) end for

inform(self, user, result.links) else inform(self, query.sender, result.links) inform(self, query.sender, result.agents) end if

else if (message.type == reply) then if (message.content == resource-link) then add(resource-link, result.links) else if (message.content == agent-ID) then add(agent-ID, result.agents) end if end if end if

else if (message.type == 'feedback') then add(feedback,observations)

end if end if end for

Examples
Amazon

Genius(iTunes)

Pandora

Scarab Recommender

/Boltzmann Machines/