【閱讀筆記】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 : , 表示位置 上的文件的相關性評分。
根據 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
Then the pseudo-response of stage
is
迴歸的結果不但可以判斷 doc 是否相關,而且可以給出合理的排序。但是一個簡單的二分類器不足以很好的進行排序,需要把 “Perfect”, “Excellent” and “Good” back to the model。因此我們引入 gradient scale for GBDT。The pseudo-response of stage m will become:
根據經驗,我們設定
。
命名我們的演算法為 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 的向量