在构建智能推荐系统时,协同过滤(Collaborative Filtering,CF)算法是一个常用的技术。

一、矩阵分解MF

矩阵分解(Matrix Factorization,MF)技术实际上就是把用户-项目评分矩阵分解为若干个部分的组合,它在 Netfilx公司举办的推荐系统大赛上得到了广泛的应用,基于矩阵分解的推荐算法本质上是一种基于模型的协同过滤推荐算法。

基于矩阵分解的推荐算法,实现简单,预测准确度高,扩展性强,在一定程度上缓解了数据的稀疏性问题,但可解释性差。

1、隐含语义分析技术

随着用户和项目数量的急剧增长,用户和项目之间评分矩阵的维度也在在急剧增加。而由此带来的问题是计算用户与用户、项目与项目之间相似度矩阵的速度越来越慢,计算问题成为推荐系统的瓶颈。此外,随着评分矩阵越来越稀疏,推荐精度也会受到严重的影响。

对推荐系统研究过程中有很多人提出给用户或项目进行分类,但是根据传统的推荐算法很难真正发掘出用户用户潜在的兴趣度。为了解决这个问题研究人员提出从数据出发,自动找出项目的分类信息和用户的兴趣度信息。因此,隐含语义分析技术(Latent Variable Analysis) 就出现了。

隐语义模型(Latent Factor Model,LFM) 这个概念是由Netflix Prize冠军Koren在2006年提出的。隐语义模型使用一种替代的法则来发现潜在的主题或分类。隐含语义分析技术从诞生至今产生了很多著名的模型和算法。其中和该项技术相关且耳熟能详的名词有隐含主题模型(latent topic model)24、矩阵分解(matrix factorization)、pLSA、LDA 等。

协同过滤算法的特点就是完全没有利用到物品本身或者是用户自身的属性,仅仅利用了用户与物品的交互信息就可以实现推荐,是一个可解释性很强,非常直观的模型,但是也存在一些问题, 第一个就是处理稀疏矩阵的能力比较弱,所以为了使得协同过滤更好处理稀疏矩阵问题, 增强泛化能力, 从协同过滤中衍生出矩阵分解模型或者叫隐语义模型, 两者差不多说的一个意思,就是在协同过滤共现矩阵的基础上, 使用更稠密的隐向量表示用户和物品,挖掘用户和物品的隐含兴趣和隐含特征,在一定程度上弥补协同过滤模型处理稀疏矩阵能力不足的问题。

1、协同过滤-矩阵分解(数据量比较大,建议使用Spark的ALS库)

如果让推荐系统领域的从业者选出业界影响力最大、应用最广泛的模型,那 么笔者认为90%的从业者会首选协同过滤。对协同过滤的研究甚至可以追溯到 1992年,Xerox的研究中心开发了一种基于协同过滤的邮件筛选系统,用以过 滤一些用户不感兴趣的无用邮件。但协同过滤在互联网领域大放异彩,还是源于 互联网电商巨头Amazon对协同过滤的应用。

协同过滤作为最经典的推荐模型,从诞生至今一直被广泛的用在诸多推荐系统当中。根据其特点,可以将协同过滤分为如下几类:

  1. User Based:即所谓的“人以群分”,根据和目标用户有相似喜好的用户进行推荐。
  2. Item Based:“物以类聚”,通过找出目标用户喜欢物品的相似物品实现推荐。
  3. Model Based:利用数学模型,找到用户和物品间的隐含关联,从而对用户喜好进行推断。

协同过滤算法金融案例 java 协同过滤算法的应用_机器学习

协同过滤算法金融案例 java 协同过滤算法的应用_算法_02