此系列文章为《深度学习推荐系统》一书的读书笔记。
首先介绍一些传统的推荐模型。
传统算法:
因子分解机 — 深度因子分解机 — 神经网络因子分解机
协同过滤,根据字面意思,就是协同大家的反馈、评价和意见一起对海量的信息进行过滤,从中筛选出目标用户可能感兴趣的信息的推荐过程。
举例:
协同过滤过程中,用户相似度的计算是算法中最关键的一步。
共现矩阵中的行向量代表相应用户的用户向量,那么计算用户i和用户j之间相似度的问题,就可以转化成计算两个向量之间的相似度问题。常用的向量间相似度计算方法有:
(1)余弦相似度
(2)皮尔逊相关系数
以上算法主要基于用户相似度进行推荐,因此也被称为基于用户的协同过滤(UserCF),该类算法缺点主要有
(1)复杂度随用户增加显著提升,速度为n^2
(2)用户历史数据稀疏
UserCF基于用户相似度进行推荐,用户能够快速得知与自己兴趣相似的人的喜好。这一特点使其非常适用于新闻推荐场景。
ItemCF更适用于兴趣变化较为稳定的应用,例如Amazon的电商场景,用户在一个时间段内更倾向于寻找一类商品,此时利用物品相似度为其推荐相关物品是契合用户动机的。
UserCF:新闻推荐场景
ItemCF:电商场景、视频推荐场景
协同过滤是一个非常直观、可解释性很强的模型。但是,基于数据相似性进行推荐的方式导致该算法极其依赖数据的完备性。当数据分布不均时,热门物品往往具有很强的头部效应,容易和大量物品产生相似性;而尾部物品由于特征向量稀疏,很难与其他物品产生相似性,因此很少被推荐。
这揭示了协同过滤的天然缺陷——推荐结果的头部效应明显、处理稀疏向量的能力弱。
对协同过滤算法中的共现矩阵进行矩阵分解,分解方法有特征值分解、奇异值分解和梯度下降。
和协同过滤一样,不方便加入用户、物品、上下文等特征,丧失了利用其他有效信息的机会。
逻辑回归将推荐问题看成一个分类问题,通过预测证样本的概率对物品进行排序(正样本可以是用户“点击”了某商品,也可以是用户“观看”了某视频,均是推荐系统希望用户产生“正反馈”的行为)。将推荐问题转换成一个点击率(Click Through Rate)预估问题。
表达能力不强,不能进行特征交叉、特征筛选等一系列较为“高级”的操作,因此不可避免地造成信息损失。
为解决这一问题,土建模型朝着复杂化的方向继续发展,衍生出因子分解机等高维复杂模型。
因子分解机(Factorization Machine, FM)
域感知因子分解机(Field-aware Factorization Machine, FFM)
POLY2模型采用特征暴力组合的方式进行特征组合。
二阶公式
Φ P O L Y 2 ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n w h ( j 1 , j 2 ) x j 1 x j 2 \Phi POLY2(w, x)=\sum_{j_1=1}^n \sum_{j_2=j_1+1}^n w_{h(j_1,j_2)}x_{j_1}x_{j_2} ΦPOLY2(w,x)=j1=1∑nj2=j1+1∑nwh(j1,j2)xj1xj2
POLY2模型本质上仍是线性模型,其训练方法与逻辑回归并无区别,便于工程上的兼容。
二阶公式
F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 ⋅ w j 2 ) x j 1 x j 2 FM(w, x)=\sum_{j_1=1}^n \sum_{j_2=j_1+1}^n (w_{j_1} \cdot w_{j_2})x_{j_1}x_{j_2} FM(w,x)=j1=1∑nj2=j1+1∑n(wj1⋅wj2)xj1xj2
引入特征隐向量,把POLY2模型 n 2 n^2 n2级别的权重参数数量减少到了 n k nk nk 级别。同时,隐向量的引入使FM能更好地解决数据稀疏性的问题。
举例来说,。。。
FM在2012-2014年前后,成为业界主流的推荐模型之一。
FFM模型引入了特征域感知(field-aware)概念,提升模型表达能力。
F F M ( w , x ) = ∑ j 1 = 1 n ∑ j 2 = j 1 + 1 n ( w j 1 , f 2 ⋅ w j 2 , f 1 ) x j 1 x j 2 FFM(w, x)=\sum_{j_1=1}^n \sum_{j_2=j_1+1}^n (w_{j_1, f_2}\cdot w_{j_2, f_1})x_{j_1}x_{j_2} FFM(w,x)=j1=1∑nj2=j1+1∑n(wj1,f2⋅wj2,f1)xj1xj2
特征域的引入,为模型引入了更多有价值的信息,使模型表达能力更强,但与此同时,FFM的计算复杂度上升 到 k n 2 kn^2 kn2,远大于FM的 k n kn kn ,在实际工程应用中,需要在模型效果和工程投入之间进行权衡。
理论上,FM模型的思路可以引申到三阶模型,但由于组合爆炸问题,三阶模型无论是在权重数量还是训练复杂度上都过高,因此,如何在实际工程应用中,突破二阶特征交叉的限制,进一步加强模型特征组合能力,成了推荐模型发展的方向。
大规模分段线性模型,Large Scale Piece-wise Linear Model