您的位置:首页 > 其它

使用概率矩阵模型在推荐系统中整合多种信息

2013-12-23 00:54 239 查看
做推荐时,往往会有不同的数据可用。如Netflix数据集中,有用户的显示评分信息(1-5),也有用户隐式评分信息(即用户观看记录,但没有评分);在上下文广告推荐中,有用户访问网页信息R1、用户点击广告信息R2和广告与网页关联度信息R3。那如何集成这些不同的信息,来做更好的推荐呢?

首先,SVD++算是一种集成。它通过在原有评分矩阵分解的基础上集成了隐式评分信息,但它的集成过程不是十分直观。若换成上下文广告推荐,要通过启发式的方法集成上述3个矩阵就变得更加困难了。不过,初步的想法是:对每个矩阵都进行latent semantic factor, 将R1分解成用户特征矩阵U和网页特征矩阵W,将R2分解成U和广告特征矩阵A,将R3分解成A和W。可以看到,这三个矩阵之间是有共享隐语义信息的。这强烈暗示着我们能把这三个矩阵结合起来,但具体如何做?目前据我所知,一个有效的模型是概率矩阵分解。

[1]如果将每个矩阵里的分数分别建成一个高斯分布,那么可以很自然地将不同矩阵使用联合概率分布结合起来。优化目标和单个高斯分布是一样的:使联合概率最大[1]。

采用同样的思想和方法,[2]将社交网络之中的trust信息同评分矩阵结合起来。它将用户之间的信任矩阵同样分解成用户特征矩阵U与另一个矩阵Z。虽然推荐准确度上升了,但个人觉得这个模型缺少一个合理地解释。因为矩阵Z的含义未知。我们知道矩阵U代表用户的偏好,“它与物品属性相乘得到用户对物品的评分”很合理。但用户偏好与什么相乘会得出用户对其他人的信任度呢?一个可能的解释是,一个用户会把另一个用户标注为信任的前提是,那个人跟他有相同的兴趣爱好。

最后,[3]中作者指出,以往的推荐模型将所有用户的评分同等对待。但要知道,有些评分是不能客观地反应一个物品的真正质量的。如,有些评分是很subjective的。于是作者很巧妙在概率模型中改变方差,引入评分质量以提高推荐的质量。具体模型可以参见论文,这里说下这个改进基于的intuition:对于质量好的实际评分,隐语义模型得出的预测应该会与该评分比较接近;而对于质量差的实际评分,隐语义模型的预测与该评分的差别就可能会较大—— 因为这个时候,打分的用户可能带入了自身的偏见,单从用户喜好(这正是隐语义要做的事)无法捕捉这种偏见。因此,高质量评分允许小方差,低质量评分允许大方差。那评分的质量如何得来?[3]使用的数据中,每条评分记录包含了用户ID,物品ID,用户的评分,用户的评论,以及其他用户给该条评论点赞的次数,等。由于点赞次数无法准确反应一个评论的质量:因为新来的高质量评论,点赞次数也会很少。因此作者将点赞次数多的评分作为训练样本,训练一个回归模型给其他评论打质量分。质量模型使用了两类feature:文本信息(bag-of-word特征,用LDA提取的topic特征)和用户元数据信息(打分用户平均获得的赞的个数,评论文本长度,评论的时间等)。作者指出,用户元数据信息能捕捉绝大多数的质量信息;相反,LDA提取的topic特征趋向于捕捉语义信息,而不擅长捕捉质量信息(也就是说,质量有区别的评论在用词上区别不大)。

参考文献:

[1] 基于联合概率矩阵分解的上下文广告推荐算法

[2] SoRec: Social Recommendation Using Probabilistic Matrix Factorization

[3] Review Quality Aware Collaborative Filtering
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