百度推荐排序技术的思考与实践( 二 )


用户维度上,最基础的年龄、性别、兴趣点画像 。在此基础上还会有一些细粒度的特征,比如相似用户,以及用户历史上对不同资源类型的偏好行为等 。session 特征,主要是长短期行为序列 。业界有很多做序列的模型,在此不作赘述 。但无论做何种类型的序列模型,都缺少不了特征层面的离散 session 特征 。在百度的搜索广告上 , 从 10 多年前就已经引入了这一种细粒度的序列特征 , 对用户在不同的时间窗口上,对不同资源类型的点击行为、消费行为等等都细致地刻画了多组序列特征 。
【百度推荐排序技术的思考与实践】资源维度上,也会有 ID 类特征来记录资源本身的情况,主导的是记忆 。还有明文画像特征来实现基础的泛化能力 。除了粗粒度的特征以外,也会有更为细致的资源特征 , 比如 Embedding 画像特征,是基于多模态等预训练模型产出的,更细致地建模离散 embedding 空间中资源之间的关系 。还有统计画像类的特征,描述资源各种情况下的后验如何 。以及 lookalike 特征,通过用户来反向表征资源进而提升精度 。
在场景维度上,有单列、沉浸式、双列等不同的场景特征 。
用户在不同的状态下,对于 feed 信息的消费也是不同的 。比如刷新状态是如何的,是从什么样的网络过来的,以及落地页上的交互形态是怎样的,都会影响到用户未来的决策,所以也会从状态维度来描述特征 。
通过用户、资源、状态、场景四个维度,全面刻画用户与系统交互的决策过程 。很多时候也会做多个维度之间的组合 。
2、离散特征设计原理接下来介绍离散特征设计原理 。

百度推荐排序技术的思考与实践

文章插图
优质的特征通常具有三个特点:区分度高、覆盖率高、鲁棒性强 。
  • 区分度高:加入特征后,后验有着很大差异 。比如加入 a 特征的样本,后验点击率跟没有命中 a 特征的后验点击率差距是非常大的 。
  • 覆盖率高:如果加入的特征在整个样本中的覆盖率只有万分之几、十万分之几,那么即使特征很有区分度,但大概率也是没有效果的 。
  • 鲁棒性强:特征本身的分布要是相对稳定的,不能随着时间发生非常剧烈的变化 。
除了上述三个标准,还可以做单特征的 AUC 判断 。比如只用某一特征来训练模型,看特征跟目标之间的关系 。也可以去掉某特征,看少了特征之后的 AUC 变化情况 。
基于上述设计原则,我们来重点讨论三类重要特征:即交叉、偏置和序列特征 。
  • 交叉特征方面,业界有数百篇的相关工作,实践中发现无论任何类型的隐式特征交叉都无法完全替代显示特征交叉,也不可能把所有的交叉特征全部删掉,只用隐式表征来做 。显示特征交叉能够刻画出隐式特征交叉所无法表达的相关信息 。当然如果做得更深,可以用 AutoML 来进行自动搜索可能的特征组合空间 。因此在实践中,以显式特征交叉为主,隐式特征交叉为辅的方式来做特征之间的 cross 。
  • 偏置类特征指的是,用户的点击不等于用户满意,因为资源的展示有各种各样的偏置,比如最普遍的就是 position bias,展现在头部的资源天然更容易被点击 。还有 system bias,系统优先展现出认为最优的,但不一定是真的最优,比如新发布的资源,可能会因为缺少后验信息而处于劣势 。
    对于偏置特征有一个很经典的结构,就是谷歌提出的 Wide&Deep 结构 , Wide 侧通常会放各种偏置的特征,线上直接可以裁剪掉,通过这种偏序排序的方式来达到无偏估计的效果 。
  • 最后是序列特征,是非常重要的一类用户个性化特征 。业界现在主流的都是做超长序列的建模,具体的实验中会发现,通常长序列的存储开销是非常大的 。前文中提到我们要达到性能与效果的折中 。长序列可以通过离线预计算好,短序列可以在线实时计算,所以我们往往会结合两种方式 。通过门控网络来决策用户当前更偏向于短序列还是长序列的方式,来 balance 长期兴趣以及短期兴趣 。同时需要注意,随着序列拉长其边际收益是递减的 。
3、推荐漏斗最优化的特征体系
百度推荐排序技术的思考与实践


推荐阅读