1. 程式人生 > >【閱讀筆記】Ranking Relevance in Yahoo Search

【閱讀筆記】Ranking Relevance in Yahoo Search

Ranking Relevance in Yahoo Search

Yahoo! Inc
KDD2016 Industry track best paper

ABSTRACT

queries 和 URLs 之間的 semantic gap 是搜尋的主要屏障。點選行為可以幫助我們提高相關性,但是對於大部分長尾 query,點選行為過於稀疏,而且噪聲過大。為了增加相關性,時間地點的敏感性對於結果也是很重要的。
本文介紹搜尋中的三點關鍵技術

  • ranking functions,
  • semantic matching features
  • query rewriting。

Keywords: learning to rank; query rewriting; semantic matching; deep learning

INTRODUCTION

搜尋排名早期的工作主要集中在 queries 和 documents 的 text matching,例如 BM25,probabilistic retrieval model,vector space model。
後來結合使用者行為搜尋結果的相關性進一步提高,例如 click modeling。

現在 state of the art 的搜尋方法所展現的瓶頸使得我們需要考慮 text matching 和 click modeling 之外的方法:

  • semantic gap 是主要的困難(query: how much tesla -> doc: tesla price)
  • 大量的長尾 query 使得無法利用使用者行為資訊
  • 使用者會把搜尋引擎當作是 Q&A systems,產生越來越多的自然語言的搜尋
  • 需要考慮時空維度的資訊,例如:最安全的汽車(當然是如今最安全的汽車),沃爾瑪(附近的)

本文主要的貢獻是:

  • 設計了一個全新的 learning to rank 演算法和 contextual reranking 演算法
  • 發展了 semantic matching features,包括 click similarity, deep semantic matching, and translated text matching
  • 提出了 query rewriting 和搜尋相關演算法
  • 提出了時空敏感的排序方案

BACKGROUND

Overview of Architecture

Yahoo search engine 可以很快的完成搜尋這是因為:

  • 平行的對一個 query 進行多個 servers
  • 不斷從 a cheaper ranking function 篩選出候選集然後再用更好一點的 ranking function 篩選

資料集被分為等大小的分片(根據 URL 的 MD5 分配),索引伺服器提供接下來的服務。 每個查詢由先由分片處理,每個分片返回其最佳候選文件。 然後將它們合併並重新排列以生成最終結果集。
在一個分片中,第一步是查詢與查詢匹配的所有文件,這稱為召回(通常對每個查詢詞的文件集取交集以獲取包含所有詞的文件集)。 然後對這些文件進行第一輪排序,對每個文件用輕量級函式進行評分。 然後對分片強制執行簡單的多樣性約束,例如限制來自單個主機或域的文件數量。 然後,從排名靠前的候選者中提取查詢相關特徵,然後使用更 expensive 的第二輪函式對其進行排序,也稱為 Core Ranking Function。

Ranking Features

  • Web graph:描述文件的質量和流行程度,例如PageRank
  • Document statistics:計算文件的一些基本統計資訊,例如各個欄位中的單詞數
  • Document classifier:文件的分類資訊,例如頁面的語種,主題,質量等
  • Query Features: term 數,query 和 term 的頻率和點選率
  • Text match:文字匹配特徵,例如:BM25
  • Topical matching:話題級別的相似度
  • Click:使用者點選結果的 feedback
  • Time:跟時間相關的特徵

Evaluation of Search Relevance

評價搜尋的相關性分為 human labeling 和 user behavioral metrics。一般用 user behavioral 來評價搜尋相關性會更復雜一點,因為可能受到字型,位置等的影響。本文采用 human labeling 的方式進行評價,採用的指標是 DCG : D C G N = I = 1 N G i l o g 2 ( i + 1 ) DCG_N=\sum_{I=1}^N\frac{G_i}{log_2(i+1)} G i G_i 表示位置 i i 上的文件的相關性評分。

