(一)CTR预估基本模式
对于用于的一次访问请求,比如打开App Store,这即是一次请求,系统会通过召回和排序给你推荐一些可能感兴趣的App。召回和排序也称为粗排和精排。
Retrieval
召回部分主要是从App集合中粗粒度的选出一些可能会被下载的软件,应为App集合数量过于庞大,直接精排会差生效率上的问题。首先根据一些自定义的rule做预处筛选。
Ranking
排序即对于召回模块提供的App候选集按照可能被下载/点击的概率进行排序。
如图所示为推荐系统的流程示意图,其中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部分
Wide Component
该部分是个广义线性模型:
将结果过**函数,,是个d维向量,w是d维权重。
该部分特征既可以是原始特征,也可以是由原始特征构成的交叉特征。
Deep Component
deep输入的是稀疏特征,首先将其转化为低纬稠密特征(训练得到),再输入接下来的若干层的deep网络中:
(五)训练
deep & wide通过联合训练得到结果,即deep部分和wide部分同时训练,loss同时传回这两个部分