CTR预估之FM系列

CTR预估在广告领域是非常重要的一环,主要是计算点击率,很多会使用LR模型,其间因为特征之间存在相互作用,就要进行特征的组合,业界一般用FM和Tree两种系列。

FM(Factorization Machines)

主要是为了解决数据稀疏的情况下,特征怎样组合的问题。

分类变量一般使用one-hot编码,但是就会 造成数据稀疏,使得特征空间变大。

一般是特征两两组合。


image.png

Wij求解的思路是通过矩阵分解的方法,为了求解Wij,我们队每一个特征分量xi引入辅助向量Vi=(vi1,vi2,...,vik)Vi=(vi1,vi2,...,vik)

������述

然后用vivTjvivjT对wijwij进行求解

������述

求解<vi,vjvi,vj>,主要采用公式(a+b+c)2−a2−b2−c2(a+b+c)2−a2−b2−c2求出交叉项

img

设有3个变量(特征)x1 x2 x3,每一个特征的隐变量分别为v1=(1 2 3)、v2=(4 5 6)、v3=(1 2 1),即:

img

设交叉项所组成的权矩阵W为对称矩阵,之所以设为对称矩阵是因为对称矩阵有可以用向量乘以向量转置替代的性质。
那么
W=VV^T
,即

img

所以:
img

实际上,我们应该考虑的交叉项应该是排除自身组合的项,即对于x1x1、x2x2、x3x3不认为是交叉项,那么真正的交叉项为x1x2、x1x3、x2x1、x2x3、x3x1、x3x2。
去重后,交叉项即x1x2、x1x3、x2x3。这也是公式中1/2出现的原因。

对交叉项有了基本了解后,下面将进行公式的分解,还是以n=3为例,

img

所以:

img

上面的例子是对3个特征做的交叉项推导,因此对具有n个特征,FM的交叉项公式就可推广为:

img

我们还可以进一步分解:

img

所以FM算法的交叉项最终可展开为

img

M的复杂度为O(kn2)O(kn2),通过上述等式,FM的二次项化简为只与vi,fvi,f有关的等式。因此,FM可以在线性时间对新样本做出预测,复杂度和LR模型一样,且效果提升不少。

在训练FM是,加入使用SGD来优化模型,训练时各个参数的梯度如下

������述

∑nj=1vj,fxj∑j=1nvj,fxj 只与f有关,只要求出一次所有的f元素,就能够计算出所有vi,fvi,f的梯度,而f是矩阵V中的元素,计算复杂度为O(kn)。当已知∑nj=1vj,fxj∑j=1nvj,fxj时计算每个参数梯度的复杂度是O(1),更新每个参数的复杂度为O(1),因此训练FM模型的复杂度也是O(kn)

������述

SVM和FM的主要区别在于:

1.SVM的二元特征交叉参数是独立的,而FM的二元特征交叉参数是两个k维的向量vi、vj,交叉参数就不是独立的,而是相互影响的。

2.FM可以在原始形式下进行优化学习,而基于kernel的非线性SVM通常需要在对偶形式下进行

3.FM的模型预测是与训练样本独立,而SVM则与部分训练样本有关,即支持向量

FFM(Field-aware Factorization Machine)

在FM的基础上,将同一个field的特征单独进行one-hot,因此在FFM中,每一维特征都会针对其他特征的每个field,分别学习一个隐变量,该隐变量不仅与特征相关,也与field相关。

image.png

FFM将问题定义为分类问题,使用的是logistic loss,同时加入正则项

image.png

在DSP或者推荐场景中,FFM主要用来评估站内的CTR和CVR,即一个用户对一个商品的潜在点击率和点击后的转化率。

CTR和CVR预估模型都是在线下训练,然后线上预测。两个模型采用的特征大同小异,主要分三类:

用户相关的特征
年龄、性别、职业、兴趣、品类偏好、浏览/购买品类等基本信息,以及用户近期点击量/购买量/消费额等统计信息

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

用户-商品匹配特征

浏览/购买品类匹配、浏览/购买商家匹配、兴趣偏好匹配等

FFM默认是进行样本数据的归一化

将源数值型特征的值归一化到 是非常必要的。

省略零值特征

DeepFM(FM和DNN组合)

DeepFM目的是同时学习低阶和高阶的特征交叉,主要由FM和DNN两部分组成,底部共享同样的输入。模型可以表示为:


image.png

在第一层隐藏层之前,引入一个嵌入层来完成输入向量压缩到低位稠密向量。

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

嵌入层的输出为a(0)=[e1,e2,...,em]a(0)=[e1,e2,...,em],其中eiei是嵌入的第i个filed,m是field的个数,前向过程将嵌入层的输出输入到隐藏层为

image.png

其中l是层数,σσ是激活函数,W(l)W(l)是模型的权重,b(l)b(l)是l层的偏置
因此,DNN得预测模型表达为:

image.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容