# 如何测量与缓解位置偏差

- 原标题：How to Measure and Mitigate Position Bias
- 类型：博客
- 来源：eugeneyan.com
- 发布时间：2022-04-17
- 首次精选：2026-10-29 23:09
- 分级：值得看
- 学习层级：进阶
- 主题：[business-decision-apps](<https://oplearnx.com/md/topics/business-decision-apps.md>)（第 12 位）、[model-benchmarks](<https://oplearnx.com/md/topics/model-benchmarks.md>)（第 13 位）
- 原文链接：[https://eugeneyan.com//writing/position-bias](<https://eugeneyan.com//writing/position-bias>)
- 本站页面：[https://oplearnx.com/resources/pk\_e1c3b589e623](<https://oplearnx.com/resources/pk_e1c3b589e623>)

## 摘要

这篇博客文章说明位置偏差：排位靠前的物品更容易被看到和点击，与相关性无关，例如 Google 搜索首位点击量约为第十位的 10 倍。文中还讨论了展示偏差、点击首个相关结果后忽略其余等原因，以及偏差通过历史数据自我强化的反馈回路，并给出测量与缓解方式的笔记。适合做推荐系统、关注排序与评估偏差的人阅读。

## 中文精读

### 1. 什么是位置偏差

- 位置偏差指排名靠前的物品更容易被看到、从而更容易被点击，无论它是否真的相关；这也导致排名靠后的物品互动率偏低。
- 在 Google 搜索中，第一位的点击量是第十位的 10 倍；Netflix 的推荐横排也是从左到右浏览。
- 成因有三类：盲目相信算法点击顶部结果；靠后物品曝光本身较少（呈现偏差，presentation bias，如翻到第二页）；点击或播放了第一个相关结果后就忽略其余物品。
- 后果是难以区分用户互动是因内容真相关还是因排名高；用有偏历史数据训练会通过自我强化的反馈回路放大偏差，使更相关但排名低的物品持续低互动、无法提升排名。
- 本节还说明下面介绍的各种测量方法各有取舍：有的更能分离出位置偏差本身，有的在日志数据上更可行。

### 2. 通过随机化测量位置偏差

- 最直接的做法是把（顶部）结果均匀随机打乱（RandN / RandTopN）：同一物品出现在多个位置，互动差异可干净归因于位置偏差；缺点是损害用户体验，成本过高或不可行。
- 另一种是利用物品位置本身的随机性：线上有多个排序器、或排序器频繁更新时，历史数据中就蕴含随机性，无需 RandTopN 这类侵入式干预即可估计位置偏差；但除非规模大、排序器多且更新频繁，否则很难获得这种数据。
- 较弱的形式是多组件（widget）推荐同一物品但位置不同，此时上下文（用户、物品、查询）固定；但组件位置或呈现方式（标题、解释）等噪声会混入。
- 若没有多组件，可用跨上下文的位置差异（如 item-to-item 推荐中同一推荐物品在不同上下文物品下处于不同位置）；但上下文不固定，因相关性随上下文变化而噪声较大。
- 利用固有随机性的最大优点是无用户影响，因为只用日志数据测量。
- 可用期望最大化（expectation maximization）推断位置偏差：位置偏差模型假设物品被点击仅当它被检验且相关，检验只依赖位置、相关性只依赖上下文与物品；Google 在邮件和文件检索搜索日志（多数查询只有一次点击）上用特征而非 ID 表示查询和物品，验证了其有效性。

### 3. 通过随机化测量位置偏差（续）

- 折中做法是加少量随机性：FairPairs 交换第 k 与 k\+1 位，RandPair 交换第 1 与第 k 位；与 RandN 一样保持物品相关性不变，可测出位置带来的互动差异，但 k 较大时 RandPair 会损害体验。
- 借鉴推荐中的意外性（serendipity），给每个物品位置加上从正态分布（如 np.random.normal）随机采样的值，再按总和重排；标准差决定每个物品获得上下浮动 x 位的机会。
- 但给位置加随机不区分原始分数差异：原始分是第二名 10 倍的第一名，与只有 1.1 倍的第一名被同等对待。
- 因此可改为给原始分数加随机：一种是 Boltzmann 探索，先把原始分数归一化/softmax 成概率，再从位置 1 开始按概率采样填充；每个物品按推荐概率获得更高位置的机会，该概率也可用于反事实评估。这类方法先把物品锚定在原位置再加随机，相比 RandTopN 可能减少对用户的负面影响。

### 4. 缓解位置偏差

- 在推荐系统早期、更重探索而非利用时，加入一定随机性是可行做法：多个物品可能出现在同一位置，可记录哪个物品表现更好并据此训练模型。
- 若无法加随机，可用测得或学到的位置偏差对日志数据去偏，例如前述 Google 论文用推断出的位置偏差训练以逆倾向加权精度（inverse propensity weighted precision）为优化目标的模型。
- 另一种方式是在模型中引入位置特征，让模型学习位置如何影响回报；服务时把所有物品的位置特征设为 1 以抵消位置影响，具体参见 Google《Rules of Machine Learning》第 36 条。

### 5. 结语

- 位置偏差的影响随用户体验（UX）而异：大平台上用户通过搜索、推荐、类目页等多种途径自然发现物品、且线上跑多个算法时，单个算法的位置偏差会被其他算法冲淡。
- 若是新平台，或 UX 中大部分物品发现来自单一界面（如外卖 App 的餐厅搜索、社交媒体信息流），作者认为应尽早测量并缓解位置偏差。

### 6. 参考资料与引用

- 列出了 8 篇参考文献，涵盖最少侵入式随机化、点击位置偏差模型实验比较、有偏反馈下的无偏学习排序、个人搜索中的选择偏差、无侵入干预估计位置偏差、位置偏差估计用于无偏学习排序、Boltzmann 探索、推荐系统意外性综述。
- 文中给出引用格式：Yan, Ziyou. \(Apr 2022\). How to Measure and Mitigate Position Bias. eugeneyan.com，并附 BibTeX 条目。
- 致谢中列出 Yang Xinyi 阅读了草稿。

---
来源：LearnMap · 学径（https://oplearnx.com）
