首页 > 编程知识 正文

SDM模型,rfm模型中的三项指标是什么

时间:2023-05-03 12:37:37 阅读:45290 作者:1889

调频和调频模型是近几年提出的模型,由于即使在数据量比较大、特征稀疏的情况下,也能取得优异的性能和效果,经常在大型企业举办的CTR预计比赛中取得好的战绩。 美团点评技术团队在构建DSP的过程中,探索并使用了调频和调频模型进行了CTR和CVR的估算,取得了良好的效果。 本文旨在向感兴趣的读者介绍我们对调频和调频原理的探索和应用的经验。

文章参考:

【1】

文章目录1. FFM模型原理2. FFM模型实现3. FFM模型应用1. FFM模型原理

假设广告分类问题,根据用户和广告位的相关特征,预测用户是否点击了广告。 源数据如下:

“Clicked? ”标签的特点是Country、Day和Ad_type。 3个特征均为categorical类型,需要经过One-Hot Encoding转化为数值型特征。

“Day=26/11/15”、“Day=1/7/14”、“Day=19/2/15”这三个特征都表示日期,可以收纳在同一field中。 同样,商品的最终类别代码生成550的特征,550的特征都指示商品所属的类别,所以它们也可以放入相同的field中。 简单来说,同一categorical特征经过One-Hot码生成的数值特征都可以放在同一个field中,包括用户的性别、职业、类别偏好等。 在FFM中,针对一维每个特征xi,针对其他特征的每个field fj学习一个隐藏向量vi、fj。 因此,隐向量不仅与特征相关,而且与field相关。 即," Day=26/11/15 "这一特征在将" Country "这一特征与" Ad_type "这一特征相关联时使用不同隐藏向量," Country "和" ad "

假设样本的n个特征属于f个场,则FFM的二阶项具有nf个隐藏向量。 在FM模型中,每个一维特征只有一个隐藏向量。 也就是说,二次项有n个隐藏向量。 FM可以看作是FFM的特例,是将所有特征都归属于一个域时的FFM模型。 根据FFM的field敏感特性,可以推导出其模型方程。

其中,fj是第j个特征所属的字段。 假设隐藏向量的长度为k,则FFM的二次参数有nfk个,远远多于FM模型的nk个。 另外,由于隐藏向量与field相关,所以不能简化FFM二次项,其预测复杂度为O(kn2 )。

作为一例,简单说明FFM的特征组合方法。 输入记录如下。

这张记录可以编码为五个特征。 其中,“Genre=Comedy”和“Genre=Drama”属于同一字段,“Price”为数值类型,不使用One-Hot编码进行转换。 为了说明FFM的示例格式,将所有特征和相应字段映射为整数编号。

那么,FFM的组合特征有10个项目,如下图所示为:

其中红色为字段号,蓝色为特征号,绿色为该样品的特征值。 二次项的系数通过特征场的隐向量的点积得到,二次项共享n[n1]/2个。

注意

FM和FFM模型的二次项的个数都是 n(n1)/2 个的区别在于,在FM模型中存在二次项中重用的隐向量,而在FFM模型中没有,这正是因为存在FFM的域概念

FM模型的参数量为nk,FFM模型的参数量为nfk个

FM模型的时间复杂度可以优化为线性的,而FFM模型为nfk(如果最坏,即所有特征都是自己的域,则为n^2k ) ) ) ) ) ) ) ) ) ) )。

2. FFM模型实现Yu-Chin Juan实现c版FFM模型,源代码可从Github下载。 该版本的FFM省略了常数项和一次项,模型方程为以下:

其中C2是非零特征的二维组合,j-1是特征,而field f1、wj1和f2是特征j-1相对于field f2的隐藏向量。 该FFM模型采用logistic loss和L2罚项作为损失函数,因此只能用于二元分类问题。

其中,yi{ 1,1 }是第I个样本的label,l是训练样本数,是惩罚系数。 模型采用SGD优化,优化过程如下:

3. FFM模型应用于DSP场景,FFM主要用于估计站内的CTR和CVR,也就是一个用户对一个商品的潜在点击率和点击后的转化率。

CTR和CVR预测模型在线培训并用于在线预测。 两种模式采用的特征相似,主要有三种。 是用户相关的特征,商品相关的特征,还有用户-商品匹配的特征。 用户特征包括年龄、性别、职业、兴趣、类别偏好、浏览/购买类别等基本信息,以及用户最近的点击量、购买量、消费额等统计信息。 商品相关特征包括所属类别、销售量、价格、得分、历史CTR/CVR等信息。 用户-商品匹配的特点主要有浏览/购买类别匹配、浏览/购买商匹配、兴趣爱好匹配等几个维度。

要使用FFM方法,必须将所有特征转换为field_id:feat_id:value格式。 field_id表示特征所属的field的编号,即fea

t_id是特征编号,value是特征的值。数值型的特征比较容易处理,只需分配单独的field编号,如用户评论得分、商品的历史CTR/CVR等。categorical特征需要经过One-Hot编码成数值型,编码产生的所有特征同属于一个field,而特征的值只能是0或1,如用户的性别、年龄段,商品的品类id等。除此之外,还有第三类特征,如用户浏览/购买品类,有多个品类id且用一个数值衡量用户浏览或购买每个品类商品的数量。这类特征按照categorical特征处理,不同的只是特征的值不是0或1,而是代表用户浏览或购买数量的数值。按前述方法得到field_id之后,再对转换后特征顺序编号,得到feat_id,特征的值也可以按照之前的方法获得。

CTR、CVR预估样本的类别是按不同方式获取的。CTR预估的正样本是站内点击的用户-商品记录,负样本是展现但未点击的记录;CVR预估的正样本是站内支付(发生转化)的用户-商品记录,负样本是点击但未支付的记录。构建出样本数据后,采用FFM训练预估模型,并测试模型的性能。

由于模型是按天训练的,每天的性能指标可能会有些波动,但变化幅度不是很大。这个表的结果说明,站内CTR/CVR预估模型是非常有效的。

在训练FFM的过程中,有许多小细节值得特别关注。

第一,样本归一化。FFM默认是进行样本数据的归一化,即 pa.norm 为真;若此参数设置为假,很容易造成数据inf溢出,进而引起梯度计算的nan错误。因此,样本层面的数据是推荐进行归一化的。

第二,特征归一化。CTR/CVR模型采用了多种类型的源特征,包括数值型和categorical类型等。但是,categorical类编码后的特征取值只有0或1,较大的数值型特征会造成样本归一化后categorical类生成特征的值非常小,没有区分性。例如,一条用户-商品记录,用户为“男”性,商品的销量是5000个(假设其它特征的值为零),那么归一化后特征“sex=male”(性别为男)的值略小于0.0002,而“volume”(销量)的值近似为1。特征“sex=male”在这个样本中的作用几乎可以忽略不计,这是相当不合理的。因此,将源数值型特征的值归一化到 [0,1] 是非常必要的。

第三,省略零值特征。从FFM模型的表达式可以看出,零值特征对模型完全没有贡献。包含零值特征的一次项和组合项均为零,对于训练模型参数或者目标值预估是没有作用的。因此,可以省去零值特征,提高FFM模型训练和预测的速度,这也是稀疏样本采用FFM的显著优势。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。