根據 query 的出現頻率,我們可以把 query 分為頭部,腰部和尾部。本文主要關注腰部和尾部的 query。

MACHINE LEARNED RANKING

搜尋可以被當作二分類問題。 在實驗中,我們觀察到具有 logistic loss 的 GBDT 通常能夠減少頂部位置的不好 URL。但是它不能完美的對 URLs 進行排序。

Core Ranking

We first flat the labels “Perfect”, “Excellent” and “Good” to “Positive” (+1) and “Fair”, “Bad” to “Negative” (-1). The log likelihood (loss) is
L ( y , F ) = l o g ( 1 + e x p ( y F ) ) , y { 1 , 1 } L(y, F) = log(1 + exp(yF)), y\in \{1, 1\}

Then the pseudo-response of stage m m is
g m ( x i ) = [ L ( y i , F ( x i ) ) F ( x i ) ] F ( x ) = F m 1 ( x ) = y i 1 + e x p ( y i F m 1 ( x i ) ) -g_m(x_i)=-[\frac{\partial L(y_i, F(x_i))}{\partial F(x_i)}]_{F(x)=F_{m-1}(x)}=\frac{y_i}{1 + exp(y_iF_{m-1}(x_i))}

迴歸的結果不但可以判斷 doc 是否相關,而且可以給出合理的排序。但是一個簡單的二分類器不足以很好的進行排序,需要把 “Perfect”, “Excellent” and “Good” back to the model。因此我們引入 gradient scale for GBDT。The pseudo-response of stage m will become:
p s e u d o r e s p o n s e ( x ) = g m ( x i ) × s c a l e ( l a b e l ) pseudo_response(x) = g_m(x_i)\times scale(label)

根據經驗,我們設定 s c a l e ( P e r f e c t ) = 3 , s c a l e ( E x c e l l e n t ) = 2 a n d s c a l e ( G o o d / F a i r / B a d ) = 1 scale(Perfect)=3, scale(Excellent)=2 and scale(Good/F air/Bad)=1
命名我們的演算法為 LogisticRank,總體而言,要比其他演算法效果好。
在這裡插入圖片描述

Contextual Reranking

Core ranking 只考慮了 query-URL pair features, 忽略了上下文資訊。實際的原因即使使用簡單的特徵對於大規模的 doc 速度也會很慢。
因此我們只重新排序第一輪結果的前幾十個結果,例如前 30 個。對於這些結果,我們提取他們的上下文特徵:

  • Rank: 通過特徵值降序對 URL 進行排序
  • Mean: 計算前30個 URL 特徵的平均值
  • Variance: 計算前30個 URL 特徵的方差
  • Normalized feature: 用均值和方差對特徵進行歸一化
  • Topic model feature: 聚合這30個 URL 的主題分佈以建立查詢主題模型向量,並計算與每個單獨結果的相似性

除了上下文特徵之外,Reranking 的另一個優點是該階段的訓練資料不太容易出現樣本選擇偏差,因為已經進行了第一輪的篩選。在實踐中,我們發現使用 Core Ranking 結果的排名作為特徵比直接使Core Ranking 的分數結果更加健壯。儘管得分比排名資訊量更大,但分數會隨著排序重新整理而漂移,從而降低第三階段的表現。由於 Reranking 在前30個結果上執行,其主要目的是進一步區分相關結果(“Perfect”, “Excellent”, “Good”),而不是識別和刪除不良結果。影響如表2所示。我們看到通過重新排名可以顯著且持續地改善整體效能。

Implementation and deployment

在每個節點上平行計算,返回 topk 個結果然後排序,在進行 Reranking。

SEMANTIC MATCHING FEATURES

對於長尾的 query,由於過於稀疏和充滿噪聲,user behavior features 將會失效;docs 中也會缺少相應的 anchor text。Text matching features suffer from the vocabulary gap between queries and documents。為了克服這些問題,我們引入三個全新的特徵:click similarity, translated text matching and deep semantic matching。這些特徵是以不同方式從點選日誌計算出來的,並相互補充。

