计算机系统应用教程网站

网站首页 > 技术文章 正文

推荐系统召回负样本专题 - 负样本的构建艺术

btikc 2024-10-20 04:57:18 技术文章 18 ℃ 0 评论

#推荐系统#


本文将对推荐系统“召回模型负样本”的构造方法作详细介绍。以下内容均基于个人理解,难免谬误和肤浅,如有错漏欢迎指出。在本文所列出的诸多负样本论文中,仅挑选经典或前沿的论文在后续章节着重介绍,比如 2022 年提出的淘宝MOPPR 和 飞猪UMA2算法。



背景

推荐系统通常包含多个环节,粗略可分为召回 -> 排序 -> 重排。不同的环节有不同的职能,召回环节负责从海量物料库中快速筛选用户潜在感兴趣的物料;排序环节负责使用复杂模型对召回物料做精准的个性化推荐;重排环节负责对推荐列表做多样化处理以优化用户体验。物料由此从物料库中层层筛选曝光至用户,用户可选择喜好的物料来完成消费。按照不同环节所筛选的物料集合,物料流向路径为物料库空间 -> 召回空间 -> 曝光空间 -> 点击空间,如下图。



按照“样本应服从总体分布”原则,召回模型的训练样本应与线上分布保持一致。召回模型的职能为从整个物料库中筛选用户喜好的物料。因此其正样本应来源于代表用户喜好的点击空间,负样本应来源于物料库中除点击空间外的其他空间,即上图中曝光未点击 space A + 召回未曝光 space B + 未召回 space C。在此背景下产生各类负样本优化问题,下面将依次介绍。

全局负采样

点击空间相对物料库空间占比很小,space A + space B + space C ≈ 物料库空间。由此业内通常在物料空间中随机采样来作为负样本。但该负采样方式会引入偏差,如流行度偏差、假负样本、类别偏差等。

  • 流行度偏差:负样本的全局随机采样方式决定其为均匀分布,但正样本中通常高热物料占主导。全局负采样下的召回模型比排序模型更容易产生流行度偏差。模型将倾向于将高热物料推送给用户,推荐系统或失去推荐功能。解决并利用流行度偏差的方法详见《推荐系统流行度偏差专题(1)深入理解流行度偏差》,本文不再赘述。
  • 假负样本:随机而来负样本中可能存在用户喜好的假负样本,将齐剔除并利用或能提高模型表现。
    UFNRec: Utilizing False Negative Samples for Sequential Recommendation(2022 OPPO & Tencent)
  • 类别偏差:物料库空间中各类别分布不均,随机采样方式导致负样本中大类别占主导。模型由此过度打压大类别物料,倾向于小类别物料。
    FairNeg:Fairly Adaptive Negative Sampling for Recommendations(2023 www)?

Batch 负采样

batch 内负采样,指从 batch 内除本样本外的其他样本中随机选择物料作为负样本。该采样方法只在 batch 内做文章,与全局负采样相比训练成本更低。与全局采样中负样本均匀分布不同,batch 内样本通常为曝光样本或只为正样本,因此 batch 内负采样可实现对高热物料的打压,但有时打压过度。batch 内负样本中无法包含未曝光的低频物料,会造成模型对低频物料精度较差。针对以上缺点,Batch 负采样的改进方式如下。

Sampling-bias-corrected neural modeling for large corpus item recommendations(2019 Youtube)

MNS:Mixed Negative Sampling for Learning Two-tower Neural Networks in Recommendations(2020 Google)

Hard 负样本

负样本应来源于 space A + space B + space C,其中 |C| >> |B| > |A|,A + B 可能只占物料空间的千分之一。尽管随机负采样有概率采集到 A + B 的物料,但其占比过低,该类型物料被海量 C 物料淹没,由此从训练效果来看 A + B + C ≈ C。但从与正样本相似度而言 C << B < A,若只含有与正样本差异大的 C,将导致模型无法捕捉用户细粒度喜好。以用户喜欢郭德纲相声而不喜欢郭德纲电影为例,用户观看郭德纲相声后可将其作为正样本。但由于负样本来源于物料库随机采样,与正样本八竿子打不着,模型只能模糊参照正样本对物料打分。“郭德纲电影”因与“郭德纲相声”相像也会有高打分值而被推荐给用户,但用户其实并不喜欢。另一方面,随机负样本过于简单,模型分类难度低,AUC 动则 95%+,沿增加拟合能力迭代模型性价比很低。为了能在复杂模型上“讲故事”,需要引入 hard 负样本增加分类难度。

为解决以上问题,挖掘与正样本相像的 hard 负样本一直是业界的热点。一类是利用全链路信息挖掘,即调整 space A + space B 的样本权重以增加其影响面。一类使用模型打分挖掘,选择与正样本打分相近但不太相近的的物料作为 hard 负样本。一类使用业务逻辑挖掘,比如在与正样本相同物料类别内随机负采样等。值得注意的是,召回模型的负样本需仍以 C 为主,以保证训练样本与线上分布的一致性。

经典论文:Embedding-based Retrieval in Facebook Search(2020 Facebook)

模型挖掘:ESAM: Discriminative Domain Adaptation with Non-Displayed Items to Improve Long-Tail Performance(2020 阿里)

全链路挖掘:MOPPR:Multi-Objective Personalized Product Retrieval in Taobao Search(2022 taobao)

业务逻辑挖掘:Real-time Personalization using Embeddings for Search Ranking at Airbnb(2018 Airbnb)

动态调整 hard 样本权重:UMA2:Re-weighting Negative Samples for Model-Agnostic Matching(2022 飞猪)

?

本文只站在了工业界实战的角度,对推荐系统召回负样本的构造方法做简单梳理。

参考

  1. 深度好文:百篇论文概览负采样方法的前世今生(综述类文章,推荐阅读)
  2. 负样本为王:评 Facebook 的向量化召回算法
  3. 召回模型中的负样本构造
  4. 涨点利器:推荐系统中对双塔模型的各种改造升级

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表