Embedding-based Retrieval in Facebook Search

Posted 我家大宝最可爱

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Embedding-based Retrieval in Facebook Search相关的知识,希望对你有一定的参考价值。

facebook的社交网络检索与传统的搜索检索的差异是,除了考虑文本,还要考虑搜索者的背景。通用搜索主要考虑的是文本匹配,并没有涉及到个性化。像淘宝,youtube这些其实都是涉及到了用户自身行为的,除了搜索还有推荐,搜推一体。为了个性化搜索,facebook构建了一套统一框架以及基于倒排索引

1. 介绍

搜索引擎帮助用户在海量的信息中进行检索,google和bing开发了各种技术来提高搜索质量。由于语义和意图非常难以表征,因此当前的搜索大多依赖于term匹配方法,也就是关键字匹配。

语义匹配:解决关键词不能完全匹配但是可以满足用户搜索意图所需要的结果

深度学习在语音,机器视觉和自然语言理解中取得了重大的进展。embedding即表征被证明是一种有效的方法。本质上来说embedding是一种将ids的稀疏向量表征为密集向量的方法,也被称为语义嵌入。一旦embedding建立好,就可以作为query和doc的表示,从而可以应用到搜索引擎的各个阶段。

一般来说,搜索引擎分为召回和排序。embedding在这两部分都可以使用,但是通常应用在召回层,因为位于系统的底部,而且也是瓶颈所在。基于embedding的检索通常称为EMR,基于embedding来表征query和doc,然后将检索问题转换为嵌入空间最邻的搜索问题。

召回:以低延时和低计算成本来检索一组相关的文档,称为recall
排序:以更复杂的算法和模型在顶部对最想要的文档进行排名,称为rank

EBR在搜索引擎中的最大挑战就是数据量巨大的问题,召回层需要处理数十亿或者万亿的文档。而且搜索引擎通常需要将基于embedding和term匹配的检索结合在一起,在检索层对文档进行评分。

为了解决这个问题,facebook提出了统一嵌入,这是一个双塔模型,其中一边是搜索请求,包括query,encoder和context,另一边则是doc。训练数据是从搜索日志中挖掘的,并从encode,query和context提取特征。

将embedding和term匹配的方法合并在一起非常简单,但是发现是次优的,

2. 模型

给定一个query,它的目标结果是 T = t 1 , t 2 , . . . t N T=\\t_1,t_2,...t_N\\ T=t1,t2,...tN,模型返回的TopK个结果是 D = d 1 , d 2 , . . . d K D=\\d_1,d_2,...d_K\\ D=d1,d2,...dK,模型想要最大化
r e c a l l @ K = ∑ i = 1 K d i ∈ T N recall@K=\\frac\\sum_i=1^Kd_i \\in TN recall@K=Ni=1KdiT

目标结果 T T T是基于某些条件与query相关的doc,例如用户点击的结果,或者是基于人类评级的文档。将召回优化的问题定义为基于query和doc之间计算距离的排名问题。query和doc都通过编码器转换为向量,使用余弦值作为距离度量,损失函数使用triple loss。
对于facebook来说,检索不仅需要考虑文本的内容,而且还需要考虑搜索者的信息以及搜索的上下文,以此来满足用户的个性化。以搜人为例,虽然Facebook有数千个名为小王的用户,但是用户的搜索目标通常是他们的熟人。

2.1 评价指标

线上AB测试,离线是平均recall@K

query目标文档个数召回结果中有几个在目标文档中
q 1 q_1 q1 n 1 n_1 n1 m 1 m_1 m1
q 2 q_2 q2 n 2 n_2 n2 m 2 m_2 m2
q k q_k qk n k n_k nk m k m_k mk

r e c a l l @ K = m 1 + m 2 + . . . + m k n 1 + n 2 + . . . + n k recall@K=\\fracm_1+m_2+...+m_kn_1+n_2+...+n_k recall@K=n1+n2+...+nkm1+m2+...+mk

2.2 损失函数

给定一个三元组 ( q i , d + i , d − i ) (q^i,d^i_+,d^i_-) (qi,d+i,di),其中 q i q^i qi是query, d + i d^i_+ d+i d − i d^i_- di分别是正样本和负样本。loss定义为
L = ∑ i = 1 N max ( 0 , D ( q i , d + i ) − D ( q i , d − i ) + m ) L=\\sum_i=1^N\\textmax(0,D(q^i,d^i_+)-D(q^i,d^i_-)+m) L=i=1Nmax(0,D(qi,d+i)D(qi,di)+m)

其中 D ( u , v ) D(u,v) D(u,v)两个向量的距离度量,距离越近说明向量越接近也就是越匹配。我们的期望是 q i q^i qi与正样本 d + i d^i_+ d+i距离越小越好,与负样本 d − i d^i_- di的距离越大越好,也就是说两个距离之间的差值越大越好。用下面这个表来说明,假设m是5

query正样本负样本距离loss
q q q d + 1 = 100 d^1_+=100 d+1=100 d − 1 = 90 d^1_-=90 d1=9010 m a x ( 0 , 10 + 5 ) = 15 max(0,10+5)=15 max(0,10+5)=15
q q q d + 1 = 8 d^1_+=8 d+1=8 d − 1 = 1 d^1_-=1 d1=12 m a x ( 0 , 2 + 5 ) = 7 max(0,2+5)=7 max(0,2+5)=7
q q q d + 1 = 9.9 d^1_+=9.9 d+1=9.9 d − 1 = 9.9 d^1_-=9.9 d1=9.90 m a x ( 0 , 0 + 5 ) = 5 max(0,0+5)=5 max(0,0+5)=5
q q q d + 1 = 80 d^1_+=80 d以上是关于Embedding-based Retrieval in Facebook Search的主要内容,如果未能解决你的问题,请参考以下文章

ICLR 2021 | Autoregressive Entity Retrieval

Information Retrieval 倒排索引 学习笔记

Image Retrieval Using Customized Bag of Features

Deep Learning for Information Retrieval

UT-Austin大学在Image search and large-scale retrieval方面的一系列papers

Public Key Retrieval is not allowed

(c)2006-2024 SYSTEM All Rights Reserved IT常识