介绍几种工业界比较常用的时长建模方案:Weight Logloss、时长归一化、CREAD、Earth Mover’s Distance、Distill Softmax
为了追求模型的时效性,在线学习已经成为主流。在线学习使用最近时间窗口内的样本进行实时模型训练,由于窗口设定往往比较短,所以有些样本的真实label并未到达,造成延迟反馈问题。比如某次商品点击之后,用户可能会反复对比其他商品,在几十分钟之后才进行下单,有时候会放入购物车,等价格降低或促销时才下单,要想拿到真实的转化label可能需要等待多天。对比转化延迟,点击延迟往往比较短,但点击label在窗口外到达的情况仍然存在。延迟反馈建模有多种方法,其中基于样本回补的方式大概这样:等待窗口内如果能拿到正反馈就作为正例训练,否则当做负例,在等待窗口之外,如果正反馈到来,则进行样本回补训练。对于怎么回补样本,有多种方式,在不同的回补方式上,纠偏方案也各不相同,本文对它们进行详细介绍。
点击率模型训练时,由于性能或其他原因,对负样本经常会降采样,导致预测值与真实值偏差,而线上排序时很多情况下需要真实值,所以需要进行校准。比较简单的校准方法有三种,分别介绍一下。
在精排模型迭代时,经常会遇到在离线指标不一致的问题,这里根据过往经验总结下遇到的问题及原因。
特征工程是CTR建模中最重要的问题。DNN时代之前,主要是人工构造组合特征和FM类自动交叉。迁移DNN初期,主要是FNN、PNN、DeppFM、Wide&Deep这类模型,特点是特征交互基本沿用了浅层模型的方法,区别是后接了MLP。此后,DNN在CTR领域站稳脚跟后,才开始真正的面向DNN,思考怎样进行特征交互建模,比如吸收了Attention等NLP领域的技术,这一阶段主要思考通用的特征交互方法。近几年,又开始面向某类特征,设计专用的特征交互方法,值得一提的是一系列用户行为序列建模的方法在工业界取得了非常大的收益。本文对用户行为序列建模做个概要的思路整理。
我从事广告算法多年了,经历过点击率模型从XGBoost、大规模离散逻辑回归、FFM到后来DNN的演进。2017年从FFM迁移DNN时,主要考察的是FNN、PNN、DeppFM、Wide&Deep这类模型,特点是特征交互基本沿用了浅层模型的方法,区别是后接了MLP。此后,DNN在CTR领域站稳脚跟后,才开始真正的面向DNN,思考怎样进行特征交互建模,比如吸收了Attention等NLP领域的技术,这一阶段主要思考通用的特征交互方法。近几年,又开始面向某类特征,设计专用的特征交互方法,值得一提的是一系列用户行为序列建模的方法在工业界取得了非常大的收益。本文记录一下对前两个阶段的一些工作的理解,第三阶段以后单独开一篇。
搜广推召回建模中,正样本中热门item的占比往往非常大,为了降低整体训练loss,最终得到的用户向量和热门item的向量往往分数更高,这样就导致线上召回时top K也被热门item占领,和业务目标偏离。本文讨论热门item打压的几种办法。
在文章[TensorFlow Candidate Sampling](https://www.tensorflow.org/extras/candidate_sampling.pdf)中,很多地方直接使用了$u(x;\,\theta)=\log \frac{p(x^c)}{q(x^c)}$,缺乏理论支持,笔者认为不太正确,所以在本文记录下个人理解。
超大规模多分类问题Softmax分母的Partition Function难以计算。比如,在推荐系统领域,预测用户下一次点击某个item的概率,需要累加全部item上的exp值,而item数量可能为千万甚至亿级。Sampled Softmax通过概率模型和优化目标的改变,巧妙的解决了这个问题,本文详细介绍Sampled Softmax的核心思想。
超大规模多分类问题Softmax分母的Partition Function难以计算。比如,在推荐系统领域,预测用户下一次点击某个item的概率,需要累加全部item上的exp值,而item数量可能为千万甚至亿级。NCE通过概率模型和优化目标的改变,巧妙的解决了这个问题,本文详细介绍NCE的核心思想。