社会化推荐算法

标签: 社会化 推荐算法 | 发表时间:2014-03-17 23:46 | 作者:xinzhangyanxiang
出处:http://blog.csdn.net

社会化推荐

本文是论文《一种结合推荐对象间关联关系的社会化推荐算法》(以下简称论文)的笔记(下)。该论文提出的算法是以PMF为框架基础的。因而若对PMF不太了解的话,可以参考我的 上一篇文章脑补一下,当然,那篇文章只是概述,详细了解PMF还需要阅读初始论文,但读完那篇文章后,对本文的理解应该没有问题。

下载资源, 猛击此处

所谓社会化推荐算法,是将社交网络的特性加入到推荐系统中来。因为社交网络方兴未艾,因而这种算法也是当前的研究热点之一。主要的做法是利用用户间的社会关系,认为在社交网络中相互信任的朋友具有更大的相似度。论文的创意则是利用对象间关联关系来对推荐结果进行优化;举个例子说明它的合理性,用户买过羽毛球拍后,很可能会买羽毛球,羽毛球和羽毛球拍两个对象就有一定的关联。

先谈利用用户间相互关系的社会化推荐,一种具体做法是在社交网络中计算信任关系矩阵,信任关系具有两大特性:可以传播和可以预测;然后用信任矩阵代替推荐系统中的相似矩阵进行推荐。信任关系的计算在论文的参考文献9-10,但我猜测应该会考虑用户之间的交互强度、内容相似度、情景相似度等因素,可以参考我之前的文章《 微博背后的那些算法》。在信任矩阵的计算上,论文中还提到其他算法如基于朋友圈的算法、考虑用户本身特征的算法等,有兴趣可以阅读原文。

另一种可能的方法是利用矩阵分解的手段,推荐系统与社交网络共享同一个用户隐式空间,用户隐式空间就是一个矩阵,矩阵由很多向量组成,每个向量都是用户的隐式特征向量。通过这样的手段,就将用户的社交网络关系同评分矩阵联系到一起了,这种算法称作SoRec算法。

考虑一个具体的问题,即微博上的好友推荐问题。如图1所示:


图1 微博好友推荐问题

U是用户,V代表被推荐的对象。U之间的箭头表明用户之间的关注关系。V之间的箭头表示被推荐对象之间的关注关系。评分矩阵就是指U是否对被推荐用户满意,也即评分矩阵。

SoRec算法就是考虑了U之间关注关系的推荐方法。

在上一篇文章中的PMF介绍中,我们将评分矩阵R分解为用户隐式空间U和物品隐式空间V。在SoRec中,还有一个用户之间的信任关系矩阵D,我们将其分解为U和Q两个隐式空间,其中R分解后的U和D分解后的U是共享的。在PMF框架下,D分解为U和Q时也假设U、Q的隐式向量都服从高斯先验,U、Q推出D的条件概率也服从高斯先验。

SoRec的概率图可以表示如图2所示。

由图2可知,SoRec算法其实就是使用用户的信任矩阵在用户隐式空间中添加了一层约束,从而达到使用用户的朋友的信息进行推荐的效果。


图 2 SoRec的概率图表示

由图1可知,有时候不仅仅是用户之间有关系,被推荐物品之间也可能会有关联。论文中提到了使用PropFlow的方法对被推荐物品进行关系计算,PropFlow使用对象间信息流的大小来衡量关系,信息流越大,关系越紧密。

依SoRec那样如法炮制,将物品的的关系矩阵S分解为物品隐式空间Vi和Vt的乘积。仍然套用PMF框架,做高斯先验假设。其概率图如图3所示。


图3 结合物品关系的社会化推荐概率图表示

这里让我很不解的是,为什么SoRec中用户关系矩阵D分解为U和Q时U和Q分别使用不同的高斯先验方差参数,而物品关系矩阵S分解为Vi和Vt时却只用一个参数?作为一个疑点,先保留下来吧,希望以后能搞明白。

在PMF框架下,其推导一般是将后验概率先取对数然后使用SGD算法等进行求导。具体的公式推算见原论文,本文只做科普用吧。本人也是第一次接触PMF,如果文章中有疏漏或偏差之处,还请各位读者多多指正。

图片有些模糊,但来源于原论文,需要的话也请去原论文中查看。

作者:xinzhangyanxiang 发表于2014-3-17 23:46:15 原文链接
阅读:88 评论:0 查看评论

相关 [社会化 推荐算法] 推荐:

社会化推荐算法

- - CSDN博客云计算推荐文章
本文是论文《一种结合推荐对象间关联关系的社会化推荐算法》(以下简称论文)的笔记(下). 该论文提出的算法是以PMF为框架基础的. 因而若对PMF不太了解的话,可以参考我的 上一篇文章脑补一下,当然,那篇文章只是概述,详细了解PMF还需要阅读初始论文,但读完那篇文章后,对本文的理解应该没有问题. 所谓社会化推荐算法,是将社交网络的特性加入到推荐系统中来.

