作者 | Chilia      


整理 | NewBeeNLP

主要就是把位置作为神经网络中的特征/模块,放于网络的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结构:

java实现美团定位最近商家 美团定位技术_机器学习

java实现美团定位最近商家 美团定位技术_python_02

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

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

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

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

java实现美团定位最近商家 美团定位技术_java实现美团定位最近商家_03

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

java实现美团定位最近商家 美团定位技术_java实现美团定位最近商家_04

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的交互),然而服务性能是不可接受的。

java实现美团定位最近商家 美团定位技术_深度学习_05

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