??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品成人网站在线播放,丁香五月亚洲综合深深爱,亚洲第一中文字幕http://m.tkk7.com/libin2722/category/53383.html虚其心,可解天下之问Q专其心Q可d下之学;静其心,可悟天下之理Q恒其心Q可成天下之业?/description>zh-cnFri, 08 Mar 2013 06:06:42 GMTFri, 08 Mar 2013 06:06:42 GMT60个性化推荐技术O?/title><link>http://m.tkk7.com/libin2722/articles/396041.html</link><dc:creator>C物</dc:creator><author>C物</author><pubDate>Mon, 04 Mar 2013 08:39:00 GMT</pubDate><guid>http://m.tkk7.com/libin2722/articles/396041.html</guid><wfw:comment>http://m.tkk7.com/libin2722/comments/396041.html</wfw:comment><comments>http://m.tkk7.com/libin2722/articles/396041.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.tkk7.com/libin2722/comments/commentRss/396041.html</wfw:commentRss><trackback:ping>http://m.tkk7.com/libin2722/services/trackbacks/396041.html</trackback:ping><description><![CDATA[ <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">如果说过ȝ十年是搜索技术大行其道的十年Q那么个性化推荐技术将成ؓ未来十年中最重要的革C一。目前几乎所有大型的电子商务pȝQ如Amazon、CDNOW、Netflix{,都不同程度地使用了各UŞ式的推荐pȝ。而近来以“发现”ؓ核心的网站正开始在互联|上崭露头角Q比如侧重于音乐推荐的八宝盒Q侧重于图书推荐的豆瓣等{?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">那么Q一个好的推荐系l需要满什么目标呢Q?br style="margin: 0px; padding: 0px;" />个性化推荐pȝ必须能够Z用户之前的口呛_喜好提供相关的精的推荐Q而且q种口味和喜Ƣ的攉必须量的需要用L力_。推荐的l果必须能够实时计算Q这h能够在用L开|站前之前获得推荐的内容Qƈ且及时的Ҏ荐结果作出反馈。实时性也是推荐系l与通常的数据挖掘技术显著不同的一个特炏V?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">一个完整的推荐pȝ׃部分构成Q行录模块、模型分析模块和推荐模块。行录模块负责记录能够体现用户喜好的行ؓQ比如购买、下载、评分等。这部分看v来简单,其实需要非总l的设计。比如说购买和评分这两种行ؓ表达潜在的喜好程度就不尽相同完善的行录需要能够综合多U不同的用户行ؓQ处理不同行为的累加。模型分析模块的功能则实C对用戯录的分析Q采用不同算法徏立v模型描述用户的喜好信息。最后,通过推荐模块Q实时的从内定w{选出目标用户可能会感兴趣的内Ҏ荐给用户。因此,除了推荐pȝ本nQؓ了实现推荐,q需要一个可供推荐的内容集。比如,对于音乐推荐pȝ来说Q一个音乐库是q样的内定w。我们对内容集本w需要提供的信息要求非常低,在经典的协同qo法下,内容集甚臛_需要提供IDp够。而对于基于内容的推荐pȝ来说Q由于往往需要对内容q行特征抽取和烦引,我们׃需要提供更多的领域知识和内容属性。这U情况下Q还是拿音乐举例Q歌手、流z之cȝ属性和音频信息成为必需的内定w信息?br style="margin: 0px; padding: 0px;" /><br style="margin: 0px; padding: 0px;" /></div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">q今为止在个性化推荐pȝ中,协同qoQCollaborative FilteringQ技术是应用最成功的技术。目前国内外互联|上有许多大型网站已l应用这Ҏ术ؓ用户更加的推荐内宏V如果你惌研究协同qoQ一定不能错qMovieLensQ?a style="margin: 0px; padding: 0px; color: rgb(51, 102, 153); text-decoration: none;">http://movielens.umn.edu/</a>Q。它是协同过滤最著名的研I目之一?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">W一代的协同qo技术,又被UCؓZ用户QUser-basedQ的协同qo。基于用L协同qoQ基本原理是Z用户行ؓ选择的相x。用L行ؓ选择q里指的是下载、购买、评L{能够显式或者隐式体现出用户喜好的行为。在一个典型的Z协同qo技术的推荐pȝ中,输入数据通常可以表述Z个m×n 的用户内容矩阵RQm是用hQn是内Ҏ。矩늚g内容的类型有养I通常p录模块决定。如果内Ҏ|上书店中的书,则矩늚值可以表C用戯C否,例如1表示购买Q?表示没有购买Q或者表C用户对它的评h有多高,q样的评价值就可以有几个等U,比如常见??U评价制?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Z用户的协同过滤,通过比较目标用户的一pd行ؓ选择和其他用户之间的怼性,来识别出一l相互具有类似喜好的用户Q又可以UCؓ“同好”。一旦系l能够识别一个用L同好用户Q就能够他们最感兴的内容作ؓ当前用户的推荐结果推荐给q个用户。也是_以前的行为选择与你怼的用P在以后的行ؓ中很可能也会和你怼。因此将q些用户做ؓ基准来向你推荐内宏V?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">协同qo的核心问题是L与目标用户兴相q的一l用戗这U相似用户通常被称为最q邻居(Nearest NeighborQ。用户之间的怼度是通过比较两个用户的行为选择矢量得到的。目前,比较行ؓ选择矢量的相似度计算Ҏ有许多种Q比较经典的法包括泊松相关pLQPerson Correlation CoefficientQ和余u怼性(Cosine-based SimilarityQ?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">“最q邻居”生后Q我们就能够计算得到用户最可能感兴的内容集(也叫做TopN推荐集)。ؓ了得到推荐集Q分别统计“最q邻居”中的用户对不同内容的兴度Q取其中排在最前面的内容作为推荐集。下面是一个简化的CZQ假如用户张三有两个同好Q李四和王五?/div> <div style="margin: 0px 0px 0px 21pt; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-indent: 21pt;"> </div> <div style="margin: 0px 0px 0px 21pt; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-indent: 21pt;">张三喜欢看电影AQ?/div> <div style="margin: 0px 0px 0px 21pt; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-indent: 21pt;">李四喜欢看电影AQBQC和DQ?/div> <div style="margin: 0px 0px 0px 21pt; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-indent: 21pt;">王五喜欢看电影AQBQDQE和FQ?/div> <div style="margin: 0px 0px 0px 21pt; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255); text-indent: 21pt;"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">q样Q推荐系l就能够qo出相似用户都喜欢的电影B和D作ؓ张三最可能也会喜欢的电影推荐给张三?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">Z用户的协同过滤技术在个性化推荐pȝ中获得了极大的成功,但它有自w的局限性。推荐集的生方式意味着一个内容只有已l被用户选择Q购乎ͼ后才有机会被推荐l其他用戗对于一个网上书店来_C架的书因没有被相当数量的用户购买或者评L记录Q便很少有机会被用户的“最q邻居”筛选进入推荐集。这个问题,也被UC为协同过滤的“冷启动”问题?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">此外Q因用L怼度时Q是通过目标用L历史行ؓ记录与其他每一个用L记录相比较得出的Q所以对于一个现实的推荐pȝ来说Q扩展性将成ؓ非常严重的问题。设想一下,对于一个拥有上百万用户的网站来_每计一个用户都涉及到上百万次的比较,更不要说其中会带来的大量数据库IO操作的开销?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">于是W二代基于内定wQItem-basedQ的协同qo技术就产生了。与Z用户的技术不同的是,q种Ҏ比较的是内容与内容之间的怼度。Item-based Ҏ同样需要进行三个步骤获得推荐:1Q得到内定wQItemQ的历史评分数据Q?Q针对内定wq行内容之间的怼度计,扑ֈ目标内容的“最q邻居”;3Q生推荐。这里内定w之间的相似度是通过比较两个内容上的用戯为选择矢量得到的。D个例子,假设用户和内定w如下Q?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);" align="center"> <table style="margin: 0px; padding: 0px; border: medium none; border-collapse: collapse;" border="1" cellpadding="0" cellspacing="0"> <tbody style="margin: 0px; padding: 0px;"> <tr style="margin: 0px; padding: 0px; height: 15pt;"> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: 1.5pt medium 1pt; border-style: solid none; border-top-color: green; width: 40.8pt; border-bottom-color: green; height: 15pt;" valign="top" width="54"> <div style="margin: 0px; padding: 0px;"> </div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: 1.5pt medium 1pt; border-style: solid none; border-top-color: green; width: 51.3pt; border-bottom-color: green; height: 15pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">电媄A</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: 1.5pt medium 1pt; border-style: solid none; border-top-color: green; width: 50.45pt; border-bottom-color: green; height: 15pt;" valign="top" width="67"> <div style="margin: 0px; padding: 0px;">电媄B</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: 1.5pt medium 1pt; border-style: solid none; border-top-color: green; width: 51.3pt; border-bottom-color: green; height: 15pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">电媄C</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: 1.5pt medium 1pt; border-style: solid none; border-top-color: green; width: 51.3pt; border-bottom-color: green; height: 15pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">电媄D</div> </td> </tr> <tr style="margin: 0px; padding: 0px; height: 15.75pt;"> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 40.8pt; height: 15.75pt;" valign="top" width="54"> <div style="margin: 0px; padding: 0px;">张三</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 50.45pt; height: 15.75pt;" valign="top" width="67"> <div style="margin: 0px; padding: 0px;"> </div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;"> </div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;"> </div> </td> </tr> <tr style="margin: 0px; padding: 0px; height: 15.75pt;"> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 40.8pt; height: 15.75pt;" valign="top" width="54"> <div style="margin: 0px; padding: 0px;">李四</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 50.45pt; height: 15.75pt;" valign="top" width="67"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> </tr> <tr style="margin: 0px; padding: 0px; height: 15.75pt;"> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 40.8pt; height: 15.75pt;" valign="top" width="54"> <div style="margin: 0px; padding: 0px;">王五</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">不喜?/div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 50.45pt; height: 15.75pt;" valign="top" width="67"> <div style="margin: 0px; padding: 0px;"> </div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">不喜?/div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border: medium none; width: 51.3pt; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">不喜?/div> </td> </tr> <tr style="margin: 0px; padding: 0px; height: 15.75pt;"> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: medium medium 1.5pt; border-style: none none solid; width: 40.8pt; border-bottom-color: green; height: 15.75pt;" valign="top" width="54"> <div style="margin: 0px; padding: 0px;">赵六</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: medium medium 1.5pt; border-style: none none solid; width: 51.3pt; border-bottom-color: green; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: medium medium 1.5pt; border-style: none none solid; width: 50.45pt; border-bottom-color: green; height: 15.75pt;" valign="top" width="67"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: medium medium 1.5pt; border-style: none none solid; width: 51.3pt; border-bottom-color: green; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;"> </div> </td> <td style="margin: 0px; padding: 0cm 5.4pt; border-width: medium medium 1.5pt; border-style: none none solid; width: 51.3pt; border-bottom-color: green; height: 15.75pt;" valign="top" width="68"> <div style="margin: 0px; padding: 0px;">喜欢</div> </td> </tr> </tbody> </table> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">可以看出Q电影A与D是最怼的。因为张三喜ƢAQ所以电影D可以推荐给张三?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">和基于用L推荐pȝ相比Q基于内定w的推荐系l最大的改进是更h扩展性。基于内定w的方法通过计算内容之间的怼性来代替用户之间的相似性。对于通常的互联网应用来说Q提供的内容Ҏ量相对较为稳定。比如一个大型网上书店,可能出售的书c数量也在几十万上下,而用h量就可能辑ֈ几百万。所以,比v用户Q内定w之间的相似性计需要的计算量要很多,从而大大降低了在线计算量,提高pȝ性能。基于内定w的推荐系l应用最为成功的是Amazon。Amazon为此q申请了一专利叫做”Collaborative recommendations using item-to-item similarity mappings?a title="" name="_ftnref1" style="margin: 0px; padding: 0px; color: rgb(51, 102, 153); text-decoration: none;"><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px;"><span style="margin: 0px; padding: 0px; font-size: 10.5pt;">[1]</span></span></span></span>。当Ӟ在降低了计算量的同时Q完全基于内定w的推荐技术也在推荐的准确度上做了小的牺牌Ӏ大多数情况下,Z用户的推荐技术表现要略好于基于内定w的方法。这是因为基于内容的Ҏ忽略了相似用户之间的l群特征?/a></div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">不论是第一代的Z用户ҎQ还是第二代的基于内定wҎQ都不可避免的遇到数据稀疏的问题。在M一个网站中Q用L评分记录或者购买记录,相对整个可供选择的内定w来说Q都是很的一部分。所以在许多推荐pȝ中,每个用户涉及的数据量相当有限Q在一些大的系l如Amazon中,用户最多不q就评hq上百万本书?Q,造成评估数据相当E疏。当用户评hq的内容之间找不C集时Q就难以判断用户的口x否相|难以扑ֈ怼用户集,D推荐效果大大降低。ؓ了解决用h据的E疏问题,最方便的办法就是将用户Ҏ有选择q的内容的评分设ؓ一个固定的~省|例如用户的^均评分。针对如何预遗漏的评分业内又提Z很多U方法,不过一般来说采用最单的改进Ҏ可以有效地提高协同qo推荐pȝ的准度?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">另外一斚wQ即侉K用了Z内容的ҎQ在数据量巨大的时候,计算复杂度仍然成为性能瓉。ؓ了进一步解军_同过滤技术的扩展性能问题Q目前比较有效的办法是在用户评分数据上做一ơ聚cd?clustering)。聚cL术首先将h怼兴趣爱好的用户分配到相同的分cM。聚cM生之后,它或者将“最q邻居”搜索对象限制在最相近的聚cMQ根据类中其他用L评h预测目标用户的评P或者用聚类的中心作似提取推荐结果。由于用户之间的分类相对变化比较,因此聚类q程往往可以ȝq行Q而无需实时计算Q这样就大大降低了实时推荐的计算压力Q提高推荐系l的速度。一般来_聚类用户分为多个c,推荐pȝ的整体速度p够提高多倍。具体选择什么样的聚cȝ法,又会因应用领域和数据的分布特性而不同。如果聚cȝ法选择不当Q反而会降低推荐的准性。近q来Q推荐系l的法技术的发展也有了一些新的方向,比如SlopeOneQSVD{方法,׃一一列D了?/div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);"> </div> <div style="margin: 0px; padding: 0px; color: rgb(51, 51, 51); font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 26px; orphans: auto; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; background-color: rgb(255, 255, 255);">在我看来Q一个商用推荐系l的其关键之处在于Ҏv量用h据的处理。因为推荐系l是数据优先Q数据的U篏多Ҏ荐的_ֺp有好处。而当用户的行为数据真正积累到上百万甚至上亿时Q如何在合理旉内得出有效的推荐Q就是对推荐技术最大的考验。除此之外,一个优U的推荐系l需要能够结合内容相g用户行ؓ相。传l的协同qoҎ是忽略内Ҏw的属性的Q这一斚w固然是对数据要求的优点Q但另一斚w也带来了难以避免的“冷启动”问题。其实,随着标签pȝ在互联网上的q泛应用Q标{本w就不失为是一U很好的内容属性。如何利用也是值得大家探讨的。充分利用到内容本n的属性,不同的怼性结合v来,q会l基于协同过滤的推荐技术带来新的动力。最后一点,设计良好的推荐技术要能够从用户对推荐内容的反馈中自行调整和学习。因为实际上每个用户对于推荐的内定w有不同的要求Q比如有的用户可能偏好比较热门的内容Q有的用h愿意发现冷门的内宏V针对不同用L反馈来不断学习每个用L特征Q才能够避免所采用法本n先天的偏差,获得较ؓ理想的效果?/div> <img src ="http://m.tkk7.com/libin2722/aggbug/396041.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.tkk7.com/libin2722/" target="_blank">C物</a> 2013-03-04 16:39 <a href="http://m.tkk7.com/libin2722/articles/396041.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>探烦推荐引擎内部的秘密,W?1 部分: 推荐引擎初探http://m.tkk7.com/libin2722/articles/396035.htmlC物C物Mon, 04 Mar 2013 06:30:00 GMThttp://m.tkk7.com/libin2722/articles/396035.htmlhttp://m.tkk7.com/libin2722/comments/396035.htmlhttp://m.tkk7.com/libin2722/articles/396035.html#Feedback0http://m.tkk7.com/libin2722/comments/commentRss/396035.htmlhttp://m.tkk7.com/libin2722/services/trackbacks/396035.html

