在介绍矩阵分解之前,先让我们明确下推荐系统的场景以及矩阵分解的原理。对于推荐系统来说存在两大场景即评分预测(rating prediction)与Top-N推荐(item recommendation,item ranking)。
- 评分预测场景主要用于评价网站,比如用户给自己看过的电影评多少分(MovieLens),或者用户给自己看过的书籍评价多少分。其中矩阵分解技术主要应用于该场景。
- Top-N推荐场景主要用于购物网站或者一般拿不到显式评分信息的网站,即通过用户的隐式反馈信息来给用户推荐一个可能感兴趣的列表以供其参考。其中该场景为排序任务,因此需要排序模型来对其建模。因此,我们接下来更关心评分预测任务。
Ref: https://zhuanlan.zhihu.com/p/35262187
Ref: https://zhuanlan.zhihu.com/p/27502172
推荐算法分类
推荐系统算法大体有两种分类方法,一种是根据推荐的依据进行划分,另一种是根据推荐的最终输出形式进行划分。
根据推荐的依据进行划分
Content-based recommenders: 推荐和用户曾经喜欢的商品相似的商品。 主要是基于商品属性信息和用户画像信息的对比。核心问题是如何刻画商品属性和用户画像以及效用的度量。方法包括:
- Heuristic-based method: 对于特征维度的构建,例如基于关键字提取的方法,使用TF-IDF等指标提取关键字作为特征。对于效用的度量,例如使用启发式cosine相似性指标,衡量商品特征和用户画像的相似性,似性越高,效用越大。
- Machine learning-based mehod:对于特征维度的构建,使用机器学习算法来构建用户和商品的特征维度。例如建模商品属于某个类别的概率,得到商品的刻画属性。对于效用的度量,直接使用机器学习算法拟合效用函数。
基于内容推荐:核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后根据用户以往的喜好记录,推荐给用户相似的物品。
Ref:基于内容推荐与协同过滤推荐
- 基于内容的推荐 只考虑了物品之间的相似度。
- 基于协同过滤的推荐比如userCF是基于用户对物品的交互,构建用户的倒排表,然后根据倒排表得到item-item的共现矩阵,最后根据余弦相似度计算topK相似的物品,推荐给用户。
Collaborative recommenders: 推荐和用户有相似品味和偏好的用户喜欢过的商品。主要是基于用户和商品历史交互行为信息,包括显示的和隐式的。协同过滤方法进一步细分为:
-
Memory-based CF: 基于内存的协同过滤方法。直接对User-Item矩阵进行研究。通过启发式的方法来进行推荐。核心要素包括相似性度量和推荐策略。相似性度量包括Pearson或Cosine等;而最简单的推荐方法是基于大多数的推荐策略。
- User-based CF: 推荐给特定用户列表中还没有发生过行为、而在相似用户列表中产生过行为的高频商品。
- Item-based CF: 推荐给特定用户列表中还没有发生过行为、并且和已经发生过行为的商品相似的商品。
-
Model-based CF: 基于模型的协同过滤方法。主要是运用机器学习的思想来进行推荐。主要包括:
- 基于流形学习的矩阵降维/分解算法: SVD、FunkSVD、BiasSVD、SVD++、NMF等。
- 基于表示学习的深度学习算法:MLP、CNN、AutoEncoder、RNN等。
- 基于图/网络模型的算法:MDP-based CF、Bayesian Belief nets CF、CTR(协同主题回归,将概率矩阵分解和主题模型结合应用于推荐系统)等。
- 其它:包括基于聚类的CF、稀疏因子分析CF、隐语义分析CF等等。
-
Hybrid CF: 结合多种方式的CF算法。如Content-based CF、Content-boosted CF或者结合Memory-based和Model-based CF混合方法。
Hybrid approaches: 混合方法。综合集成上述两种方法。
除此以外,还有两种形式的推荐算法也很流行。
- Constraint-based Recommenders: 基于约束的推荐。
比如在京东购买笔记本电脑时,通过勾选内存大小,显卡类型,屏幕大小,价格区间等就能够获得符合要求的笔记本电脑,然后在进行简单的比如按销量,好评进行排序返回给用户,因此基于约束的推荐可以看成个多类型关键字搜索的过程
- Context-Aware Recommenders: 基于上下文信息的推荐。
基于时间上下文和地点上下文 Ref:推荐系统实战第五章
根据推荐的最终输出形式分类
- Rating prediction:评分预测模型,核心目的是填充用户-商品评分矩阵中的缺失值。 衡量指标通常使用RMSE、MAE等
- Ranking prediction (top-n recommendation) :排序预测模型,核心目的是推荐一个有序的商品列表给用户。通常使用Precision@K、Recall@K等
-
Classification:分类模型,核心目的是把候选商品划分成正确的类别,并用于推荐。通常使用Accuracy等
通常推荐最终输出形式决定了推荐系统的衡量指标,例如Rating prediction通常使用RMSE、MAE等,Ranking prediction通常使用Precision@K、Recall@K等,Classification通常使用Accuracy等。
Ref: http://xtf615.com/2018/05/03/recommender-system-survey/#SVD
关于 RMSE,MSE,MAE 请参考: https://www.jianshu.com/p/9ee85fdad150