介绍几种工业界比较常用的时长建模方案: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领域的技术,这一阶段主要思考通用的特征交互方法。近几年,又开始面向某类特征,设计专用的特征交互方法,值得一提的是一系列用户行为序列建模的方法在工业界取得了非常大的收益。本文记录一下对前两个阶段的一些工作的理解,第三阶段以后单独开一篇。
点击率预估模型训练,在早期阶段由于模型结构比较简单,稀疏Embedding占比非常大而稠密参数较少,因此异步训练存在的参数更新冲突和延迟问题并不严重,异步训练是普遍采用的方式。随着Attention等复杂结构在稠密网络部分的应用,稠密参数的影响力变大,异步训练带来的参数更新问题越来越严重,制约着模型训练效果,另外随着GPU的应用,同步训练的性能问题也有缓解,所以同步训练渐渐成为主流。同步训练有两种方式,一种是基于Parameter Server的同步训练,一种是基于AllReduce方式的训练。以目前推荐系统领域依然重度使用的TensorFlow为例,第一种经常采用TensorFlow SyncReplicasOptimizer,第二种经常采用Horovod TensorFlow。但这两种方式都存在一个简单却多年无人去解决的问题,对于用户群体这么大的框架来说,有点匪夷所思。
ChatGPT出现后,已经有许多开源项目尝试复现其效果,包括LLaMa、DeepSpeed-Chat、ColossalChat、ChatGLM等。其中DeepSpeed-Chat是微软Deep Speed团队的开源项目,其完整的提供了Supervised Fine-tuning、Reward Model Training、RLHF PPO Traing三阶段的代码,逻辑简单,模块划分清晰,另外也由于Deep Speed在大模型训练中的使用非常普遍,所以笔者近期正在研究DeepSpeed-Chat的代码。本文以DeepSpeed-Chat的实现为例,详细介绍下RLHF——基于人类反馈的强化学习策略,并与经典Off-Policy Actor-Critic策略做对比。
ChatGPT出现后,已经有许多开源项目尝试复现其效果,包括LLaMa、DeepSpeed-Chat、ColossalChat、ChatGLM等。其中DeepSpeed-Chat是微软Deep Speed团队的开源项目,其完整的提供了Supervised Fine-tuning、Reward Model Training、RLHF PPO Traing三阶段的代码,逻辑简单,模块划分清晰,另外也由于Deep Speed在大模型训练中的使用非常普遍,所以笔者近期正在研究DeepSpeed-Chat的代码。本文介绍下在13b模型上运行SFT、RW、RLHF全部三阶段的实战情况。
搜广推召回建模中,正样本中热门item的占比往往非常大,为了降低整体训练loss,最终得到的用户向量和热门item的向量往往分数更高,这样就导致线上召回时top K也被热门item占领,和业务目标偏离。本文讨论热门item打压的几种办法。