搜索推荐广告中的Position Bias:美团DPIN

5e396cbed984713c3220e2b97165af32.png

作者 | Chilia      

哥伦比亚大学 nlp搜索推荐  

整理 | NewBeeNLP

在上一篇文章中,我们介绍了业界解决position bias的一些方法。聊一聊搜索推荐中的 Position Bias

主要就是把位置作为神经网络中的特征/模块,放于网络的Wide部分,在线下训练时使用真实位置;但是,由于在预估过程中并不知道真实位置信息,所以在线上预估时使用固定位置。

这种方法由于其简单性和有效性,在工业界被广泛应用。例如,为了在线上预估时无需使用位置信息,PAL将样本的CTR建模为ProbSeen乘以pCTR,其中ProbSeen仅使用位置特征建模,而pCTR使用其他信息建模,在线上只使用pCTR作为CTR预估值。

但是,这种方法有两个缺点:

  1. 训练和预估之间位置信息的不同处理方法,导致线下线上间的不一致问题。

  2. "用户是否查看item只和item的位置有关"(PAL中的假设)。这个假设对问题过于简化了。事实是,不同的用户通常具有不同的浏览习惯:有些用户可能倾向于浏览更多item,而有些用户通常能快速做出决定;而且同一个用户在不同的上下文搜索意图中也会有不同的位置偏好,例如商场等地点词的搜索往往意图不明确导致高低位置的CTR差异并不大。故而,位置偏差与「用户」「上下文」都有关,甚至可能与「广告」本身也有关,建模它们间的关系能更好地解决位置偏差问题。

美团提出的深度位置交叉网络能够较好的解决这个问题:

  • 论文:Deep Position-wise Interaction Network for CTR Prediction

  • 地址:https://arxiv.org/pdf/2106.05482.pdf

1. 深度位置交叉网络(Deep Position-wise Interaction Network)

DPIN模型由三个模块组成:

  • 处理 J 个候选广告的基础模块(Base Module)

  • 处理 K 个候选位置的深度位置交叉模块(Deep Position-wise Interaction Module)

  • 组合 J 个广告和 K 个位置的位置组合模块(Position-wise Combination Module)

不同模块需预估的样本数量不一样,复杂模块预估的样本数量少,简单模块预估的样本数量多。通过这三个模块的组合,DPIN模型可以预估「每个广告在每个位置上」的CTR:是第 j 个广告在第 k 个位置的CTR预估值,广告的最终序可以通过最大化来确定,其中为广告的出价。

1.1 基础模块(Base Module)

得到所有 个广告的embedding,使用简单的Embedding+MLP结构:

06abbfe9d0eacf31f3551f2cfd71f41b.png

32e7b7203a88dc3468d9b7c22608320f.png

分别是当前用户特征集合、当前上下文特征集合以及第 j 个广告的特征集合。最终得到所有 个广告在「当前用户、当前上下文」中的embedding表示。

1.2 深度位置交叉模块(Deep Position-wise Interaction Module)

在上面这一步,我们已经完成了所有广告与user特征和context特征的交叉;我们还需要完成所有的 个广告与所有 个位置的交叉。如果直接把位置特征放在Base Module中,就要完成 次计算。而在大多数业务场景中,Base Module通常已经被高度优化,包含了大量特征甚至用户_序列_等信息,所以这样做复杂度太高了。因此,我们需要一个深度位置交叉模块,来专门「建模不同位置信息」

为了得到不同位置在当前context、当前user下的embedding,使用了context 特征和用户在第 k 个位置的历史行为序列:,其中为用户在第 个位置上的历史第 个行为记录,为点击的item特征,为发生该行为时的context特征(包括搜索关键词、请求地理位置、一周中的第几天、一天中的第几个小时等)。这些行为序列和当前上下文 context 去计算注意力权重,对于与上下文越相关的行为可以给予越多的权重。

15a05137cbc0254f98b59ee0155d3e66.png

为了获得用户在_其他位置_上的行为序列信息,采用「Transformer」去学习不同位置兴趣的交互,最后得到K个输出,其中第 k 个位置被表示为。

b48e3d4606d9b2d39c3afc8a7a48d217.png

1.3 位置组合模块(Position-wise Combination Module)

位置组合模块的目的是去组合 J 个广告和 K 个位置来预估「每个广告在每个位置上的CTR.」 把Base Module输出的J个广告embedding(包含了user,context特征交叉)和深度位置交叉模块输出的K个位置embedding(包含user,context特征交叉)输出到一个MLP中,得到J * K大小的预估矩阵。

整个模型可以使用真实位置通过批量梯度下降法进行训练,采用交叉熵作为损失函数。

2.实验

  • DIN:没有做position bias的消除

  • DIN+PosInWide:在网络的Wide部分加入位置特征进行训练,在测试时位置特征取默认值。

  • DIN+PAL:采用PAL框架去建模位置信息。

  • DIN+ActualPosInWide:在网络的Wide部分加入位置特征进行训练,在测试时采用真实位置特征。

  • DIN+Combination:这个方法在DIN的基础上添加了位置组合模块,测试时采用真实位置特征。

  • DPIN-Transformer:在DPIN模型上去除了Transformer结构,来验证Transformer的作用。

  • DPIN:DPIN模型。

  • DPIN+ItemAction:在DPIN的Base Module MLP层前添加深度位置交叉模块,并在位置兴趣聚合和位置非线性交叉中引入候选广告的信息,这个实验是DPIN方法模型性能的理论上界(因为在Base Module和深度位置交叉模块都做了候选item和position的交互),然而服务性能是不可接受的。

f1cb9777fb3a58b0bcebac4c0d97e034.png

A/B测试表明,DPIN在CTR上提高了2.25%,在RPM(每千次展示收入)上提高了2.15%。

一起交流

想和你一起学习进步!『NewBeeNLP』目前已经建立了多个不同方向交流群(机器学习 / 深度学习 / 自然语言处理 / 搜索推荐 / 图网络 / 面试交流 / 等),名额有限,赶紧添加下方微信加入一起讨论交流吧!(注意一定o要备注信息才能通过)

fa968870c8394dbe696fbdb4a98edf88.png

END -

e659d1fd87d4f11bf4a96e9079ffde8e.png

9997b3e6e5f08408f8a3d238f3337ed1.png

聊一聊搜索推荐中的 Position Bias

2021-12-10

ef9ff1b5dd5a5e8b044c2d972877855c.png

字节跳动高伟豪:端到端深度召回算法

2021-12-09

861053de39e1b0174aca8fcfbe1931bf.png

一篇就够!数据增强方法综述

2021-12-08

d4526adba7e4246f08eee438893ab1fa.png

关于逻辑回归,面试官都怎么问

2021-12-06

f4adceb0e06e231a653b4083aaf9b618.png

a1b609d49585a56933713d9b3b0800dd.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值