文章链接

https://www.kdd.org/kdd2016/papers/files/adf0361-yinA.pdf

  • abstract

点击特征在长尾query上的稀疏性问题

  基础相关性三大技术:排序函数,语义匹配特征,query改写

  • introduction

  问题:

  1)直接文本匹配的问题:query和doc的语义差异,query中的‘how much’如何匹配doc中的‘price’;

  2)大量的长尾query使得点击模型失效;

  3)用户视搜索引擎为智能问答系统,希望一键找到答案。

综合相关性:

时效性query:‘safest cars’

地域性query:‘walmart’,‘restaurant’

本文重点:

1)排序函数设计:learning to rank,考虑上下文的rerank

2)三种语义匹配特征,将头部query的点击特征迁移至长尾query:点击相似度(click similarity),深度语义匹配(deep semantic matching),转译文本匹配(translated text matching)

3)query改写:针对长尾query

4)时效性,地域性排序

  • background

  ——overview of architecture

按doc分片索引,并行召回,打分,去重,基础排序(core ranking)

  ——ranking features

网络拓扑(web graph):通过网页拓扑连接关系决定doc质量或热度。pagerank;与已知优劣网页的距离

doc statistics:网页各域(field)的词数

doc classifier:spam/adult/langrage/main topic/quality/type(navigational,informational)

query features:包含词数;query频次;各词词频(tf);有点比(ctr)

text match:各域文本匹配特征(title, body, abstract, keywords, anchor text, url),可以是计数或更复杂(例如BM25);query各词邻近度(proximity),在doc正文中词之间越近越好

topical matching:主题相似度

click:click,first click,last click,long dwell time click,only click

time:新鲜度(freshness);inlink和outlink的新鲜度

  ——evaluation of search relevance

dcg@1,3,5;置信度:wilcoxon t-test方法给出p-value

三个query集合:高频(top),低频(torso),长尾(tail)。本文重点关注低频和长尾query的效果。

  • machine learned ranking

基础排序(core ranking)使用GBDT model,logistic loss:LogisticRank

使用perfect,excellent,good信息放大梯度信息有更大提升

  ——core ranking

perfect/excellent/good对应scale:3/2/1

LogisticRank >> GBRank, LambdaMart尤其在高频query上

GBRank(混合了pairwise loss和pointwise loss) > LambdaMart(listwise loss,只学习doc的相对顺序)

长尾query上:GBRank接近LogisticRank,LogisticRank在去除bad结果效果明显

在LTR challenge data set上DCG@5:LambdaMart > GBRank > LogisticRank,原因是商用搜索引擎数据中有明显更多的bad query-doc pair

定义基线为‘background’部分所述特征+LogisticRank。

  ——contextual reranking

在少量数十个top results上提取上下文特征:

rank:对url的rank增序排列,实际中使用rank值效果比直接使用core ranking的分数好,因为索引更新时分数会漂移

mean:top30 url的特征值均值

variance:top30 url的特征值方差

normalized feature:使用均值和方差将特征归一化

topic model feature:聚合top30 url的主题向量作为query的主题向量,分别算query-url的主题相似度

rerank的目的在于区分perfect/excellent/good,core ranking目的在于去除bad results

  ——implementation and deployment

core ranking部署在index节点上,rerank在汇集节点上

  • semantic matching features

长尾query上有点击稀疏性问题,相关doc的锚文本也稀少,另外有query-doc在词汇上的不匹配(比如‘how much’和‘price’),所以从点击日志中提取三种重要的语义匹配特征:点击相似度(click similarity),深度语义匹配(deep semantic matching),转译文本匹配(translated text matching)

  ——click similarity,CS

VSM具有词汇不匹配的问题。因此从点击二部图(bipartite click graph)中提取query和doc的向量表示,都使用query的词典为各维度含义。具体方法:

使用点击数作为点击二部图中边的权重,提取doc的co-click query作为doc的表示,参考query的co-click doc向量表示将doc vector中的terms传递给query,轮流迭代。

每轮迭代只保留top-k个term,在数轮迭代后qv(query vector)和dv(doc vector)可收敛。

用qv和dv的內积作为click similarity。

每月更新,qv保存在汇集节点,dv保存在正排索引中。

  ——translated text matching,TTM

click similarity不能计算点击日志之外的query和doc。统计机器翻译(statistical machine translation,SMT)将query和doc互译可作为启发,用户解决词汇差异。

