[搜索引擎] Facebook向量召回算法

1. 简介

  • 本文介绍了embedding技术在Facebook搜索的应用。本文主要介绍embedding技术在Facebook搜索召回的应用,简单来说就是将Query, Doc都表示成向量,然后通过计算Query Embedding最近邻Doc Embedding来召回相关文档。召回层使用的技术一般有两种:一种是基于term匹配的倒排索引召回,另外一种就是基于Embedding的召回。 文本Facebook提出的基于Embedding的召回模型,也是一种双塔召回模型,类似DSSM模型结构,本文称之为Unified Embedding模型。Unified Embedding模型在得到Query, Doc embedding的时候,不仅考虑了文本信息,还考虑了上下文信息。
基于Embedding检索系统架构.png

2. 模型结构&Loss

  • Unified Embedding模型结构如下,模型由三部分组成:
    (1)Query Encoder用于得到Query的向量;考虑了额外的上下文信息,比如当前搜索位置,社交属性特征。
    (2)Doc Encoder用于得到Doc的向量;也考虑了额外的上下文信息。
    (3)Similarity Function用于计算Query, Doc embedding相似度;本文选用的cosine相似度。
  • 离线会将Doc的embedding事先计算好存起来,Query的embeding在线计算,然后使用faiss召回最相似的Doc;
  • 本文选用的损失函数是Triplet Loss,输入是一个三元组包括:(Q, D^+, D^-);数学表达式如下,其中m表示margin值,需要自己设定,这个值对结果的影响非常的大。
Triplet损失函数.png

Unified Embedding模型.png

3. 样本选择&Hard negative挖掘

  • 负样本的选择: 本文尝试了两种方法,第一种是随机选择负样本,第二种是将曝光未点击的样本作为负样本。最后发现将曝光未点击作为负样本,导致了非常差的结果。
  • 正样本的选择: 第一种是将点击样本作为正样本,第二种是将曝光样本作为正样本。最后发现效果基本一样。
  • Hard negative样本挖掘:具体这块参考知乎大佬的解释:负样本为王:评Facebook的向量化召回算法

参考论文

参考资料

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 6,971评论 0 4
  • 公元:2019年11月28日19时42分农历:二零一九年 十一月 初三日 戌时干支:己亥乙亥己巳甲戌当月节气:立冬...
    石放阅读 7,229评论 0 2
  • 年纪越大,人的反应就越迟钝,脑子就越不好使,计划稍有变化,就容易手忙脚乱,乱了方寸。 “玩坏了”也是如此,不但会乱...
    玩坏了阅读 2,293评论 2 1
  • 感动 我在你的眼里的样子,就是你的样子。 相互内化 没有绝对的善恶 有因必有果 当你以自己的价值观幸福感去要求其他...
    周粥粥叭阅读 1,728评论 1 5
  • 昨天考过了阿里规范,心里舒坦了好多,敲代码也犹如神助。早早完成工作回家喽
    常亚星阅读 3,153评论 0 1

友情链接更多精彩内容