Click Similarity

傳統的 Traditional content-based models(例如 VSM)因為 query 和 doc 之間的詞彙使用不同而產生 gap。從點選日誌我們可以得到 query 和 docs 的二分圖,顯然 query 之間越相似,它們點選的 doc 也越相似。我們通過迭代得到每個 query 和 doc 的向量
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 DV^n_j=\frac{1}{||\sum_{i=1}^{|Q|}C_{i,j}\cdot QV_i^n||_2}\sum_{i=1}^{|Q|}C_{i,j}\cdot QV_i^n

Q V j n = 1 i = 1 D C i , j D V i n 2 i = 1 D C i , j D V i n QV^n_j=\frac{1}{||\sum_{i=1}^{|D|}C_{i,j}\cdot DV_i^n||_2}\sum_{i=1}^{|D|}C_{i,j}\cdot DV_i^n

相關推薦

閱讀筆記Ranking Relevance in Yahoo Search

Ranking Relevance in Yahoo Search Yahoo! Inc KDD2016 Industry track best paper ABSTRACT queries 和 URLs 之間的 semantic gap 是搜尋的主要屏障。點選行為可以幫助我們提

閱讀筆記Real-time Personalization using Embeddings for Search Ranking at Airbnb

Real-time Personalization using Embeddings for Search Ranking at Airbnb Airbnb, Inc KDD2018 ADS Track 的最佳論文 METHODOLOGY Listing Embeddings

閱讀筆記《C程序員 從校園到職場》第二章 學校到職場

-c 是什麽 閱讀 括號 blog 能力 出現 而是 pos 一、代碼規範: 1、變量命名(讓人一眼看它是什麽意思,要做什麽操作),定義並初始化 2、函數命名規範(函數的功能)在主函數之前進行聲明。 在實際項目中,一般不在函數調用者的內部來對被調函數進行聲明,而是將聲明放在

閱讀筆記《C程序員 從校園到職場》第三章 程序的樣式(大括號)

突出 char s 結構體 需要 初始化 detail 處理 思維 https 參考: https://blog.csdn.net/zhouzhaoxiong1227/article/details/22820533 一、.初始化數組變量 在實際的軟件開

閱讀筆記《C程序員 從校園到職場》第六章 配置文件,makefile 文件 (Part 2)

不同 tpc 閱讀 ret ftp 理解 源代碼 exe tst Contents: 1.配置文件(通常以 ini 結尾) 2.makefile文件 (Linux) PS: 這篇文章的內容,不太理解。 一、配置文件 本文以一個實際的小軟件為例,介紹了C語言中配

閱讀筆記Entity Linking 相關

