ctr
ctr(广告点击率)与cvr(广告转化率)是在推荐系统中的重要概念。CTR预估正样本为站内点击的用户-商品记录,负样本为展现但未点击的记录;CVR正样本为站内支付(发生转化)的用户-商品记录,负样本为点击但未支付的记录。
CTR和CVR预估模型为线下估计,用于线上测试,特征主要分为三类:用户相关特征包括年龄、性别、职业、兴趣、品类偏好、浏览/购买品类、近期点击量、购买量、消费额等,商品相关特征包括所属品类、销量、价格、评分、历史CTR/CVR,用户-商品匹配特征包括浏览/购买品类匹配、浏览/购买商家匹配、兴趣偏好匹配等。
Logistic Regression
通常,推荐系统数据为高维离散特征,因此十分适用于logistic regression,具体上可表述为
其优势在于模型简单易于理解,且容易实现分布式计算,另外有Google的FTRL
等变种模型,其可统一概括为:LR+正则+特定优化。
但LR模型忽略了特征之间的联系,多个特征之间可能存在交叉关系,因此需要人为构建特征。另外,LR需要将特征离散化、归一化。
GBDT
GBDT
是一种梯度提升决策树模型,其优点在于处理连续特征,可以自动选取不同特征进行组合,选取最优分裂特征与分裂点,得到特征重要度排序,并且不需要进行归一化处理。
由于在ctr估计中,大部分特征为离散特征,因此若使用GBDT则需要通过embedding等方式将其处理成连续特征。GBDT的树模型结构特点决定了其不利于挖掘长尾特征,并且相对于DNN来说,其特征组合能力有限。
FM与FFM
FM(Factorization Machine)最早被提出旨在解决稀疏数据下的特征组合问题
。对于categorical类型特征,需要经过独热编码(One-Hot Encoding)转换成数值型特征。One-Hot编码后,特征呈高维稀疏。若直接进行二阶组合,其表达式为
此时,二阶特征参数有
个,且两两之间相互独立,由于特征的高度稀疏,许多
对应的特征值大部分都是0,难以实现较好的训练,严重影响模型预测结果。
为解决大量参数问题,FM算法采用了矩阵分解的思路。在这里首先介绍一下协同过滤中的矩阵分解。再推荐系统中,用户与商品的关系矩阵为一高维稀疏矩阵。为对矩阵进行分解,考虑奇异值分解(SVD)。定义方阵中特征值与特征向量为
则A可特征分解为
其中
为特征向量组合成的
维方阵,
为对角元素为特征值的对角矩阵。当
非方阵时,定义SVD为
其中
为
,
为
,
为
。在推荐系统中,用户物品关系矩阵
可分解为
其中
是矩阵
中较大的奇异值个数,一般远小于用户数与物品数。但是SVD要求矩阵稠密,传统SVD方法中通常采用全局平均值或用户物品平均值不全缺失值。另外,由于矩阵维数很大,做SVD十分耗时。在实际推荐系统中,评分矩阵
分解为用户与物品矩阵
其中,
可以看作用户
对物品隐藏特质
的热衷程度,
可以看作特质
在物品
上的体现程度,引入预测器
其中
为所有评分基准,
和
分别为物品
和用户
的评分均值相对
的偏移。其优化目标函数为
采用梯度下降或迭代最小二乘的方法交替更新优化各参数。
而之后的SVD++则是在用户信息上进行了更深层次的挖掘,用户对某个物品有评分行为,该行为事实上隐藏了一定信息,侧面反映了用户的喜好,这样的反映可通过隐式参数形式体现在模型中,得到一个更加精细的模型。
同样采用梯度下降方法优化。
回到FM,SVD和SVD++这些模型仅限于单一场景,输入形式也单一(仅限于categorical类变量),而FM通过对输入特征进行变换,同样可实现这些模型特征,且输入为任意实数域数据,具有更强泛用性。通过矩阵分解,FM的模型可变换为
其中,
即特征
的对应的
维的特征向量,此时参数仅有
个,远小于之前的
个。根据上式,计算复杂度有
,因此可对上式进行优化
此时,计算复杂度仅有
,可以在线性时间内完成预测。所有包含“
的非零组合特征”的样本均可以用来学习
,很大程度上避免了数据稀疏性造成的影响。
作为一个拟合方程,FM可以通过添加MSE损失函数求解回归问题,也可通过添加Hinge/Cross-Entropy损失函数求解分类问题。在进行二分类时,同LR相似,FM输出也需要经过sigmoid变换,之后通过SGD等方法进行模型训练。
另外,在原论文中,也将FM与SVM进行对比。关于SVM的原理,在这里不加详述。对比之下,可以发现SVM的二阶特征交叉参数也是相互独立的,因此在稀疏条件下效果较差。另外,在模型优化上,FM在原始形式下进行优化,而基于kernel的非线性SVM则需要在对偶形式下进行,并且FM模型预测与训练样本相互独立,而SVM则存在部分关系,即支持向量。
FFM(Field-aware Factorization Machine)最早由台大学生Yu-Chin Juan等人借鉴Michael Jahrer的论文中的field概念提出,是FM的升级版。FFM将相同性质的特征归于同一个field中,也就是说同一个categorical特征经过One-Hot编码后的数值特征均可以放于同一个field,如性别、职业等。每一维特征
,针对其他特征的每一种field
,都会学会一个隐变量
。假设样本
个特征属于
个field,那么FFM的二次项共有
个隐变量。其模型方程为
此时模型复杂度增至
。
特征处理方面,数值型特征只需分配单独的field编号,如用户评论得分、商品历史CTR/CVR;categorical特征需要One-Hot编码成数值型,产生的特征属于同一field,取值为0或1,如用户性别、年龄段、商品id等;第三类特征如用户浏览/购买品类,有多个品类id且用一个数值衡量用户浏览/购买每个品类商品数量,这类特征按照categorical特征处理,不过非0或1,而是对应数量。
在使用FM、FFM类模型时,需要注意的小细节有:
1.样本归一化。
2.特征归一化。对于categorical类特征,One-Hot编码后取值为0或1,对比其他较大数值型特征时,其在样本中作用几乎可以忽略不计,这是十分不合理的,因此在特征处理时需要将源数值型特征归一化至[0,1]。
3.省略零值特征。零值特征对模型没有任何贡献,因此训练时候省略零值特征,这也是稀疏样本采用FM、FFM模型的优势。
GBDT+(LR,FM,FFM)
已知GBDT更加适合于处理连续型特征,并且本身可以做到特征选择与组合,而LR、FM、FFM等模型更适合于处理离散化特征,因此可以先使用GBDT对稠密连续型特征进行离散化构建特征,将叶子节点值作为LR等模型的新特征,如Facebook在2014年的论文中提到的方法
。这样做可以在一定程度上组合特征,改善人工离散化时候出现的边界问题,减少了人工的工作量。其公式为
参考文献:
[1]https://zhuanlan.zhihu.com/p/32689178
[2]Shalev-Shwartz S, Singer Y. A primal-dual perspective of online learning algorithms[J]. Machine Learning, 2007, 69(2-3):115-142.
[3]Friedman J H. Greedy function approximation: A gradient boosting machine.[J]. Annals of Statistics, 2001, 29(5):1189-1232.
[4]https://tech.meituan.com/deep_understanding_of_ffm_principles_and_practices.html
[5]Rendle S. Factorization Machines[C]// IEEE, International Conference on Data Mining. IEEE, 2011:995-1000.
[6]He X, Pan J, Jin O, et al. Practical Lessons from Predicting Clicks on Ads at Facebook[M]. ACM, 2014.