推荐算法(9) CTR预测

一、CTR介绍
  在计算广告中,CTR是非常重要的一环。对于特征组合来说,业界通用的做法主要有两大类:FM系列和Tree系列。
  在传统的线性模型中,每个特征都是独立的,如果需要考虑特征与特征之间的相互作用,可能需要人工对特征进行交叉组合。非线性SVM可以对特征进行核变换,但是在特征高度稀疏的情况下,并不能很好的进行学习。现在有很多分解模型可以学习到特征之间的交互隐藏关系,基本上每个模型都只适用于特定的输入和场景。推荐系统是一个高度系数的数据场景,由此产生了FM系列算法。
  在推荐系统和计算广告业务中,点击率CTR(click-through rate)和转化率CVR(conversion rate)是衡量流量转化的两个关键指标。准确的估计CTR、CVR对于提高流量的价值,增加广告及电商收入有重要的指导作用。业界常用的方法有人工特征工程 + LR(Logistic Regression)、GBDT(Gradient Boosting Decision Tree) + LR、FM模型。

二、FM
Ⅰ 推导
1.LR中对特征进行单纯的线性组合,再通过sigmoid()结合。(没有考虑特征间的组合信息)

2.通过one-hot编码之后,数据过于稀疏。但是有的特征之间的组合是有意义的,例如,“男性”与“篮球”、“女性”与“化妆品”这样的关联特征。
这里加上了多项式特征xixj
在这里插入图片描述
其中, n代表样本的特征数量,xi是第i个特征的值, w0,wi,wij是模型参数。

3.但是计算wij的时候它的复杂度是(n*n-1)/2,复杂度太大了。 用一个矩阵的转置和矩阵的乘积,来代表整个大的W矩阵。
(1)我们想到wij是个实对称矩阵。根据实对称矩阵的性质:
任意的N×N实对称矩阵都有N个线性无关的特征向量。并且这些特征向量都可以正交单位化而得到一组正交且模为1的向量。故实对称矩阵A可被分解成:

\vec{A}=\vec{Q}\vec{\Lambda} \vec{Q}^{T}

其中Q为正交矩阵,为实对角矩阵。
(2)类似地,所有二次项参数Wij可以组成一个对称阵W,则W可以分解为W=VTV.。V的第j列Vj便是第j维特征Xj的隐向量。换句话说,特征分量 Xi和Xj的交叉项系数就等于Xi对应的隐向量与Xj对应的隐向量的内积,即每个参数w_{ij}=\left \langle v_{i}, ,这就是FM模型的核心思想

得到目标式:
在这里插入图片描述

Ⅱ 求解
上述是一个通用的拟合方程,可以采用不同的损失函数用于解决回归、二元分类等问题,比如可以采用MSE(Mean Square Error)损失函数来求解回归问题,也可以采用Hinge/Cross-Entropy 损失来求解分类问题。当然,在进行二元分类时,FM的输出需要经过sigmoid变换,这与Logistic回归是一样的。直观上看,FM的复杂度是 。但是,通过公式(3)的等式,FM的二次项可以化简,其复杂度可以优化到。由此可见,FM可以在线性时间对新样本作出预测。
在这里插入图片描述
在这里插入图片描述

三、FFM(在FM的基础上,对特征加上field熟悉,比如:某几个属性是与男人相关的,就把这几个属性放在feild里面)
1.理论
在CTR预估中,通常会遇到one-hot类型的变量,会导致数据特征的稀疏。未解决这个问题,FFM在FM的基础上进一步改进,在模型中引入类别的概念,即field。将同一个field的特征单独进行one-hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关。

假设样本的n个特征属于f个field,那么FFM的二次项有nf个隐向量。而在FM模型中,每一维特征的隐向量只有一个。FM可以看做FFM的特例,把所有特征都归属到一个field的FFM模型。其模型方程为:
在这里插入图片描述
如果隐向量的长度为k,那么FFM的二次参数有nfk个,远多于FM模型的nk个。

2.实现
损失函数
FFM将问题定义为分类问题,使用的是logistic loss,同时加入正则项
在这里插入图片描述
梯度下降
梯度下降方法有很多种,根据为提高效率分别衍生了批量梯度下降,随机梯度下降及小批量梯度下降,根据需求选择即可

3.应用
在DSP或者推荐场景中,FFM主要用来评估站内的CTR和CVR,即一个用户对一个商品的潜在点击率和点击后的转化率。
CTR和CVR预估模型都是在线下训练,然后线上预测。两个模型采用的特征大同小异,主要分三类:
用户相关的特征
年龄、性别、职业、兴趣、品类偏好、浏览/购买品类等基本信息,以及用户近期点击量/购买量/消费额等统计信息

商品相关的特征
商品所属品类、销量、价格、评分、历史CTR/CVR等信息

用户-商品匹配特征
浏览/购买品类匹配、浏览/购买商家匹配、兴趣偏好匹配等

4.细节
样本归一化:FFM默认是进行样本数据的归一化,即 为真;若此参数设置为假,很容易造成数据inf溢出,进而引起梯度计算的nan错误。因此,样本层面的数据是推荐进行归一化的。
特征归一化:CTR/CVR模型采用了多种类型的源特征,包括数值型和categorical类型等。但是,categorical类编码后的特征取值只有0或1,较大的数值型特征会造成样本归一化后categorical类生成特征的值非常小,没有区分性。例如,一条用户-商品记录,用户为“男”性,商品的销量是5000个(假设其它特征的值为零),那么归一化后特征“sex=male”(性别为男)的值略小于0.0002,而“volume”(销量)的值近似为1。特征“sex=male”在这个样本中的作用几乎可以忽略不计,这是相当不合理的。因此,将源数值型特征的值归一化到 是非常必要的。
省略零值特征:从FFM模型的表达式可以看出,零值特征对模型完全没有贡献。包含零值特征的一次项和组合项均为零,对于训练模型参数或者目标值预估是没有作用的。因此,可以省去零值特征,提高FFM模型训练和预测的速度,这也是稀疏样本采用FFM的显著优势。

四、DeepFM
1.FM的结构:
在这里插入图片描述

2.DNN结构(全连接神经网络)
在这里插入图片描述
3.DeepFM
在这里插入图片描述
DeepFM目的是同时学习低阶和高阶的特征交叉,主要由FM和DNN两部分组成,底部共享同样的输入。模型可以表示为: 在这里插入图片描述
FM部分
原理如上,数学表达为:
在这里插入图片描述
Deep部分
深度部分是一个前馈神经网络,与图像或语音类的输入不同,CTR的输入一般是极其稀疏的,因此需要重新设计网络结构。在第一层隐藏层之前,引入一个嵌入层来完成输入向量压缩到低位稠密向量:

嵌入层的结构如上图所示,有两个有趣的特性:
1) 尽管不同field的输入长度不同,但是embedding之后向量的长度均为k
2) 在FM中得到的隐变量Vik现在作为嵌入层网络的权重

效果:
在这里插入图片描述
https://blog.csdn.net/hiwallace/article/details/81333604
https://blog.csdn.net/baymax_007/article/details/83931698

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值