最近搞一些 Entity Linking 相關的事情看了看下 yahoo 的這兩篇工作和開源的(FEL)[https://github.com/yahoo/FEL] Fast and Space-Efficient Entity Linking in Queries ABSTRACT

閱讀筆記Applying Deep Learning To Airbnb Search

Applying Deep Learning To Airbnb Search Airbnb Inc. [email protected] 2018年10月25日 ABSTRACT 最初使用 gradient boosted decision tree model 來做

閱讀筆記Dynamical time series analytics

前幾天去廈門開會(DDAP10),全英文演講加之大家口音都略重,說實話聽演講主要靠看ppt,摘出一篇聽懂的寫篇部落格紀念一下吧。 11.2 Session-A 13:30-18:00 WICC G201 Time Speaker No

閱讀筆記Detection of time delays and directional interactions

前幾天去廈門開會(DDAP10),全英文演講加之大家口音都略重,說實話聽演講主要靠看ppt,摘出一片聽懂的寫篇部落格紀念一下吧。 11.2 Session-A 13:30-18:00 WICC G201 Time Speaker No. Title

論文筆記Reaching agreement in the presence of faults (EIG)

這篇論文在1980年發表,是1982年著名的拜占庭將軍問題論文的前身。作者Leslie Lamport是2013圖靈獎得主,兩篇論文引用次數分別為5000+和2000+。該論文提出的演算法現在被稱為EIG演算法(EIG全稱指數資訊收集),因為訊息的數量是和

閱讀筆記《Panoptic Segmentation》

本文記錄了博主在閱讀《Panoptic Segmentation》一文過程中記錄的筆記。更新於2018.12.27。 文章目錄 Useful links Introduction Related Work Panoptic Segmentati

閱讀筆記移動APP測試實戰--第一章

1.簡述了一個產品研發的流程以及各個角色所需要承擔的任務 產品經理:負責產品的需求文件的編寫,具體產品和需求的規劃; 專案經理:負責專案的立項和跟進專案的進展,變更和風險; 設計人員:負責產品的設計,主要交付的是產品的原型和設計稿; 開發人員:負責產品的架構設計和程式碼編寫

閱讀筆記JavaScript 高階程式設計(四)

基本型別和引用型別的值   ECMAScript 變數可能包含兩種不同資料型別的值:基本型別值和引用型別值。 基本型別值是指簡單的資料段,而引用型別值指那些可能由多個值構成的物件。   JavaScript 的基本資料型別都是按值訪問的,因為可以操作儲存在

讀書筆記 《Thinking in java》註解

A.註解:也被稱為元資料,為我們在程式碼中新增資訊提供了一種形式化的方法。 註解是眾多引入到Java SE5中的重要語言變化之一。提供了完整地描述程式所需的資訊。 B.Java中有三種標準註解:@Override  @Deprecated  @SuppressWarnings

讀書筆記閱讀的危險

enter 忘記 而是 有趣 人在 很多 新的 tex 下一個 閱讀的危險   我脫離我的極簡主義哲學最大的原因之一就是閱讀,確切地說,是閱讀他人在做什麽。我閱讀博文或者雜誌上的文章,上面寫了別人所做的一些有趣的事情:旅行,使用一種新型高效的系統,烤面包等。然後我也想去做那

Java並發編程實戰-閱讀筆記02-對象的共享

mut 表現 普通 ola 過程 ger hashset 操作 unlock 編寫正確的並發程序需要在訪問可變狀態的時候進行正確的管理。前面說了如何通過同步避免多個線程在同一個時刻訪問相同的數據,本章介紹如何共享和發布對象,才能讓對象安全地被多個線程同時訪問

論文閱讀筆記Deep Learning based Recommender System: A Survey and New Perspectives

【論文閱讀筆記】Deep Learning based Recommender System: A Survey and New Perspectives 2017年12月04日 17:44:15 cskywit 閱讀數:1116更多 個人分類: 機器學習

Context-Aware Basic Level Concepts Detection in Folksonomies論文筆記

一、概要 這篇論文討論了在 folksonomies中探索隱含語義的問題。在 folksonomies中,使用者建立和管理標籤來標註web資源。使用者建立的標籤的集合是潛在的語義資源。做了大量研究來抽取概念,甚至概念層次 (本體),這是知識表示的重要組成部分。沒有用於發現人類可接受和令人滿意

論文閱讀筆記MULTI-SCALE DENSE NETWORKS FOR RESOURCE EFFICIENT IMAGE CLASSIFICATION

Gao Huang(Cornell University),  ICLR 2018 best Papers 文章連結:https://arxiv.org/pdf/1703.09844.pdf 程式碼連結:https://github.com/gaohuang/MSDNet

論文閱讀筆記---二值神經網路(BNN)

二值網路是將權值W和隱藏層啟用值二值化為1或者-1。通過二值化操作,使模型的引數佔用更小的儲存空間(記憶體消耗理論上減少為原來的1/32倍,從float32到1bit);同時利用位操作來代替網路中的乘加運算,大大降低了運算時間。由於二值網路只是將網路的引數和啟用值二值化,並沒有改變網路的結構。因此我們主要關注