KDD2016 Industry track best paper
Abstract
相关性是商业搜索引擎的核心问题。
查询和url之间的语义差异是提高基础相关性的主要障碍。
点击有助于提供提示以提高相关性,但不幸的是,对于大多数尾部查询,点击信息过于稀疏、嘈杂或完全丢失。
文中给出了雅虎搜索引擎中相关性解决方案的概述。介绍了基于相关性的三种关键技术:排序方法、语义匹配特征和查询重写。为了增加相关性,时间地点的敏感性对于结果也是很重要的。
1. Introduction
1)搜索相关性的发展:
早期 - 重点关注查询和web文档之间的文本匹配,比如:BM25,概率模型,向量模型;
近期 - 根据用户行为改进搜索相关性,比如:点击模型;
2)现在最新的搜索方法所展现的瓶颈使得我们需要考虑文本匹配和点击模型之外的方法:
- semantic gap 是主要的困难(query: how much tesla -> doc: tesla price)
- 大量的长尾 query 使得无法利用用户行为信息
- 用户会把搜索引擎当作是 Q&A systems,产生越来越多的自然语言的搜索
- 在基础相关性上,相关性还包括时间和空间的维度:
- temporal:一些query需要的是最新的信息;
- spatial:越来越多的query对地点需求强烈(旅馆等);
3)本文提出的解决方案包括:
- 设计了一个全新的 learning to rank 算法和 contextual reranking 算法的框架
- 发展了 semantic matching features,包括 click similarity, deep semantic matching, and translated text matching
- 提出了 query rewriting 和搜索相关算法
- 提出了时空敏感的排序方案
2. Background
2.1 Overview of Architecture
Yahoo search engine 可以很快的完成搜索这是因为:
- 平行的对一个 query 进行多个 servers
- 不断从 a cheaper ranking function 筛选出候选集然后再用更好一点的 ranking function 筛选
采用分治思路,文档通过url计算md5,根据md5进行分布式存储,每个机器视为一个节点,可以并行工作。当发生query查询时,第一轮粗排序,先在每个节点中找到所有匹配该query的文档,这个过程完成文档召回,这里会对文档进行一个简单的打分和去重,返回指定数目的候选文档,同时对这些选定文档进行query相关特征抽取。进入第二轮精排序使用一个核心排序函数(Core Ranking Function)打分,得到最佳的文档。
建立一个核心排名函数,模型性能强烈依赖于分布和标记训练集的样本的数量。获得带标签的样品是非常昂贵和费时的,前人研究表明,主动学习在有限预算条件下获取有信息性和代表性的样本中起着重要作用。
2.2 Ranking Features
这里所说的Ranking Features,是指第二轮rank方法中使用的features。实际搜索引擎使用的feature可以达到几百几千的量级,可以将它们分为以下几个大类:
- Web graph:描述文档的质量和流行程度,例如PageRank
- Document statistics:计算文档的一些基本统计信息,例如各个字段中的单词数
- Document classifier:会用到一系列分类器,判断是否作弊文档,是否色情,文档语言,主题,质量和页面类型
- Query Features: term 数,query频次和其中不同term的词频
- Text match:文本匹配特征,包括词之间的匹配,例如(query-doc.title), (query-doc.url), (query, doc.keywords), (query, doc.abstract)等等。这些特征可以进行组合形成新的特征,例如BM25. 以此判断文档和query的匹配程度
- Topical matching:话题级别的相似度,语义层面的匹配
- Click:利用用户的点击信息,预测包括prob of click, first click, last click, long dwell time click or only click
- Time:跟时间相关的特征
2.3 Evaluation of Search Relevance
有几种方法来评估搜索结果,包括人工标签(例如,专业编辑的判断)和用户满意度指标(例如,点击率,查询重新制定率,停留时间)。通常,用户行为度量是复杂的,因为他们可能会受到其他因素的影响,比如表现(例如字体、粗体、大小、摘要等)和结果的多样性。在本文中,我们关注的是基础相关性,这是最重要的方面的搜索结果。好的、相关的url是影响行为度量的必要基础。
为了评估基础相关性,我们利用专业编辑的判断。编辑人员手动判断每一对查询url,并将其分为五个等级:完美、优秀、良好、一般或较差。然后,我们使用折现累积增益(Discounted Cumulative Gain,DCG)作为衡量搜索相关性性能的指标。DCG已经被广泛用于搜索引擎[15]的上下文中。对于N个文档的排序列表,我们使用以下DCG变体:
D
C
G
N
=
∑
i
=
1
N
G
i
log
2
(
i
+
1
)
\mathrm{DCG}_{N}=\sum_{i=1}^{N} \frac{G_{i}}{\log _{2}(i+1)}
DCGN=i=1∑Nlog2(i+1)Gi
式中,
G
i
G_i
Gi表示分配给第
i
i
i位doc- ument标签的权重,相关性越高,权重值越大。我们使用符号
D
C
G
DCG
DCG来表明该值在一组测试查询上的平均值。
测试集:从一年log里面随机抽取出2000query,按query的频次又可以细分为高频,中频,低频三档。中频query基本上一年就几次点击,低频的话平均一年不到一次用户点击,用户点击信息对低频query基本无效。文章主要对中低频query相关性进行优化。
3. Machine Learning Ranking
在此,我们介绍了一种统一的基于logistic损失的web搜索方法,并通过调整GBDT的梯度将完美、优秀和良好的信息纳入到模型中。对雅虎搜索引擎的在线评估显示,与领先的排名算法相比,该框架将糟糕url的比例降低了40%,在DCG5方面将相关性提升了5%。
3.1 Core Ranking
GBDT作为第二轮排序的打分模型,为了减少bad/fair url,作者选用(logistic loss)损失函数。如果将五档打分中的{perfect, excellent, good}视为正例(positive, +1),{fair, bad}视为负例(negative, -1),得到的损失函数为:
L
(
y
,
F
)
=
log
(
1
+
exp
(
−
y
F
)
)
,
y
∈
{
1
,
−
1
}
L(y, F)=\log (1+\exp (-y F)), \quad y \in\{1,-1\}
L(y,F)=log(1+exp(−yF)),y∈{1,−1}
在训练阶段第m轮的学习目标pseudo-residuals,即梯度为:
−
g
m
(
x
i
)
=
−
[
∂
L
(
y
i
,
F
(
x
i
)
)
∂
F
(
x
i
)
]
F
(
x
)
=
F
m
−
1
(
x
)
=
y
i
/
(
1
+
exp
(
y
i
F
m
−
1
(
x
i
)
)
\begin{aligned} -g_{m}\left(\mathbf{x}_{i}\right) &=-\left[\frac{\partial L\left(y_{i}, F\left(\mathbf{x}_{i}\right)\right)}{\partial F\left(\mathbf{x}_{i}\right)}\right]_{F(\mathbf{x})=F_{m-1}(\mathbf{x})} \\ &=y_{i} /\left(1+\exp \left(y_{i} F_{m-1}\left(\mathbf{x}_{i}\right)\right)\right. \end{aligned}
−gm(xi)=−[∂F(xi)∂L(yi,F(xi))]F(x)=Fm−1(x)=yi/(1+exp(yiFm−1(xi))
Logistic loss在2分类问题中,能有效降低不相关url在排序结果中头部占比,该loss除了用在分类,还能提供较为可靠的排序。和hinge loss不同,它能将positive/negative往positive/negative两个方向拉开,这样的话,如果一个url的相关性是perfect,那么它会距离决策平面远一些。
当然仅有正负二类对于排序而言是不足的,为了刻画{perfec, excellent,good}三种不同的相关性label,作者引入了梯度scale因子,对于不同的label给予不同的梯度scale因子{例如:perfect:3, excellent:2, good:1}。经过调整以后,第m轮的学习目标pseudo-residuals为:
p
s
e
u
d
o
r
e
s
p
o
n
s
e
(
x
)
=
−
g
m
(
x
i
)
×
scale
(
label
)
pseudo_response(x)=-g_{m}\left(\mathbf{x}_{i}\right) \times \text { scale }(\text {label})
pseudoresponse(x)=−gm(xi)× scale (label)
其中:scale(perfect)=3,scale(excellent)=2,scale(good | fair | bad )= 1.这种方法等价于给不同的label样本进行加权,影响每一轮树的构造。scale因子在传统GBDT训练过程中(步骤2.1)发生作用。作者将这种方法命名为LogisticRank。
实验和GBrank还有LambdaMart进行对比。在线上环境LogisticRank比其他两个都好,作者观察实验中LogisticRank主要收益在排除不相关的结果。但在离线的LTR challenge data set中比其他两个都差。
LTR数据与真正的搜索引擎的主要区别在于数据的分布(good,bad比例不同)。由于数据分布的巨大差异,静态LTR数据集的性能与真实的搜索引擎性能不匹配。不幸的是,生成具有编辑标签的静态数据集的成本高得令人生畏,而编辑标签的分布与真正的搜索引擎相同。
下面的实验中模型固定为LogistcalRank,在这个基础上展开其他方面的探索。
3.2 Contextual Reranking
重新排序阶段是在对来自核心排序阶段的结果进行排序、在一台机器上进行聚合并精简到最好的几十个结果(例如30个)之后应用的。
基于给定查询的前几十个结果(如30),我们为特定的现有特征提取以下上下文特征:(1)Rank:根据特征值对url进行升序排序,得到特定url的排名。
(2)均值:计算前30个url特征值的均值。
(3)方差:计算前30个url特征值的方差。
(4)归一化特征:利用均值和标准标准差对特征进行归一化。
(5)主题模型特征:将30个url的主题分布聚合成一个查询主题模型向量,计算每个查询结果的相似度。
在实践中,我们发现使用ranks of the results作为特征比直接使用core-ranking functions’s scores更鲁棒。根据实践结论,尽管模型打分包含更完整的信息,但是这个值很容易发生波动。
3.3 Implementation and deployment
在部署的时候,精排序的模型打分可以并行进行,但重排序只能在一个机器节点中完成,Yahoo在重排序中用了30-50组原始特征。
4. Semantic Matching Features
对于尾部查询,由于稀疏性和噪声,用户行为特征不能很好地发挥作用。与尾部查询相关的文档通常缺乏锚文本。文本匹配特性会受到查询和文档之间词汇表gap的影响。为了克服这些问题,我们引入了三个新颖的特征:点击相似(click similarity)、翻译文本匹配度(translated text matching)、深层语义匹配(deep semantic matching),这三个特征以不同的方式从点击日志中计算出来,并相互补充。
4.1 Click Similarity
从用户的点击记录中,我们可以通过用户的gross judgments提取一个二部图(bipartite click graph)来判断用户的查询和文档。在这个图上开发了一个向量传播框架(vector propagation framework)来学习共享空间中查询和文档的向量表示。
使用query的词表(vocabulary)将query, document表示在同一个向量空间中。query和document之间可以通过点击行为建一个二部图。边上的点击次数越多,表示文档和query越接近。
二部图的边连接了query和相应点击的文档,权重是点击次数。
We extract terms from co-clicked queries to represent documents. Terms that are from more co-clicked queries are likely to be more representative of documents.
通常,共享许多共同点击文档的查询很可能具有类似的意图,这也应该通过查询vec- tors反映出来。因此,我们依次将文档向量中的项传播到它们共同点击的查询中,以便相关查询可以按照需要在这个向量空间中共享高度相似度。
首先构造二部图
G
\mathcal{G}
G:边
V
=
D
∪
Q
\mathcal{V}=\mathcal{D} \cup \mathcal{Q}
V=D∪Q,C是
G
\mathcal{G}
G的邻接矩阵。
Q
V
n
Q V^{n}
QVn是一个
∣
Q
∣
×
V
|\mathcal{Q}| \times V
∣Q∣×V的矩阵,第i列
Q
V
i
n
Q V_{i}^{n}
QVin是在第n次迭代的query向量,V是vocabulary size。同理,
D
V
D V
DV的每一列是一个document向量。
D
V
j
n
=
1
∥
∑
i
=
1
∣
Q
∣
C
i
j
⋅
Q
V
i
n
∣
∣
2
∑
i
=
1
∣
Q
∣
C
i
,
j
⋅
Q
V
i
n
D V_{j}^{n}=\frac{1}{\| \sum_{i=1}^{|Q|} C_{i j} \cdot Q V_{i}^{n}||_{2}} \sum_{i=1}^{|Q|} C_{i, j} \cdot Q V_{i}^{n}
DVjn=∥∑i=1∣Q∣Cij⋅QVin∣∣21i=1∑∣Q∣Ci,j⋅QVin
Q
V
i
n
+
1
=
1
∥
∑
j
∣
D
∣
C
i
,
j
⋅
D
V
j
n
∣
∣
2
∑
j
=
1
∣
D
∣
C
i
,
j
⋅
D
V
j
n
Q V_{i}^{n+1}=\frac{1}{\| \sum_{j}^{|\mathcal{D}|} C_{i, j} \cdot D V_{j}^{n}||_{2}} \sum_{j=1}^{|\mathcal{D}|} C_{i, j} \cdot D V_{j}^{n}
QVin+1=∥∑j∣D∣Ci,j⋅DVjn∣∣21j=1∑∣D∣Ci,j⋅DVjn
其中,
D
V
j
n
D V_{j}^{n}
DVjn使用了l2正则化。
为了优化计算我们只考虑非零的连边,但连边依然数据量很大,我们发现只保留 topK 的 term 来做迭代所得结果精度损失很小。考虑点击相似度之后DCGN有所上升。
在实际中,每个月用新的点击日志进行对 query 和 doc 的向量进行更新。在使用中,query 和 document 的 Click Similarity 作为一个特征应用在排序模型中。
4.2 Translated Text Matching
尽管 click similarity feature 十分高效,但是不能计算从未在 log 中出现的 query 和 doc。统计机器翻译将query翻译到document,通过机器翻译带来一系列特征,称为”Translated Text Matching(TTM,翻译文本匹配度)”。
使用clicked (query, document title) pair,训一个翻译模型,对于任一query我们通过翻译模型得到k 个 document title space 的备用 query
{
q
w
1
,
…
,
q
w
k
}
\left\{q_{w}^{1}, \ldots, q_{w}^{k}\right\}
{qw1,…,qwk}。给定document
d
d
d,我们通过计算
d
d
d的标题和
{
q
w
1
,
…
,
q
w
k
}
\left\{q_{w}^{1}, \ldots, q_{w}^{k}\right\}
{qw1,…,qwk}中每一个query的相似度得到
{
s
1
,
s
2
,
…
,
s
k
}
\left\{s_{1}, s_{2}, \ldots, s_{k}\right\}
{s1,s2,…,sk}。最终的相似度打分函数为
S
(
q
,
d
)
=
F
(
{
s
1
,
s
2
,
…
,
s
k
}
)
S(q, d)=F\left(\left\{s_{1}, s_{2}, \ldots, s_{k}\right\}\right)
S(q,d)=F({s1,s2,…,sk})。F表示一组函数,例如:max, average, median等等操作。 特征生成如下图。
实际中我们取k = 10,F为取max,计算query to doc 和 doc to query 的翻译结果,计算余弦相似度。取前10个改写后的query,尝试了多种特征组合,最成功的特征为 EXT_Q_TLM_1,把改写后query与document标题的最大相似度作为特征,其中重写的查询使用翻译模型和基于文档标题的语言模型获得。AGG_Q_TLM是改写的query和the set of the 10 rewritten titles (of the document)之间的余弦相似度,rewritten queries (of the original query)由title LM获得,the set of the 10 rewritten titles (of the document) 由query LM获得。在特征重要性评估中,EXT_Q_TLM_1,AGG_Q_TLM分列第7和第10。
4.3 Deep Semantic Matching
CS特征和TTM部分解决了中长尾query的文本和用户行为信息不足,CS用来平滑点击信息并去除噪音点击,而TTM是query改写的一个应用。
CS和TTM这两种方法都停留在单词层面上。为了进一步提高排名结果,我们需要深入理解语义信息及其背后的用户意图。深度学习技术可以帮助从查询中提取语义和文本信息,然后将这些信息推广到torso和tail查询中。
躯干和尾部查询的稀少主要是由于拼写错误,同义词,缩写,长或描述性查询。一般来说,尾部查询往往比顶部查询长得多。例如,尾部查询平均有4到5个单词。较长的查询很难与网页的标题或内容相匹配。但是,相对于只有一个或两个单词的简短查询,它可能包含更多的语义信息。
我们采用遵循DSSM前馈神经网络作为我们的排序模型。我们的网络结构如图3所示。输入查询Q及其候选documents集合
D
±
D_±
D±,使用嵌入向量
V
Q
V_Q
VQ和
V
D
±
V_{D_±}
VD±计算点击文档
D
+
D_+
D+的似然函数,由以下softmax给出:
L
(
D
+
∣
Q
)
=
exp
(
−
cos
(
V
Q
,
V
D
+
)
)
∑
D
±
exp
(
−
cos
(
V
Q
,
V
D
±
)
)
L\left(D_{+} \mid Q\right)=\frac{\exp \left(-\cos \left(V_{Q}, V_{D_{+}}\right)\right)}{\sum_{D_{\pm}} \exp \left(-\cos \left(V_{Q}, V_{D_{\pm}}\right)\right)}
L(D+∣Q)=∑D±exp(−cos(VQ,VD±))exp(−cos(VQ,VD+))
用1年的数据,筛选出页面展现超过100的数据,训练样本则通过在有序结果列表中以10-窗口滑动的方式产生,第1个为正例,后续9个样本为负例,最后得到30亿query-10-document样本。input为 query, document的标题和主域(例如:wiki, weather, imdb等)。模型使用tri-letter词表,每一个样本表达为tri-letter的组合,具体细节看DSSM的参考文献[13](按:模型图中对中间两层做了抽象,实际上并非公用两个隐含层,也并非同时输入正负例)。
DSM带来1.69%的DCG5收益。在高中低频query中都有收益。这维特征在全部特征中重要性处于第7位。
5. Query Rewriting
在前面的章节中,语义匹配特征试图以一种soft的方式解决web文档和查询经常使用不同的语言风格和词汇这个问题,主要关注于提高精度。然而,在商业网络规模的搜索引擎中,为了提高效率,在将查询- url对输入到排名函数之前,需要执行一些步骤,如过滤、预选。例如,通常只有包含所有查询术语的url才允许通过预选阶段。这会导致召回问题。改写的目的是为了扩大召回。
5.1 Methodology
Query改写(Query Rewrite, QRW)可以看成一种机器翻译(MT)问题,它将用户查询的源语言翻译成web文档的target语言。该框架包括两个阶段(1)学习从查询到文档的短语级翻译;和(2)为给定查询生成候选的译码阶段。
The Learning Phase: 改写的语料不太适合人工标注,其一,翻译语料需要大量的训练数据。其二,人工选择候选query的效率较低。一般文章标题相对较短、富含信息,而且与 query 更相似。这里采用点击行为收集语料,用户query和用户点击document的标题title。在query-title中,进行对齐、对齐片段抽取、片段打分。title经常大于query的长度,这里引入null空串,过滤错误的对齐。
The Decoding Phase: 给定 query,用若干种方法分词,每个分词都有若干个翻译,导致有上百个 query 的改写。解码阶段需要找到最合适的候选
q
w
q_w
qw。定义每个候选
q
c
q_c
qc通过特征的线性组合得到。那么解码问题可以表述如下:
q
w
=
arg
max
q
c
∑
i
=
1
m
λ
i
h
i
(
q
c
,
q
)
q_{w}=\underset{q_{c}}{\arg \max } \sum_{i=1}^{m} \lambda_{i} h_{i}\left(q_{c}, q\right)
qw=qcargmaxi=1∑mλihi(qc,q)
其中
h
i
(
q
c
,
q
)
h_i(q_c,q)
hi(qc,q),为第
i
i
i个特征函数,
λ
i
λ_i
λi是权重,通过loss函数学习得到。
对于每一对 ( q c , q ) (q_c, q) (qc,q),我们可以构建三组特征函数:
- Query feature functions:query中词数目,停用词数目,语言模型打分,query频次,词的平均长度
- Rewrite query feature functions:改写后query中词数目,停用词数目,语言模型打分,query频次,词的平均长度
- Pair feature functions:
h
11
h_{11}
h11:在query-url连接图中
q
q
q和
q
c
q_c
qc的jaccard相似度。
h
12
h_{12}
h12:原始query
q
q
q与改写后
q
c
q_c
qc的频次的差、
h
13
h_{13}
h13:二者词级别的cos相似度、不相同的词个数、相同词的个数、语言模型打分的差,停用词数目的差、平均词长度的差。还有
h
14
h_{14}
h14-
h
18
h_{18}
h18,略。
通过定义 loss function 学习和调整 l a m b d a i lambda_i lambdai,我们的经验表明,实践中前三个是最有影响的特征。
5.2 Ranking Strategy
query改写很难通过人工标记来训练和评估。直接替换,经验表明很有风险,因为很差的改写将会严重影响检索结果的相关性。我们的方法是对原始
q
q
q和改写得到的
q
w
q_w
qw,各自召回top-N结果,进行归并,归并时遇到相同的url将保留打分高的分值。将最后的结果中选择top-N作为原始query的候选url返回。
在生产环境中,为了保证速度,我们在 cache 中保留最常见的 100 million queries 的 rewrites,来保证速度。
6. Comprehensive experiments
前面单独介绍很多特征,实践中经常有特征是有相关性的,效果不会简单线性累加,需要综合特征进行考察。四个实验组为:
- “base”:仅LogistcRank
- “GBrank”:为传统的GBDT用于排序。
- “base+feat”: LogistcRank+语意特征(CS, TTM, DSM)。
- “base+all”: LogistcRank+语意特征(CS, TTM, DSM)+改写
从效果上看,”base+feat”效果在DCG1、DCG3、DCG5三点上都优于”base”。语义匹配三个特征其综合效果高于各自单独的实验效果,证明这三种相互之间是有补充效果的。
7. Recency-sensitive Ranking
为了联合优化对时间序列敏感的查询排序结果的相关性和新鲜度,我们定义了一个称为recency-demoted relevance的度量来整合相关性和近因得分。具体来说,对于每个文档,我们用五个级别的标签来描述其近代性:“非常新鲜(VF)”、“新鲜(F)”、“略微过时(SO)”、“过时(S)”和“非时间敏感(NT)”,并调整其相关性如下:
如表所示,如果文档是非常新鲜、新鲜或时间不敏感的文档,则保留或提高它的相关性评分,如果它稍微过时或过时,则降低它的评分。我们的目标是优化基于调整后的相关性评分定义的DCG度量,即周期降级的DCG。
要进行时效性的排序,需要有这部分训练数据,在这份数据上,作者单独训练了一个时效性的打分函数(LogisticRank),记为
r
f
r
e
s
h
(
x
)
r_{fresh}(x)
rfresh(x)。此外引入时间敏感分类器的结果
c
t
s
c_{ts}
cts,新增的两个打分以如下方式结合:我们通过学习一个可添加的fresh组件来根据新鲜度调整文档评分,从而在基础关联排序器的基础上创建周期敏感排序器。其中
c
t
s
c_{ts}
cts是利用 recency dataset 训练的一个二分类器,区分 doc 是否与时效有关,如果有关的话再计算 doc 的时效分。
f
(
x
)
=
{
f
relative
(
x
)
+
r
fresh
(
x
)
if
c
ts
(
x
)
>
0
f
relative
(
x
)
elsewise.
f(x)=\left\{\begin{array}{cc} f_{\text {relative}}(x)+r_{\text {fresh}}(x) & \text {if } c_{\text {ts}}(x)>0 \\ f_{\text {relative}}(x) & \text {elsewise.} \end{array}\right.
f(x)={frelative(x)+rfresh(x)frelative(x)if cts(x)>0elsewise.
当
c
t
s
c_{ts}
cts显示query是有时效性需求的时候才加上时效性打分函数的结果,以最后的分数进行排序。
实验是在500个有时效性需求的query上进行。
8. Location-sensitive Ranking
我们将这种与位置密切相关的查询称为位置敏感查询。具有特定位置名称的查询(如“restaurants Boston”)被称为显式本地查询,而没有位置但具有位置敏感意图的查询(如“restaurants”)被称为隐式本地查询。
为了提高对位置敏感的查询的排名,一种直接的方法是将查询和URL之间的距离d(QUERY, URL)作为一个额外的特征来处理[3,5]。然而,通常文本匹配特性[29]和基于点击的特性[17]占据了学习-排名模式的主导地位,因此由于其覆盖范围,距离特性很可能被埋没。为了解决这一问题,我们提出了一种新的位置提升排序模型来改进位置敏感查询的排序。
为了计算空间位置相关性,需要在query-document两端进行地理位置信息抽取。首先从用户的query中抽取出显示地址,或者用用户所在地址代替隐式地址。而网页的地址则可以通过query-url 点击图,进行抽取,给定一个url,从其连接的query中可以得到地址,通过query地址描述url的位置信息。此外还有从url中之间挖掘的位置地理信息。
和时效性满足区别在于作者设定如果有地理位置需求,且相关性好,才能对排序结果产生影响,这一要求会体现在loss函数上。引入
d
(
Q
U
E
R
Y
,
U
R
L
)
d(QUERY, URL)
d(QUERY,URL)描述query-url的地理位置匹配程度,归一化到[0, 1]区间,记为
d
^
(
Q
U
E
R
Y
,
U
R
L
)
\hat d(QUERY, URL)
d^(QUERY,URL),值越大,表示地理位置相关性越强,当
d
(
Q
U
E
R
Y
,
U
R
L
)
=
0
d(QUERY, URL)=0
d(QUERY,URL)=0,则
d
^
(
Q
U
E
R
Y
,
U
R
L
)
=
1
\hat d(QUERY, URL)=1
d^(QUERY,URL)=1。
f
(
x
)
=
f
b
(
x
)
+
w
1
1
+
e
α
f
b
(
x
)
+
β
d
^
(
QUERY
,
URL
)
f(\mathbf{x})=f_{b}(\mathbf{x})+w \frac{1}{1+e^{\alpha f_{b}(\mathbf{x})+\beta}} \hat{d}(\text { QUERY }, \text { URL })
f(x)=fb(x)+w1+eαfb(x)+β1d^( QUERY , URL )
参数
w
w
w,
α
\alpha
α,
β
\beta
β训练得到,训练的目标为
min
∑
(
p
i
,
p
j
)
∈
P
max
(
0
,
1
−
f
(
x
i
)
+
f
(
x
j
)
)
2
\min \sum_{\left(p_{i}, p_{j}\right) \in P} \max \left(0,1-f\left(x_{i}\right)+f\left(x_{j}\right)\right)^{2}
min(pi,pj)∈P∑max(0,1−f(xi)+f(xj))2
pair-wise训练,其中
P
=
{
(
p
i
,
p
j
)
∣
p
i
≻
p
j
}
P=\left\{\left(p_{i}, p_{j}\right) \mid p_{i} \succ p_{j}\right\}
P={(pi,pj)∣pi≻pj}为一个query下的偏序关系的url-pair。
p
i
>
p
j
p_i>p_j
pi>pj表示给定query下
p
i
p_i
pi比
p
j
p_j
pj结果更好,使用随机梯度下降(SGD)可以解之。
9. Conclusion
本文介绍了雅虎搜索的综合相关性算法。提出的解决方案是有效的,实际的,并已部署和大规模测试在雅虎的商业搜索引擎。所提出的解决方案不仅局限于网络搜索的相关性,还可以用于垂直搜索引擎,如商店、新闻、本地搜索等。我们希望这项工作能够为整个学术界和工业界提供有用的见解。
参考网址:
[笔记]Ranking Relevance in Yahoo Search(非常好)
《Ranking Relevance in Yahoo Search》(上)(也挺好)
【阅读笔记】Ranking Relevance in Yahoo Search