酒店搜索?我最懂你啦!

2021-05-14 16:54:51 浏览数 (1)

作者:一毛,一品炼丹师

Handling Position Bias For Unbiased Learning To Rank In Hotels Search(ArXiv2020)

01

背景

对给定查询的结果进行排序的模型和隐含的用户反馈(如点击数据)由于其丰富性和低成本而成为数据收集的主要来源,特别是对于大型互联网公司。然而,这种数据收集方法的一个缺点是数据可能有很大的偏差,其中最重要的偏差是位置偏差,用户倾向于点击排名较高的结果。

本文我们探讨在Tripadvisor酒店搜索的在线测试环境中正确处理位置偏差的边际重要性

我们提出了一个经验有效的方法来处理位置偏差,充分利用用户的行动数据。我们利用了这样一个事实:当用户点击一个结果时,他几乎可以肯定地观察到上面的所有结果,并且点击结果下面的结果的倾向性将通过一个简单但有效的位置偏差模型来估计。

在线A/B测试结果表明,该方法改进了搜索排序模型。

02

三种处理position bias的方案

1. 忽略position的影响

这种方法假设用户已经评估了所有的选项(items),对于相对较短的列表(比如Facebook广告推荐)来说是可以接受的.

2. 样本调整处理

只保留用户点击的最后一个结果以及之前的样本。这种方法假设用户从上到下依次查看结果,并在向下滚动和停止时单击第一个相关结果(类似于Cascade模型)。

该方法对于相对较长的list例如Airbnb搜索是非常有效的;但是这种做法是有系统的偏见,这将导致排名模式reverse现有的秩序。

3. 保留训练的所有数据并使用propensities作为权重

在训练数据中保留所有结果,但在损失函数中使用倾向作为权重。与前两种方法相比,该方法通过考虑倾向性来减少训练数据。他们已经证明,这种方法导致了一个无偏损失函数,从而形成了一个无偏模型,并将此框架称为无偏学习排名。

然而,这种方法尚未充分利用用户反馈数据(例如,当用户单击结果时,该用户几乎肯定已评估结果1到结果)。此外,这种方法需要倾向性估计(propensity estimation),这是另一项具有挑战性的任务。

03

propensity估计的工作

1. Position bias model

位置偏差模型(Position bias model)假设点击给定结果的概率是评估结果的概率和点击给定已评估结果的概率的乘积:

p(C=1|Hotel,k) = P(E=1|k) cdot P(R=1|Hotel)

其中表示一个结果是否被点击, 表示一个结果是否被检查, 表示一个结果是否相关,这种模型需要结果随机化实验来降低用户体验,尽管已经花费了很多精力来最小化这种降低效果。

2. 基于回归的EM算法

为了完全消除退化效应,Wang等人提出了一种无结果随机化的方法,从平时的点击中估计位置偏差。该方法采用基于回归的期望最大化(EM)算法同时提取位置偏差和结果相关性。

我们认为,这种方法倾向于根据一个结果与相同位置的其他结果的相关性来分配相关性,可能忽略了这样一个事实,即排名靠前的结果通常比排名靠后的结果更好。

3. 估计点击倾向的方法

后来,Aslanyan等人提出了一种在不干预实时搜索结果的情况下估计点击倾向的方法。这种方法利用了在电子商务搜索中,同一query-document对可能随着时间的推移而自然地改变排名的事实,并使用出现在不同排名的query-document对来估计倾向性。

类似地,Agarwal等人提出了一种无需干预的估算方法,它使用来自不同排名函数的查询文档对。这两种方法都假设一个文档不会随时间发生太大的变化,并且倾向性是基于同一文档在不同位置的CTR来估计的。然而,尽管搜索引擎中的文档是相对静态的,但是酒店的价格是动态的,并且是用户做出点击/预订决策时需要考虑的关键因素之一,这使得酒店搜索很难生成配对。

04

方案

1. position bias处理

考虑一个隐式用户反馈的例子,如下图所示,列表中有五个酒店曝光,用户单击Hotel3。下面是我们将如何处理位置偏差。因为用户点击了Hotel 3,所以对Hotel 3进行了评估,我们假设Hotel 1-2也进行了评估,而Hotel 4-5处于未知的评估状态。因此,在准备训练数据时,将保留1-3家酒店,而4-5家酒店将根据其倾向进行抽样

扩展了经典的位置偏差模型,如公式1所示,当用户点击LastClickPos时,用户已经评估了LastClickPos上面的所有结果。

P(E=1|k le LastClickedPos) = 1

另一方面, 在LastClickedPos之后观测到的结果的propensity可以通过下面的式子计算得到:

p(E=1|k >LastClickedPos) = P(E=1|k, LastClickedPos) = frac{P(E=1|k)}{P(E=1|LastClickedPos)}

该方法依赖于位置propensity 的准确估计。

2. propensity预估

基于结果随机化的倾向性估计降低了用户体验,而现有的基于规则点击的评价方法难以将酒店关联性与倾向性分离。在这项工作中,我们将使用一个简单的基于历史预订数量的相关性分配,这将被证明是足够好的,以评估酒店在某个位置上的平均相关性。根据位置偏差模型,我们有:

P(E=1|k) = frac{E[P(C=1|k)]}{E[P(R=1|Hotel, k)]}

此处,我们令为在位置的历史bookings的个数,我们发现对于在线旅行社(OTAs),历史预订数量是酒店相关性的一个非常强烈的信号,与我们的最终业务目标一致。下图显示了测量的点击曲线 vs 位置)和基于上面的灯饰计算的倾向曲线与位置)。点击曲线证明了用户对点击排名较高的酒店有很大的偏好,而且由于点击曲线比计算出的倾向曲线更陡,这意味着我们的榜单已经将更多相关酒店推到了榜首。

05

实验

1. 实验设置

  • Control:100%采样,;
  • Test1:80%采样,;
  • Test2:propensity采样,,其中,

2. 实验结果

  • 与Control模型相比,propensity抽样模型(测试2)的点击率提高了1.5%(统计显著)。
  • 在80%的恒定采样率(测试1)下,它的点击率比模型高出1.7%(统计显著)。
  • 80%抽样的模型与控制模型相比,结果差不大。

06

小结

虽然在LTR模型的训练中没有一种被广泛接受的处理位置偏差的方法,但是处理这种偏差的重要性不容忽视

在本文中,我们提出了一种简单易用的方法,充分利用用户行为的倾向性抽样,并通过在线实验证明了该方法的有效性。在线测试结果表明,该方法显著提高了系统的性能。与支持更复杂模型的基础设施上的大量投资相比,这种方法需要最少的effort,而不需要更高级别的模型复杂性,但仍然能够显著提高搜索排名。

风里雨里,我们等你!

0 人点赞