<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>undesigned &#187; recommender</title>
	<atom:link href="http://www.joelduffin.com/blog/category/recommender/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.joelduffin.com/blog</link>
	<description>life is a rum go guv’nor, and that’s the truth</description>
	<lastBuildDate>Wed, 28 Jul 2010 04:12:44 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Presenting personal recommendations</title>
		<link>http://www.joelduffin.com/blog/2009/11/23/presenting-personal-recommendations/</link>
		<comments>http://www.joelduffin.com/blog/2009/11/23/presenting-personal-recommendations/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 18:31:37 +0000</pubDate>
		<dc:creator>joel</dc:creator>
				<category><![CDATA[recommender]]></category>

		<guid isPermaLink="false">http://www.joelduffin.com/blog/?p=374</guid>
		<description><![CDATA[Generating personal recommendations is one thing, presenting them to the user in a way that they find them useful is something else. Here are our plans for folksemantic.com:

Personal recommendations page &#8211; For each user, provide a personal recommendations page. Visually separate recommendations that they have already clicked on.
Personal recommendations tool &#8211; Include a personal recommendations [...]]]></description>
			<content:encoded><![CDATA[<p>Generating personal recommendations is one thing, presenting them to the user in a way that they find them useful is something else. Here are our plans for <a href="http://www.folksemantic.com/">folksemantic.com</a>:</p>
<ul>
<li><strong>Personal recommendations page</strong> &#8211; For each user, provide a personal recommendations page. Visually separate recommendations that they have already clicked on.</li>
<li><strong>Personal recommendations tool</strong> &#8211; Include a personal recommendations button on our folksemantic bar that when clicked on will display their recommendations in the right panel. Linking to the recommendations from that panel will refresh the content in the iframe (not do a full page refresh).</li>
<li><strong>Personal recommendations action link</strong> &#8211; Include a link to the user&#8217;s recommendations page on their dashboard.</li>
<li><strong>Inject recommendations into activity feeds</strong> &#8211; Whenever we generate new personal recommendations, inject them into a user&#8217;s activity feed that is displayed on their dashboard.</li>
<li><strong>Email personal recommendations</strong> &#8211; Email personal recommendations to users as often as they would like (controllable in their account settings).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joelduffin.com/blog/2009/11/23/presenting-personal-recommendations/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A personal recommendation algorithm</title>
		<link>http://www.joelduffin.com/blog/2009/11/23/a-personal-recommendation-algorithm/</link>
		<comments>http://www.joelduffin.com/blog/2009/11/23/a-personal-recommendation-algorithm/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 18:23:21 +0000</pubDate>
		<dc:creator>joel</dc:creator>
				<category><![CDATA[recommender]]></category>

		<guid isPermaLink="false">http://www.joelduffin.com/blog/?p=364</guid>
		<description><![CDATA[We&#8217;re in the process of building out personal recommendations for folksemantic.com. The basis for the recommendations is user attention metadata. The data we use includes:

Identity feeds &#8211; RSS feeds that users register that represent their interests. For example, their blog or their delicious account.
Clicks &#8211; The articles that the user clicks on.
Shares &#8211; The articles [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re in the process of building out personal recommendations for <a href="http://www.folksemantic.com/">folksemantic.com</a>. The basis for the recommendations is user attention metadata. The data we use includes:</p>
<ul>
<li><strong>Identity feeds</strong> &#8211; RSS feeds that users register that represent their interests. For example, their blog or their delicious account.</li>
<li><strong>Clicks</strong> &#8211; The articles that the user clicks on.</li>
<li><strong>Shares</strong> &#8211; The articles that the user shares to others.</li>
<li><strong>Comments</strong> &#8211; Articles that the user comments on.</li>
<li><strong>Time on page</strong> &#8211; Amount of time that a user spends on an article before moving on.</li>
<li><strong>Searches</strong> &#8211; Searches the user executes.</li>
</ul>
<h2>Recommendation Assumptions</h2>
<p>Some of our assumptions are:</p>
<ul>
<li><strong>Semantic relatedness</strong> &#8211; The more semantically similar an article is to articles that a user has paid attention to, the more interesting to the user.</li>
<li><strong>Attention types</strong> &#8211; Different types of attention should be given different weights. For example, following a link to an article should not give it as much weight as writing the article.</li>
<li><strong>Attention details</strong> &#8211; The particulars of a given type of attention might make it more important than another attention of the same type. For example, if a person shares an article with 100 people, it might be reasonable to infer that it is more important than an article that they share with one person.</li>
<li><strong>Entry recency</strong> &#8211; The more recently an article has been added to the system, the more interesting to the user (they probably haven&#8217;t seen it before).</li>
<li><strong>Attention recency</strong> &#8211; The more recently a user has showed attention to an article, the more weight that should be given to it.</li>
<li><strong>Attention frequency</strong> &#8211; The more frequently a user has showed attention to an article, the more weight that should be given to it.</li>
</ul>
<p>Stating these assumptions reminds me of the difference between relevance and certainty. So while an item that a user clicks on may be more relevant than an blog article they have written, it is harder to be certain of that. Our approach is to give the click less weight than the article.</p>
<h2>Recommendation Score</h2>
<p>Right now, we score articles using the formula:</p>
<p><strong>(relevance)(attention type)(attention details)(attention recency)(article recency)</strong></p>
<p>For all articles that a user has paid attention to, we score the 20 &#8220;related articles&#8221; using this algorithm; rank the scores and cache the top 20 (that the user hasn&#8217;t already clicked on) to recommend to the user. There are obvious weaknesses to this approach, but we are going to start there and see where to go next.</p>
<h2>Possible Extensions / Improvements</h2>
<p>We are considering:</p>
<ul>
<li><strong>Collaborative Filtering, Bipartite Graph, and Discriminative Weight Algorithms</strong> &#8211; Putting into production, the <a href="http://www.folksemantic.com/papers/descriminative_weights.pdf">algorithm that combines discriminative weights with a novel sparse matrix clustering method</a> we conducted research on.</li>
<li><strong>Modeling user interests separately</strong> &#8211; <a href="http://www.joelduffin.com/blog/2009/11/18/modeling-users-to-provide-recommendations/">Modeling users interests using multiple term vectors</a> (one for each interest) by extracting vectors from closely related (clustered documents) that users have paid attention to.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.joelduffin.com/blog/2009/11/23/a-personal-recommendation-algorithm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