使用clicked query-title pair做一个翻译模型(translation model)。用此模型将q翻译成k个alternate q,在title词典上表示。对于每个alternate q,都和d算一个cosine similarity值,最后将k个值取max/avg/median作为最终query-doc的相似度。

试验取k=10,将k个值max是实测中最好的,即EXT_Q_TLM1特征;另外有一个AGG_Q_TLM特征,使用title LM下的rewritten queries和query LM下的rewritten titles计算。

为了控制延时实际服务中使用cache,对于cache miss的使用裁剪过的translation model进行在线计算

  ——deep semantic matching,DSM

CS和TTM都在word级别,deep model可以提取语义和上下文信息,泛化到低频和长尾query上。

使用DSSM模型。使用一年的数据,用简单规则去除spamming queries,拼session后去掉abandon(即无任何点击)的session。使用10-slot窗口从上往下滑动,first slot作为d+,其余9个是d-。doc的输入特征除了title还要考虑site名称(比如wiki, weather, imdb),按照DSSM的做法,3-letter shingling BOW,将embedding的內积作为特征。

实际部署中,正排中存储预算好的title和site的embedding,在线预估query的embedding,然后算相似度。

  • query rewriting

为了性能,大型搜索引擎会在recall阶段将包含所有query terms的doc预筛选出来。词汇差异导致相关doc不通过筛选。rewriting可用来改善这一问题。

  ——methodology

分两个阶段learning phase和decoding phase。

learning phase,从query-doc中学习phrase级别的翻译:

co-click query-title pairs作为平行语料,按照典型的SMT过程:词对齐(word alignment),phrase提取,phrase打分。由于title长于query,需要控制null-word alignment

decoding phase,为query生成候选:

为每个feature function算出candidate q(即qc)和q的打分,然后对所有feature functions打分加权求和(权重可拍可学),找出分最高的qc作为rewritten query(即qw)。

常用的feature function:

1)learning phase学到的:q的LM分数, word panalty,phrase penalty, distortion

2)query/rewrite query feature functions:词数,停用词数,LM分数,query频次,包含词的平均长度,分别作用在query/rewrite query上

3)pair feature functions:二部图上q和qc共现url的Jaccard similarity,q和qc频次上的差异,词级别q和qc的cosine similarity,q和qc词数上的差异,q和qc共有的词,q和qc在LM分数上的差异,q和qc在停用词数上的差异,q和qc在包含词的平均长度的差异

  ——ranking strategy

将q和qw召回的docs合并,重复的doc取两者的最高分。使用线上搜索效果评估。

  • comprehensive experiments

baseline,+3features,+rewrite

  • recency-sensitive ranking

结合大量无时效性标注数据和少量时效性标注数据训练。用一个分类器判定query-doc pair时效性高低,如果是,训练数据标注增加时效性得分。训练GBDT ranker时先训练相关性,补充更多树学习时效性分数。

  • location-sensitive ranking

【TODO】

  • conclusion

高效、实用,对垂直搜索引擎也合适。

最新文章

  1. Spring—Quartz定时调度CronTrigger时间配置格式的实例
  2. spring boot 自动部署方案
  3. 分布式架构高可用架构篇_06_MySQL源码编译安装(CentOS-6.7+MySQL-5.6)
  4. PowerDesigner 业务处理模型( BPM ) 说明 及Enterprise Architect使用教程
  5. HTML to DOM
  6. WinForm控件选择器
  7. python 面向对象高级编程
  8. centos6.2安装jdk7
  9. 20151216JqueryUI学习笔记---按钮
  10. html系列教程--header head iframe img
  11. UIImageView帧动画相关属性和方法
  12. Oracle 12C 新特性之表分区带 异步全局索引异步维护(一次add、truncate、drop、spilt、merge多个分区)
  13. PHP按值合并数组
  14. Hibernate使用注解进行ORM映射实例
  15. symfony采坑
  16. 学习HTML+JSP(更新中)
  17. C代码通过编译器编译成可执行文件, 需经历 预处理、编译、汇编、链接 四个阶段
  18. thusc2017
  19. sp_change_users_login 'Update_One', '用户名', '登录名';
  20. LVS DR模式搭建 keepalived lvs

热门文章

  1. 理解JSON的语法
  2. ISIS协议
  3. Bulma 源码解析之 .columns 类
  4. linux配置mysql主从复制
  5. Python3中实现简单的购物车程序
  6. C++并发低级接口:std::thread和std::promise
  7. linux 环境下tomcat中部署jfinal项目
  8. Unity 动画系统 Animation和Animator 常用小功能
  9. git commit 操作
  10. Oracle外连接与条件的组合