(一)CTR预估基本模式

对于用于的一次访问请求,比如打开App Store,这即是一次请求,系统会通过召回和排序给你推荐一些可能感兴趣的App。召回和排序也称为粗排和精排。

Retrieval

召回部分主要是从App集合中粗粒度的选出一些可能会被下载的软件,应为App集合数量过于庞大,直接精排会差生效率上的问题。首先根据一些自定义的rule做预处筛选。

Ranking

排序即对于召回模块提供的App候选集按照可能被下载/点击的概率进行排序。

Deep & Wide模型
如图所示为推荐系统的流程示意图,其中query可以理解为打开App Store事件,UserAction是用于历史上的一些点击数据,可以作为训练集或者label,经过Retrieval选出一定量的item送给Ranking,最终按照一定的顺序将这些item展现出来。

(二)提出动机

在deep & wide之前,已经有例如LR、FM、DNN等模型用于推荐系统。缺点如下:

  • LR模型:虽然操作简单,但是想要学些到组合特征时,需要手动进行交叉,并且对于数据中不存在的交叉特征,模型无法学习到其参数。
  • FM、DNN虽然可以解决LR模型的一些缺点,但是对于稀疏矩阵(query-item,用户点击了xx),总是可以学习到一些embedding的向量,使得对于某物品的推荐始终不为0,这就存在着过度泛化的现象。

deep & wide模型是一种兼顾了上述两种模型特点,即记忆性和泛化性的模型

(三)Memorization 和 Generalization

Memorization

记忆性,即LR模型所具有的优点,比如对于交叉特征,对于某两种特征组合下label为1,那么该交叉特征系数就不会为0,如果新数据中出现了相同的特征组合,那么模型根据以往的学习经验,很可能会将label打为1

Generalization

泛化性,FM模型中通过将embedding方法学习到不同特征对应的隐向量,即使交叉特征没有出现时,照样可以求出该交叉特征点系数,使模型具有一定的泛化能力。

(四)Deep & Wide

如图所示,模型分为两个部分wide部分和deep部分
Deep & Wide模型

Wide Component

该部分是个广义线性模型:
y=wTx+by=\mathbf{w}^{T} \mathbf{x}+b将结果过**函数,x=[x1,x2,,xd]\mathbf{x}=\left[x_{1}, x_{2}, \ldots, x_{d}\right],是个d维向量,w是d维权重[w1,w2,,wd]\left[w_{1}, w_{2}, \dots, w_{d}\right]
该部分特征既可以是原始特征,也可以是由原始特征构成的交叉特征。

Deep Component

deep输入的是稀疏特征,首先将其转化为低纬稠密特征(训练得到),再输入接下来的若干层的deep网络中:
a(l+1)=f(W(l)a(l)+b(l))a^{(l+1)}=f\left(W^{(l)} a^{(l)}+b^{(l)}\right)

(五)训练

deep & wide通过联合训练得到结果,即deep部分和wide部分同时训练,loss同时传回这两个部分

相关文章: