文章目录
- 参考
- 原理
- 基于邻域的协同过滤算法
- 基于用户的协同过滤(User-Based Collaborative Filtering)
- 基于内容的协同过滤
- 基于模型的协同过滤算法
- 扩展
- 优缺点
参考
推荐系统之神经协同过滤
原理
基于邻域的协同过滤算法
基于邻域的协同过滤算法又包括
基于用户的协同过滤算法和基于内容的协同过滤算法。
核心思想都一样:收集用户的行为记录,找到用户的偏好并找到与偏好相似的内容,计算比重再推荐给用户。
基于用户的协同过滤(User-Based Collaborative Filtering)
通过分析用户之间的相似性来实现推荐。简单来说,就是根据用户的历史行为(比如浏览、购买、评分等)来找到与其兴趣相似的其他用户,然后向该用户推荐这些相似用户喜欢的商品或内容。
得到用户喜欢物品的共现矩阵
基于用户的协同过滤算法的优点在于能够捕捉用户的偏好和行为模式,同时也比较容易实现和解释。但该算法也存在一些缺点,如用户数量较多时计算量大、推荐结果容易出现重复等。
- 为每个用户创建一个兴趣向量,向量中包含该用户浏览、购买、评分等行为对应的商品或内容。
- 通过计算用户之间的相似度,找到与目标用户相似度最高的一些用户。
- 根据这些相似用户对商品或内容做出的行为,将对应商品或内容推荐给目标用户。
基于内容的协同过滤
其推荐的对象不是与目标用户相似的其他用户,而是与该用户曾经感兴趣的内容相似的其他内容。
该算法具体的推荐步骤如下。
- 为每个内容创建一个分类向量,向量中包含了该内容与其他内容的相似度。
- 根据用户曾经感兴趣的内容,找到这些内容与哪些其他内容相似度比较高。
- 将这些相似度高的内容推荐给目标用户。
基于模型的协同过滤算法
基于模型的协同过滤(Model-based Collaborative Filtering)是协同过滤方法的一种,它与传统的基于邻域的协同过滤方法不同。基于模型的协同过滤是通过训练一个模型来预测用户对物品的评分或者喜好,而不是直接基于用户或物品之间的相似性来进行推荐。
基于模型的协同过滤通常包括以下步骤:
- 建立模型:首先,选择一个合适的模型结构,可以是基于统计模型、机器学习模型或深度学习模型。常用的模型包括矩阵分解模型(如隐语义模型)、概率图模型、神经网络模型等。
- 模型训练:使用已知的用户-物品交互数据进行模型训练。训练的目标是通过拟合已有数据来学习模型参数,使得模型能够准确地预测用户对未知物品的评分或者喜好。
- 预测评分:训练好模型后,可以使用该模型来预测用户对未知物品的评分或者喜好。根据预测的评分,可以为用户生成个性化的推荐列表。
基于模型的协同过滤相比于基于邻域的协同过滤具有以下优点:
可扩展性:模型训练过程通常可以并行化,因此能够有效地处理大规模数据。
泛化能力:模型可以从数据中学习到用户和物品的隐藏特征,具有更好的泛化能力。
冷启动问题:模型可以利用物品的特征信息进行推荐,因此能够更好地应对冷启动问题(新用户或新物品的推荐)。
常见的基于模型的协同过滤算法包括基于矩阵分解的隐语义模型、基于概率图模型的贝叶斯网络模型、基于神经网络的深度学习模型等。
扩展
根据参考中的内容,
可以使用 矩阵分解和DNN的方式来做隐式向量的获取。
优缺点
协同过滤有一个天然的缺陷,就是其对稀疏数据的处理比较弱,头部效应比较明显,泛化能力比较差。