学习
实践
活动
专区
工具
TVP
写文章

由FM推演CTR预估的深度学习模型

CTR介绍

点击率(click-through rate, CTR)是互联网公司进行流量分配的核心依据之一。比如互联网广告平台,为了精细化权衡和保障用户、广告、平台三方的利益,准确的CTR预估是不可或缺的。CTR预估技术从传统的逻辑回归,到近两年大火的深度学习,新的算法层出不穷:DeepFM, NFM, DIN, AFM, DCN……

从FM及其与神经网络的结合出发,能够迅速贯穿很多深度学习CTR预估网络的思路,从而更好地理解和应用模型。

CTR深度模型的推导思路

从原理上进行推导深度CTR预估模型,达到知其然也知其所以然的目的。

核心思路:通过设计网络结构进行组合特征的挖掘。

具体来说有两条:

从FM开始推演其在深度学习上的各种推广(下图红线)

从embedding+MLP自身的演进特点结合CTR预估本身的业务场景进行推演(下图黑线)

便于理解,我们简化了数据案例——只考虑离散特征数据的建模,以分析不同神经网络在处理相同业务问题时的不同思路。

FM:降维思路下的特征二阶组合

CTR预估本质是一个二分类问题。以移动端展示广告推荐为例,依据日志中的用户侧的信息(年龄、性别、婚否,手机上安装的app列表)、广告侧的信息(标题、类别、内容等)、上下文侧信息(渠道id等),去建模预测用户是否会点击该广告。

FM出现之前的传统的处理方法是人工特征工程加上线性模型(如逻辑回归Logistic Regression)。为了提高模型效果,关键就是特征工程,即是找到用户点击行为背后隐含的特征。如男性、大学生用户往往会点击游戏类广告,因此"男性且是大学生且是游戏类"的特征组合就是一个关键特征。但这本质仍是线性模型,其假设函数表示成内积形式一般为:

其中x为特征向量,w为权重向量,σ()为sigmoid函数。

但是人工进行特征组合通常会存在诸多困难,如维度灾难、特征难以被识别、特征难以组合等。为了让模型自动地考虑特征之间的二阶组合信息,线性模型推广为二阶多项式(2d−Polynomial)模型:

其实就是对特征向量两两点乘构成新特征(离散化之后其实就是"且"操作),并对每个新特征分配独立的权重,通过机器学习来自动获得这些权重。矩阵形式为:

其中W2为二阶特征组合的权重矩阵,是对称矩阵。而这个矩阵参数非常多,为O(n2)。为了降低该矩阵的维度,可以将其因子分解(FactorizationFactorization)为两个低维(比如n∗k)矩阵的相乘。则此时W2矩阵的参数就大幅降低,为O(nk)。公式如下:

这就是Rendle等在2010年提出的因子分解机(Factorization Machines,FM)。FM的矩阵形式公式如下:

写成内积形式:

由于:

将上式改写成求和式形式:

其中vi向量是矩阵W的第i列。为了去除重复项与特征平方项,上式可以进一步改写成更为常见的FM公式:

对比二阶多项式模型,FM模型中特征两两相乘(组合)的权重是相互不独立的,它是一种参数较少但表达力强的模型。

从神经网络的视角看FM:嵌入后再进行内积

我们观察FM公式的矩阵内积形式:

发现W*x部分就是将离散系数特征通过矩阵乘法降维成一个低维稠密向量。这个过程对神经网络来说就叫做嵌入(embedding)。所以用神经网络视角来看:

FM首先是对离散特征进行嵌入。

之后通过对嵌入后的稠密向量进行内积来进行二阶特征组合。

最后再与线性模型的结果求和进而得到预估点击率。

其示意图如下。清晰起见,我们绘制的是神经网络计算图而不是网络结构图——在网络结构图中增加了权重W的位置。

FM的实际应用:考虑特征领域信息

广告点击率预估模型中的特征以分领域的离散特征为主,如:广告类别、用户职业、手机APP列表等。由于连续特征比较好处理,为了简化起见,本文只考虑同时存在不同领域的离散特征的情形。处理离散特征的常见方法是通过one-hot编码转换为一系列二值特征向量。

然后将这些高维稀疏特征通过嵌入(embedding)转换为低维连续特征。前面已经说明FM中间的一个核心步骤就是嵌入,但这个嵌入过程没有考虑领域信息。这使得同领域内的特征也被当做不同领域特征进行两两组合了。

其实可以将特征具有领域关系的特点作为先验知识加入到神经网络的设计中去:同领域的特征嵌入后直接求和作为一个整体嵌入向量,进而与其他领域的整体嵌入向量进行两两组合。而这个先嵌入后求和的过程,就是一个单领域的小离散特征向量乘以矩阵的过程。

此时FM的过程变为:对不同领域的离散特征分别进行嵌入,之后再进行二阶特征的向量内积。其计算图图如下所示:

这样考虑其实是给FM增加了一个正则:考虑了领域内的信息的相似性。而且还有一个附加的好处,这些嵌入后的同领域特征可以拼接起来作为更深的神经网络的输入,达到降维的目的。接下来我们将反复看到这种处理方式。

此处需要注意,这与"基于领域的因子分解机"(Field-aware Factorization Machines,FFM)有区别。FFM也是FM的另一种变体,也考虑了领域信息。但其不同点是同一个特征与不同领域进行特征组合时,其对应的嵌入向量是不同的。本文不考虑FFM的作用机制。

经过这些改进的FM终究还是浅层网络,它的表现力仍然有限。为了增加模型的表现力(model capacity),一个自然的想法就是将该浅层网络不断"深化。"

embedding+MLP:CTR深度学习模型的通用框架

embedding+MLP是对于分领域离散特征进行深度学习CTR预估的通用框架。深度学习在特征组合挖掘(特征学习)方面具有很大的优势。比如以CNN为代表的深度网络主要用于图像、语音等稠密特征上的学习,以W2V、RNN为代表的深度网络主要用于文本的同质化、序列化高维稀疏特征的学习。CTR预估的主要场景是对离散且有具体领域的特征进行学习,所以其深度网络结构也不同于CNN与RNN。

embedding+MLP的过程如下:

1. 对不同领域的one-hot特征进行嵌入(embedding),使其降维成低维度稠密特征。

2. 然后将这些特征向量拼接(concatenate)成一个隐含层。

3. 之后再不断堆叠全连接层,也就是多层感知机(Multilayer Perceptron, MLP,有时也叫作前馈神经网络)。

4. 最终输出预测的点击率。

其示意图如下:

embedding+MLP的缺点是只学习高阶特征组合,对于低阶或者手动的特征组合不够兼容,而且参数较多,学习较困难。本文今天主要讲到此,实现了由FM到深度神经网络表示的转变,后续会继续发文讲解改进的其他模型。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181029A09Q1500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券