推荐系统简单总结

  • 前言
  • 一、协同过滤(collaborative filtering)
  • 1.基于记忆(memory-based)
  • 2.基于模型(model-based)
  • 二、基于内容
  • 三、基于网络
  • 1. HHP
  • 2. PD
  • 四、其他推荐算法
  • 总结


前言


本文章将就现有的推荐系统做一个简单总结,可能不全面,欢迎补充。


一、协同过滤(collaborative filtering)

1.基于记忆(memory-based)

基于记忆的算法主要是针对相似性对用户进行推荐,又分为UCF和OCF。

UCF:生成用户相似度矩阵,向用户推荐与其兴趣相似的用户所收集的物品。
OCF:生成物品相似度矩阵,向用户推荐与其已收集的物品相似的物品。

相似性度量:皮尔逊相关性、余弦相似度、欧式距离等

2.基于模型(model-based)

虽然和基于记忆的算法一样,都是利用已收集的数据对物品进行打分预测。但基于模型的算法不同之处在于,其并不是基于启发规则进行预测,而是利用统计和机器学习的模型进行预测。

常用模型:聚类模型、贝叶斯网络,极大熵模型、语义生成模型等。
—————————————————————
优点:
可以推荐新信息即用户自己未发现的兴趣点;
可以推荐电影等较难内容分析的产品,不用分析内容特征,而是利用相似性刻画。

缺点:
面临冷启动(即向新用户进行推荐)等问题;
算法计算量过大导致性能较差。

二、基于内容

基于内容的推荐系统在对用户和产品建立配置文件后,利用机器学习等技术分析内容并提取特征,从而计算相似性进行推荐,其重点在于信息获取与过滤。
例如TF-IDF、决策树、人工神经网络等相关方法都可以用于训练模型进行预测。
—————————————————————
优点:
可以利用配置文件处理冷启动问题;
不受打分稀疏性的约束;
同样可以推荐新信息即用户自己未发现的兴趣点;
具有一定的可解释性

缺点:
受到信息获取技术的约束。

三、基于网络

基于网络的算法主要是建立用户-产品的二部图网络,从而利用热传导(HC)和物质扩散(MD)等的方法进行预测与推荐。下面主要介绍几种基于网络的推荐系统算法。

1. HHP

该算法[2]结合了热传导和物质扩散算法,主要公式如下。其中英文字母表示用户,希腊字母表示物品,β为传播资源的物品,α为接收资源的物品,k为度。

推荐系统 java 推荐系统有哪些_sed

而在HHP算法中,若令参数等于0则为HeatS(HC)算法,若为1则变为ProbS(MD,NBI)算法。

2. PD

该算法有点类似HHP算法,公式如下。其中,m 为用户个数,β为传播资源的物品,α为接收资源的物品。

推荐系统 java 推荐系统有哪些_推荐系统 java_02

推荐系统 java 推荐系统有哪些_sed_03

—————————————————————

以上只是简单列举,具体可参看相关文献。

此外,例如电影音乐等,推荐小度节点可能更有价值,同时去掉重复属性也可以提高准确度。在这方面还可以用SVD和TSVD等方法来降维和提取主要特征。但其也面临着冷启动问题。总之可研究点非常多。

四、其他推荐算法

除了以上的推荐算法外,可以将上述算法进行结合,比如基于内容和协同过滤算法,形成混合推荐系统,同样也有不错的效果。还有关联规则分析等其他算法,但要注意具体问题具体分析应用。