常用推荐算法

- - 互联网 - ITeye博客
       在推荐系统简介中,我们给出了推荐系统的一般框架. 很明显,推荐方法是整个推荐系统中最核心、最关键的部分,很大程度上决定了推荐系统性能的优劣. 目前,主要的推荐方法包括:基于内容推荐、协同过滤推荐、基于关联规则推荐、基于效用推荐、基于知识推荐和组合推荐. 基 于内容的推荐(Content-based Recommendation)是信息过滤技术的延续与发展,它是建立在项目的内容信息上作出推荐的,而不需要依据用户对项目的评价意见,更多地需要用机 器学习的方法从关于内容的特征描述的事例中得到用户的兴趣资料.

Mahout: SVDRecommender SVD推荐算法

- -

[转]Mahout推荐算法基础

- - 小鸥的博客
Mahout推荐算法分为以下几大类. 2.相近的用户定义与数量. 2.用户数较少时计算速度快. 1.基于item的相似度. 1.item较少时就算速度更快. 2.当item的外部概念易于理解和获得是非常有用. 1基于SlopeOne算法(打分差异规则). 当item数目十分少了也很有效. 需要限制diffs的存储数目否则内存增长太快.

推荐算法Slope One初探

- - 标点符
Slope One 算法是由 Daniel Lemire 教授在 2005 年提出的一个 Item-Based 推荐算法.  Slope One 算法试图同时满足这样的的 5 个目标: . 易于实现和维护:普通工程师可以轻松解释所有的聚合数据,并且算法易于实现和测试. 运行时可更新的:新增一个评分项,应该对预测结果即时产生影响.

美团推荐算法实践

- - 美团技术团队
推荐系统并不是新鲜的事物,在很久之前就存在,但是推荐系统真正进入人们的视野,并且作为一个重要的模块存在于各个互联网公司,还是近几年的事情. 随着互联网的深入发展,越来越多的信息在互联网上传播,产生了严重的信息过载. 如果不采用一定的手段,用户很难从如此多的信息流中找到对自己有价值的信息. 解决信息过载有几种手段:一种是搜索,当用户有了明确的信息需求意图后,将意图转换为几个简短的词或者短语的组合(即query),然后将这些词或短语组合提交到相应的搜索引擎,再由搜索引擎在海量的信息库中检索出与query相关的信息返回给用户;另外一种是推荐,很多时候用户的意图并不是很明确,或者很难用清晰的语义表达,有时甚至连用户自己都不清楚自己的需求,这种情况下搜索就显得捉襟见肘了.

Mahout推荐算法API详解

- - zzm
Mahout推荐算法API详解. Hadoop家族系列文章, 主要介绍Hadoop家族产品,常用的项目包括Hadoop, Hive, Pig, HBase, Sqoop, Mahout, Zookeeper, Avro, Ambari, Chukwa,新增加的项目包括,YARN, Hcatalog, Oozie, Cassandra, Hama, Whirr, Flume, Bigtop, Crunch, Hue等.

互联网无处不在的“推荐算法”

- Tiger - 所有文章 - UCD大社区
数据显示,三分之一的用户会根据电子商务网站的推荐买东西,这是任何广告都不可能做到的成绩. 媒体上播放的大众化广告对消费者的影响已经越来越低,于是有人做出预见——个性化推荐技术将成为广告的终极形式.     很多年前,看过一部电影叫作《谁知女人心》,好莱坞大牌梅尔·吉布森饰演的男主角是一个典型的大男子主义者.

基于综合兴趣度的协同过滤推荐算法

- - IT技术博客大学习
标签:   兴趣   协同过滤   推荐. 电子商务推荐系统最大的优点在于它能收集用户的兴趣资料和个人信息,根据用户兴趣偏好主动为用户做出个性化推荐. 推荐技术指的是如何找出用户感兴趣的商品并列出推荐清单,在用户信息获取差别不大的情况下,推荐技术成为决定一个推荐系统性能的关键,其中推荐算法是推荐技术的核心[1].

推荐系统的常见推荐算法的性能比较

- - ITeye博客
数据集是movielens-1M( 下载)版本. 使用SlopeOne算法,每次随机选取6%的用户预测其喜好,进行5次实验,取MAE的均值,得到下表:. 绘制成折线图,如下图所示:.  由此可知,训练集越大,则推荐的准确率越高. 使用ItemCF算法,训练集大小为数据集的90%,每次随机选取30%的用户预测其喜好,进行5次实验,取MAE的均值,得到下表:.