介: 随着 Web 技术的发展Q得内容的创徏和分享变得越来越Ҏ。每天都有大量的囄、博客、视频发布到|上。信息的极度爆炸使得Z扑ֈ他们需要的信息变得越来越难。传l的搜烦技术是一个相对简单的帮助Z扑ֈ信息的工P也广泛的被h们所使用Q但搜烦引擎q不能完全满用户对信息发现的需求,原因一是用户很隄恰当的关键词描述自己的需求,二是Z关键词的信息索在很多情况下是不够的。而推荐引擎的出现Q用户获取信息的方式从单的目标明确的数据的搜烦转换到更高更符合h们用习惯的上下文信息更丰富的信息发现?/p>

发布日期Q?/b> 2011 q?3 ?16 ?span class="Apple-converted-space"> 
U别Q?/b> 高 
讉K情况 Q?/strong> 65031 ơ浏?span class="Apple-converted-space"> 
评论Q?/strong> 11 (查看 | d评论 - d)

q_?5 ??236 个评? src=  q_?(236个评?
为本文评?/a>

“探索推荐引擎内部的U密”系列将带领读者从入q学习探烦推荐引擎的机Ӟ实现ҎQ其中还涉及一些基本的优化ҎQ例如聚cd分类的应用。同时在理论讲解的基上,q会l合 Apache Mahout 介绍如何在大规模数据上实现各U推荐策略,q行{略优化Q构建高效的推荐引擎的方法。本文作个系列的W一文章,深入介l推荐引擎的工作原理Q和其中涉及的各U推荐机Ӟ以及它们各自的优~点和适用场景Q帮助用h楚的了解和快速构建适合自己的推荐引擎?/p>

信息发现

如今已经q入了一个数据爆炸的时代Q随着 Web 2.0 的发展, Web 已经变成数据分n的^収ͼ那么Q如何让Z在v量的数据中想要找C们需要的信息变得越来越难?/p>

在这L情Ş下,搜烦引擎QGoogleQBingQ百度等{)成ؓ大家快速找到目标信息的最好途径。在用户对自己需求相Ҏ的时候,用搜索引擎很方便的通过关键字搜索很快的扑ֈ自己需要的信息。但搜烦引擎q不能完全满用户对信息发现的需求,那是因ؓ在很多情况下Q用户其实ƈ不明自q需要,或者他们的需求很隄单的关键字来表述。又或者他们需要更加符合他们个人口呛_喜好的结果,因此出现了推荐系l,与搜索引擎对应,大家也习惯称它ؓ推荐引擎?/p>

随着推荐引擎的出玎ͼ用户获取信息的方式从单的目标明确的数据的搜烦转换到更高更符合h们用习惯的信息发现?/p>

如今Q随着推荐技术的不断发展Q推荐引擎已l在电子商务 (E-commerceQ例?AmazonQ当当网 ) 和一些基?social 的社会化站点 ( 包括音乐Q电影和图书分nQ例如豆瓣,Mtime {?) 都取得很大的成功。这也进一步的说明了,Web2.0 环境下,在面Ҏv量的数据Q用户需要这U更加智能的Q更加了解他们需求,口味和喜好的信息发现机制?/p>

推荐引擎

前面介绍了推荐引擎对于现在的 Web2.0 站点的重要意义,q一章我们将讲讲推荐引擎到底是怎么工作的。推荐引擎利用特D的信息qo技术,不同的物品或内Ҏ荐给可能对它们感兴趣的用戗?/p>
?1. 推荐引擎工作原理?/b>
?1. 推荐引擎工作原理? src=  

?1 l出了推荐引擎的工作原理图,q里先将推荐引擎看作黑盒Q它接受的输入是推荐的数据源Q一般情况下Q推荐引擎所需要的数据源包括:

  • 要推荐物品或内容的元数据Q例如关键字Q基因描q等Q?/li>
  • pȝ用户的基本信息,例如性别Q年龄等
  • 用户对物品或者信息的偏好Q根据应用本w的不同Q可能包括用户对物品的评分,用户查看物品的记录,用户的购买记录等。其实这些用L偏好信息可以分ؓ两类Q?/li>
  • 昑ּ的用户反馈:q类是用户在|站上自然浏览或者用网站以外,昑ּ的提供反馈信息,例如用户对物品的评分Q或者对物品的评论?/li>
  • 隐式的用户反馈:q类是用户在使用|站是生的数据Q隐式的反应了用户对物品的喜好,例如用户购买了某物品Q用h看了某物品的信息{等?/li>

昑ּ的用户反馈能准确的反应用户对物品的真实喜好,但需要用户付出额外的代hQ而隐式的用户行ؓQ通过一些分析和处理Q也能反映用L喜好Q只是数据不是很_Q有些行为的分析存在较大的噪韟뀂但只要选择正确的行为特征,隐式的用户反馈也能得到很好的效果Q只是行为特征的选择可能在不同的应用中有很大的不同,例如在电子商务的|站上,购买行ؓ其实是一个能很好表现用户喜好的隐式反馈?/p>

推荐引擎Ҏ不同的推荐机制可能用到数据源中的一部分Q然后根据这些数据,分析Z定的规则或者直接对用户对其他物品的喜好q行预测计算。这h荐引擎可以在用户q入的时候给他推荐他可能感兴的物品?/p>

推荐引擎的分c?/span>

推荐引擎的分cd以根据很多指标,下面我们一一介绍一下:

  1. 推荐引擎是不是ؓ不同的用h荐不同的数据

    Ҏq个指标Q推荐引擎可以分为基于大众行为的推荐引擎和个性化推荐引擎

    • Ҏ大众行ؓ的推荐引擎,Ҏ个用户都l出同样的推荐,q些推荐可以是静态的ql管理员人工讑֮的,或者基于系l所有用L反馈l计计算出的当下比较行的物品?/li>
    • 个性化推荐引擎Q对不同的用PҎ他们的口呛_喜好l出更加_的推荐,q时Q系l需要了解需推荐内容和用L特质Q或者基于社会化|络Q通过扑ֈ与当前用L同喜好的用户Q实现推荐?/li>

    q是一个最基本的推荐引擎分c,其实大部分h们讨论的推荐引擎都是个性化的推荐引擎,因ؓ从根本上_只有个性化的推荐引擎才是更加智能的信息发现q程?/p>

  2. Ҏ推荐引擎的数据源

    其实q里讲的是如何发现数据的相关性,因ؓ大部分推荐引擎的工作原理q是Z物品或者用L怼集进行推荐。那么参考图 1 l出的推荐系l原理图Q根据不同的数据源发现数据相x的Ҏ可以分ؓ以下几种Q?/p>

    • Ҏpȝ用户的基本信息发现用L相关E度Q这U被UCؓZ人口l计学的推荐QDemographic-based RecommendationQ?/li>
    • Ҏ推荐物品或内容的元数据,发现物品或者内容的相关性,q种被称为基于内容的推荐QContent-based RecommendationQ?/li>
    • Ҏ用户对物品或者信息的偏好Q发现物品或者内Ҏw的相关性,或者是发现用户的相x,q种被称为基于协同过滤的推荐QCollaborative Filtering-based RecommendationQ?/li>
  3. Ҏ推荐模型的徏立方?p style="font-family: arial, nsimsun, sans-serif; margin: 0px; padding: 0.3em 5px 0px 0px; font-size: 1em;">可以惌在v量物品和用户的系l中Q推荐引擎的计算量是相当大的Q要实现实时的推荐务必需要徏立一个推荐模型,关于推荐模型的徏立方式可以分Z下几U:

    • Z物品和用hw的Q这U推荐引擎将每个用户和每个物品都当作独立的实体,预测每个用户对于每个物品的喜好程度,q些信息往往是用一个二l矩阉|q的。由于用h兴趣的物品远q小于ȝ品的数目Q这L模型D大量的数据空|,x们得到的二维矩阵往往是一个很大的E疏矩c同时ؓ了减计量Q我们可以对物品和用戯行聚c, 然后记录和计一cȝ户对一cȝ品的喜好E度Q但q样的模型又会在推荐的准性上有损失?/li>
    • Z兌规则的推荐(Rule-based RecommendationQ:兌规则的挖掘已l是数据挖掘中的一个经典的问题Q主要是挖掘一些数据的依赖关系Q典型的场景是“购物篮问题”,通过兌规则的挖掘,我们可以扑ֈ哪些物品l常被同时购乎ͼ或者用戯C一些物品后通常会购买哪些其他的物品Q当我们挖掘些关联规则之后,我们可以Zq些规则l用戯行推荐?/li>
    • Z模型的推荐(Model-based RecommendationQ:q是一个典型的机器学习的问题,可以已有的用户喜好信息作ؓ训练hQ训l出一个预用户喜好的模型Q这样以后用户在q入pȝQ可以基于此模型计算推荐。这U方法的问题在于如何用户实时或者近期的喜好信息反馈l训l好的模型,从而提高推荐的准确度?/li>

其实在现在的推荐pȝ中,很少有只使用了一个推荐策略的推荐引擎Q一般都是在不同的场景下使用不同的推荐策略从而达到最好的推荐效果Q例?Amazon 的推荐,它将Z用户本n历史购买数据的推荐,和基于用户当前浏览的物品的推荐,以及Z大众喜好的当下比较流行的物品都在不同的区域推荐给用户Q让用户可以从全方位的推荐中扑ֈ自己真正感兴的物品?/p>

深入推荐机制

q一章的幅Q将详细介绍各个推荐机制的工作原理,它们的优~点以及应用场景?/p>

Z人口l计学的推荐

Z人口l计学的推荐机制QDemographic-based RecommendationQ是一U最易于实现的推荐方法,它只是简单的Ҏpȝ用户的基本信息发现用L相关E度Q然后将怼用户喜爱的其他物品推荐给当前用户Q图 2 l出了这U推荐的工作原理?/p>
?2. Z人口l计学的推荐机制的工作原?/b>
?2. Z人口l计学的推荐机制的工作原? src=  

从图中可以很清楚的看刎ͼ首先Q系l对每个用户都有一个用?Profile 的徏模,其中包括用户的基本信息,例如用户的年龄,性别{等Q然后,pȝ会根据用L Profile 计算用户的相似度Q可以看到用?A ?Profile 和用?C 一P那么pȝ会认为用?A ?C 是相似用P在推荐引擎中Q可以称他们是“邻居”;最后,Z“邻居”用L的喜好推荐给当前用户一些物品,图中用?A 喜欢的物?A 推荐l用?C?/p>

q种Z人口l计学的推荐机制的好处在于:

  1. 因ؓ不用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动QCold StartQ”的问题?/li>
  2. q个Ҏ不依赖于物品本n的数据,所以这个方法在不同物品的领域都可以使用Q它是领域独立的Qdomain-independentQ?/li>

那么q个Ҏ的缺点和问题是什么呢Q这U基于用L基本信息对用戯行分cȝҎq于_糙Q尤其是对品呌求较高的领域Q比如图书,电媄和音乐等领域Q无法得到很好的推荐效果。可能在一些电子商务的|站中,q个Ҏ可以l出一些简单的推荐。另外一个局限是Q这个方法可能涉及到一些与信息发现问题本n无关却比较敏感的信息Q比如用Lq龄{,q些用户信息不是很好获取?/p>

Z内容的推?/span>

Z内容的推荐是在推荐引擎出C初应用最为广泛的推荐机制Q它的核心思想是根据推荐物品或内容的元数据Q发现物品或者内容的相关性,然后Z用户以往的喜好记录,推荐l用L似的物品。图 3 l出了基于内Ҏ荐的基本原理?/p>
?3. Z内容推荐机制的基本原?/b>
?3. Z内容推荐机制的基本原? src=  

?3 中给ZZ内容推荐的一个典型的例子Q电影推荐系l,首先我们需要对电媄的元数据有一个徏模,q里只简单的描述了一下电qcdQ然后通过电媄的元数据发现电媄间的怼度,因ؓcd都是“爱情,O”电?A ?C 被认为是怼的电影(当然Q只Ҏcd是不够的Q要得到更好的推荐,我们q可以考虑电媄的导演,演员{等Q;最后实现推荐,对于用户 AQ他喜欢看电?AQ那么系l就可以l他推荐cM的电?C?/p>

q种Z内容的推荐机制的好处在于它能很好的徏模用L口味Q能提供更加_的推荐。但它也存在以下几个问题Q?/p>

  1. 需要对物品q行分析和徏模,推荐的质量依赖于对物品模型的完整和全面程度。在现在的应用中我们可以观察到关键词和标{(TagQ被认ؓ是描q物品元数据的一U简单有效的Ҏ?/li>
  2. 物品怼度的分析仅仅依赖于物品本w的特征Q这里没有考虑人对物品的态度?/li>
  3. 因ؓ需要基于用户以往的喜好历史做出推荐,所以对于新用户有“冷启动”的问题?/li>

虽然q个Ҏ有很多不_问题Q但他还是成功的应用在一些电影,音乐Q图书的C交站点Q有些站点还请专业的人员对物品进行基因编码,比如潘多拉,在一份报告中说道Q在潘多拉的推荐引擎中,每首歌有过 100 个元数据特征Q包括歌曲的风格Q年份,演唱者等{?/p>

Z协同qo的推?/span>

随着 Web2.0 的发展,Web 站点更加提倡用户参与和用户贡献Q因此基于协同过滤的推荐机制因运而生。它的原理很单,是Ҏ用户对物品或者信息的偏好Q发现物品或者内Ҏw的相关性,或者是发现用户的相x,然后再基于这些关联性进行推荐。基于协同过滤的推荐可以分ؓ三个子类Q基于用L推荐QUser-based RecommendationQ,Z目的推荐(Item-based RecommendationQ和Z模型的推荐(Model-based RecommendationQ。下面我们一个一个详l的介绍着三种协同qo的推荐机制?/p>

Z用户的协同过滤推?/strong>

Z用户的协同过滤推荐的基本原理是,Ҏ所有用户对物品或者信息的偏好Q发C当前用户口味和偏好相似的“邻居”用LQ在一般的应用中是采用计算“K- d”的法Q然后,Zq?K 个邻居的历史偏好信息Qؓ当前用户q行推荐。下?4 l出了原理图?/p>
?4. Z用户的协同过滤推荐机制的基本原理
?4. Z用户的协同过滤推荐机制的基本原理  

上图C意出基于用L协同qo推荐机制的基本原理,假设用户 A 喜欢物品 AQ物?CQ用?B 喜欢物品 BQ用?C 喜欢物品 A Q物?C 和物?DQ从q些用户的历史喜好信息中Q我们可以发现用?A 和用?C 的口呛_偏好是比较类似的Q同时用?C q喜Ƣ物?DQ那么我们可以推断用?A 可能也喜Ƣ物?DQ因此可以将物品 D 推荐l用?A?/p>

Z用户的协同过滤推荐机制和Z人口l计学的推荐机制都是计算用户的相似度QƈZ“邻居”用L计算推荐Q但它们所不同的是如何计算用户的相似度Q基于h口统计学的机制只考虑用户本n的特征,而基于用L协同qo机制可是在用L历史偏好的数据上计算用户的相似度Q它的基本假设是Q喜Ƣ类似物品的用户可能有相同或者相似的口味和偏好?/p>

Z目的协同过滤推?/strong>

Z目的协同过滤推荐的基本原理也是cM的,只是说它使用所有用户对物品或者信息的偏好Q发现物品和物品之间的相似度Q然后根据用L历史偏好信息Q将cM的物品推荐给用户Q图 5 很好的诠释了它的基本原理?/p>

假设用户 A 喜欢物品 A 和物?CQ用?B 喜欢物品 AQ物?B 和物?CQ用?C 喜欢物品 AQ从q些用户的历史喜好可以分析出物品 A 和物?C 时比较类似的Q喜Ƣ物?A 的h都喜Ƣ物?CQ基于这个数据可以推断用?C 很有可能也喜Ƣ物?CQ所以系l会物?C 推荐l用?C?/p>

与上面讲的类|Z目的协同过滤推荐和Z内容的推荐其实都是基于物品相似度预测推荐Q只是相似度计算的方法不一P前者是从用户历史的偏好推断Q而后者是Z物品本n的属性特征信息?/p>
?5. Z目的协同过滤推荐机制的基本原理
?5. Z目的协同过滤推荐机制的基本原理  

同时协同qoQ在Z用户和基于项目两个策略中应该如何选择呢?其实Z目的协同过滤推荐机制是 Amazon 在基于用L机制上改良的一U策略,因ؓ在大部分?Web 站点中,物品的个数是q远于用户的数量的Q而且物品的个数和怼度相Ҏ较稳定,同时Z目的机制比Z用户的实时性更好一些。但也不是所有的场景都是q样的情况,可以设想一下在一些新L荐系l中Q也许物品,也就是新ȝ个数可能大于用户的个敎ͼ而且新闻的更新程度也有很快,所以它的Ş似度依然不稳定。所以,其实可以看出Q推荐策略的选择其实和具体的应用场景有很大的关系?/p>

Z模型的协同过滤推?/strong>

Z模型的协同过滤推荐就是基于样本的用户喜好信息Q训l一个推荐模型,然后Ҏ实时的用户喜好的信息q行预测Q计推荐?/p>

Z协同qo的推荐机制是C应用最为广泛的推荐机制Q它有以下几个显著的优点Q?/p>

  1. 它不需要对物品或者用戯行严格的建模Q而且不要求物品的描述是机器可理解的,所以这U方法也是领域无关的?/li>
  2. q种Ҏ计算出来的推荐是开攄Q可以共用他人的l验Q很好的支持用户发现潜在的兴偏?/li>

而它也存在以下几个问题:

  1. Ҏ的核心是Z历史数据Q所以对新物品和新用户都有“冷启动”的问题?/li>
  2. 推荐的效果依赖于用户历史偏好数据的多和准确性?/li>
  3. 在大部分的实CQ用户历史偏好是用稀疏矩阵进行存储的Q而稀疏矩阵上的计有些明昄问题Q包括可能少部分人的错误偏好会对推荐的准度有很大的影响{等?/li>
  4. 对于一些特D品味的用户不能l予很好的推荐?/li>
  5. ׃以历史数据ؓ基础Q抓取和建模用户的偏好后Q很难修Ҏ者根据用L使用演变Q从而导致这个方法不够灵zR?/li>

混合的推荐机?/span>

在现行的 Web 站点上的推荐往往都不是单U只采用了某一U推荐的机制和策略,他们往往是将多个Ҏ混合在一P从而达到更好的推荐效果。关于如何组合各个推荐机Ӟq里讲几U比较流行的l合Ҏ?/p>

  1. 加权的؜合(Weighted HybridizationQ? 用线性公式(linear formulaQ将几种不同的推荐按照一定权重组合v来,具体权重的值需要在试数据集上反复实验Q从而达到最好的推荐效果?/li>
  2. 切换的؜合(Switching HybridizationQ:前面也讲刎ͼ其实对于不同的情况(数据量,pȝq行状况Q用户和物品的数目等Q,推荐{略可能有很大的不同Q那么切换的混合方式Q就是允许在不同的情况下Q选择最为合适的推荐机制计算推荐?/li>
  3. 分区的؜合(Mixed HybridizationQ:采用多种推荐机制Qƈ不同的推荐l果分不同的区显C给用户。其实,AmazonQ当当网{很多电子商务网站都是采用这L方式Q用户可以得到很全面的推荐,也更Ҏ扑ֈ他们惌的东ѝ?/li>
  4. 分层的؜合(Meta-Level HybridizationQ? 采用多种推荐机制Qƈ一个推荐机制的l果作ؓ另一个的输入Q从而综合各个推荐机制的优缺点,得到更加准确的推荐?/li>

推荐引擎的应?/span>

介绍完推荐引擎的基本原理Q基本推荐机Ӟ下面要分析几个有代表性的推荐引擎的应用,q里选择两个领域QAmazon 作ؓ电子商务的代表,豆瓣作ؓC交|络的代表?/p>

推荐在电子商务中的应??Amazon

Amazon 作ؓ推荐引擎的E,它已l将推荐的思想渗透在应用的各个角落。Amazon 推荐的核心是通过数据挖掘法和比较用L消费偏好于其他用戯行对比,借以预测用户可能感兴的商品。对应于上面介绍的各U推荐机ӞAmazon 采用的是分区的؜合的机制Qƈ不同的推荐l果分不同的区显C给用户Q图 6 和图 7 展示了用户在 Amazon 上能得到的推荐?/p>
?6. Amazon 的推荐机?- 首页
?6. Amazon 的推荐机?- 首页  

?7. Amazon 的推荐机?- 览物品
?7. Amazon 的推荐机?- 览物品  

Amazon 利用可以记录的所有用户在站点上的行ؓQ根据不同数据的特点对它们进行处理,q分成不同区为用h送推荐:

  • 今日推荐 (Today's Recommendation For You): 通常是根据用Lq期的历史购买或者查看记录,q结合时下流行的物品l出一个折中的推荐?/li>
  • C品的推荐 (New For You): 采用了基于内容的推荐机制 (Content-based Recommendation)Q将一些新到物品推荐给用户。在Ҏ选择上由于新物品没有大量的用户喜好信息,所以基于内容的推荐能很好的解决q个“冷启动”的问题?/li>
  • 捆绑销?(Frequently Bought Together): 采用数据挖掘技术对用户的购买行行分析,扑ֈl常被一h同一个h购买的物品集Q进行捆l销售,q是一U典型的Z目的协同过滤推荐机制?/li>
  • 别h购买 / 览的商?(Customers Who Bought/See This Item Also Bought/See): q也是一个典型的Z目的协同过滤推荐的应用Q通过C会化机制用戯更快更方便的扑ֈ自己感兴的物品?/li>

值得一提的是,Amazon 在做推荐Ӟ设计和用户体验也做得特别独到Q?/p>

Amazon 利用有它大量历史数据的优势,量化推荐原因?/p>

  • ZC会化的推荐QAmazon 会给你事实的数据Q让用户信服Q例如:购买此物品的用户癑ֈ之多也购买了那个物品;
  • Z物品本n的推荐,Amazon 也会列出推荐的理由,例如Q因Z的购物框中有 ***Q或者因Z购买q?***Q所以给你推荐类似的 ***?/li>

另外QAmazon 很多推荐是基于用L profile 计算出来的,用户?profile 中记录了用户?Amazon 上的行ؓQ包括看了那些物品,C那些物品Q收藏夹?wish list 里的物品{等Q当?Amazon 里还集成了评分等其他的用户反馈的方式Q它们都?profile 的一部分Q同ӞAmazon 提供了让用户自主理自己 profile 的功能,通过q种方式用户可以更明的告诉推荐引擎他的品味和意图是什么?/p>

推荐在社交网站中的应??豆瓣

豆瓣是国内做的比较成功的C交|站Q它以图书,电媄Q音乐和同城zdZ心,形成一个多元化的社交网l^収ͼ自然推荐的功能是必不可少的,下面我们看看豆瓣是如何推荐的?/p>
?8 . 豆瓣的推荐机?- 豆瓣电媄
?8 . 豆瓣的推荐机?- 豆瓣电媄  

当你在豆瓣电׃一些你看过的或是感兴趣的电影加入你看过和想看的列表里,qؓ它们做相应的评分Q这时豆瓣的推荐引擎已经拿到你的一些偏好信息,那么它将l你展示如图 8 的电影推荐?/p>
?9 . 豆瓣的推荐机?- Z用户品味的推?/b>
?9 . 豆瓣的推荐机?- Z用户品味的推? src=  

豆瓣的推荐是通过“豆瓣猜”,Z让用h楚这些推荐是如何来的Q豆瓣还l出了“豆瓣猜”的一个简要的介绍?/p>

?/em> 你的个h推荐是根据你的收藏和评h自动得出的,每个人的推荐清单都不同。你的收藏和评h多Q豆瓣给你的推荐会越准确和丰富?/em>
每天推荐的内容可能会有变化。随着豆瓣的长大,l你推荐的内容也会越来越准?/em> ?/em>

q一点让我们可以清晰明了的知道,豆瓣必然是基于社会化的协同过滤的推荐Q这L戯多,用户的反馈越多,那么推荐的效果会来准?/p>

相对?Amazon 的用戯为模型,豆瓣电媄的模型更加简单,是“看q”和“想看”,q也让他们的推荐更加专注于用L品味Q毕竟买东西和看电媄的动是有很大不同的?/p>

另外Q豆瓣也有基于物品本w的推荐Q当你查看一些电q详细信息的时候,他会l你推荐出“喜Ƣ这个电qZ喜欢的电影”, 如图 10Q这是一个基于协同过滤的应用?/p>
?10 . 豆瓣的推荐机?- Z电媄本n的推?/b>
?10 . 豆瓣的推荐机?- Z电媄本n的推? src=  

ȝ

在网l数据爆炸的q代Q如何让用户更快的找到想要的数据Q如何让用户发现自己潜在的兴和需求,无论是对于电子商务还是社会网l的应用都是臛_重要的。推荐引擎的出现Q得这个问题越来越被大家关注。但对大多数人来Ԍ也许q在惊叹它ؓ什么L能猜C到底惌些什么。推荐引擎的力在于你不清楚在这个推荐背后,引擎到底记录和推理了些什么?/p>

通过q篇lD性的文章Q你可以了解Q其实推荐引擎只是默默的记录和观察你的一举一动,然后再借由所有用户生的量数据分析和发现其中的规律Q进而慢慢的了解你,你的需求,你的习惯Qƈ默默的无声息的帮助你快速的解决你的问题Q找C惌的东ѝ?/p>

其实Q回头想惻I很多时候,推荐引擎比你更了解你自己?/p>

通过W一文章,怿大家Ҏ荐引擎有一个清晰的W一印象Q本pd的下一文章将深入介绍Z协同qo的推荐策略。在C的推荐技术和法中,最被大家广泛认可和采用的就是基于协同过滤的推荐Ҏ。它以其Ҏ模型单,数据依赖性低Q数据方侉K集,推荐效果较优{多个优Ҏ为大众眼里的推荐法“No.1”。本文将带你深入了解协同qo的秘密,q给出基?Apache Mahout 的协同过滤算法的高效实现。Apache Mahout ?ASF 的一个较新的开源项目,它源?LuceneQ构建在 Hadoop 之上Q关注v量数据上的机器学习经典算法的高效实现?/p>

感谢大家Ҏpd的关注和支持?/p>

声明

本h所发表的内容仅Z点,不代?IBM 公司立场、战略和观点?/p>

参考资?/span>

学习

讨论



C物 2013-03-04 14:30 发表评论
]]>
վ֩ģ壺 Ʒպһ| Ļ9| ͵Ƶ߹ۿ99| Ůվ18| ޹һ߹ۿ| ŮƵƵȫƵվ| þ޹ƷAVϼ| 3344ѲŹۿƵ| ޹ֻߵӰbd| þѿaëƬ| רĻ| ³˿Ƭһ߹ۿ| ޾Ʒ߹ۿ| ˾Ʒ| ҹƬ| Ļպ| þùƷƵ| 99þùۺ| պѹۿ| ߹ۿ| ޳| þþþþѹۿ| ɫ͵͵޵һۺ| ˴ս˾Ʒһ| 99þù-99þù| ëƬƵ| ŮڵƵվ| Ƶ| Ůһ| ֻ߹ۿƵ | avһ߲ | ޻ҳ߹ۿ| ޹һƵ| AV߲Ų| ŷۺϾƷ˵| ޾Ʒ˳߹ۿ| һaëƬѲ| ˳ɵӰվɫ| AVһլɫӰ| ĻmvƵ7| 99re6߾Ʒѹۿ|