因爲搜索算法自己的侷限性,對於用戶的語義、意圖等理解不夠,而基於用戶行爲的點擊調權,做爲對傳統搜索算法的補充,在搜索中扮演着重要的做用。儘管用戶行爲已經被證實在搜索中的效果,可是一直只是停留在query-url層面,或者ngram-url層面[1],沒有深刻反饋到檢索算法中的基礎策略,好比:同義詞、緊密度、省略等,這些策略影響了url與query之間的關係。本文以對同義詞的反饋爲例,提出一個通用的基於用戶行爲的基礎策略反饋框架。算法
因爲同義詞詞典與線上應用算法的限制,檢索系統中存在部分質量很差、或者原本質量好可是應用時錯誤下降了權值的同義詞。在同義詞召回出來結果後,呈如今用戶面前,用戶的行爲數據能夠幫助咱們識別同義詞的好壞。在計算出同義詞的好壞後,就能夠直接應用於同義詞的退場或者調整應用的權值。框架
在進行反饋機制的挖掘中,主要分爲三部分:機器學習
1) 日誌記錄。主要進行基礎策略用戶行爲的記錄、以及query-url對進行用戶行爲數據的統計,解決如何利用用戶行爲衡量query-url轉義問題。這部分還要記錄影響具體query-url的策略,好比,這個url是哪一個同義詞所召回,或者是哪一個term被省略。ide
2) 反饋機制挖掘。根據query-url中統計的基礎策略的用戶行爲數據,進行基礎策略的統計。這個地方不一樣的基礎策略的衡量方式能夠保持相同,可是基礎策略提取的信息不同。好比同義詞是替換對,省略是指省略的term等。學習
3) 線上反饋應用。將第二步挖掘的詞典,應用於具體的query,好比進行上下文的匹配,以及一些應用策略。ui
以上的框架比較籠統,下面針對同義詞的反饋作具體的討論。搜索引擎
這部分首先須要記錄具體的策略,好比在這個query下,每條url是由哪一個基礎策略所影響的,並且須要更加具體。好比同義詞須要記錄由那些具體的同義詞所召回。由於每每一個query有不少同義詞,可是真正每條url只是其中1到2個同義詞影響的。url
衡量query-url是否轉義是很是關鍵的步驟,本文主要篇幅是討論這個。衡量的方法須要藉助用戶的行爲。在搜索引擎的日誌系統中,對query-url有以下的用戶行爲統計量:(下面的討論中,url的統計都是和query相關的,再也不特殊說明)日誌
展示次數:用戶搜索後,搜索引擎返回的url在前k條展示的次數(display)排序
點擊次數:用戶點擊url次數(click)
滿意點擊次數:考慮是否知足用戶的需求的點擊(相對停留時間,是不是最後點擊) (satisfy)
所以咱們能夠用click/disply、satisfy/display來衡量url的好壞。但有以下問題:
1.位置偏置問題:點擊次數對位置很是敏感,搜索結果中, url的點擊次數隨着url的排序位置越靠後,其點擊次數越少,並且越後面減小得越快。所以位置在前的url,雖然轉義了,但也有不少用戶點擊;反之,位置在後的url,雖然知足用戶需求了,但也不多有用戶點擊。這樣很容易讓咱們的反饋系統失效。
2.在搜索引擎中,用戶對搜索結果的滿意大體能夠分爲兩個層次:1) 檢索出來的url的標題和摘要是否和用戶的query的意圖一致。2) url內容的質量是否知足用戶的需求,好比是否死鏈、知道頁面沒有人回答、做弊頁面等。咱們的目標是識別出轉義的替換詞對,這些只和第1個層次的滿意相關。咱們能夠假設用戶既然點擊了這個url,說明這個url的title摘要是沒有轉義的,至於網頁的質量不是同義詞自己的質量所能影響的。
爲了解決問題1,能夠從這一角度考慮。排在後面的url點擊次數少的緣由是用戶看到的次數少,所以不能用展示來與click作比值,能夠利用一些方法來估計用戶看到的次數,咱們稱之爲檢查次數(check)。這裏有一些很簡單的方法。好比對於每次用戶的搜索,用戶最後點擊的url位置爲p,那麼位置在p以前url檢查次數是1,在p以後的url的檢查次數依次以一個機率衰減。這些機率能夠採用一些貝葉斯的方法進行學習。[2]
採用檢查次數能夠部分解決位置偏置問題,可是學習到的衰減參數是對全部的query-url,但不一樣的query-url有很大的差異,這也是該方法的不足之處。
基於第3章中日誌記錄的工做,能夠採用click次數用來表示url知足query的次數,而check-click表示url不知足query的次數。這樣用click/(check-click)這個值來表示url知足query程度。對於具體的同義詞反饋任務,能夠把多條query-url結果中記錄的一樣的同義詞替換進行統計click和check次數(即統計的key是 原詞 替換詞 二元組),把最後獲得的click/(check-click)做爲衡量這個同義詞替換的類似度,即同義詞的反饋替換類似度:
這個地方還有一大問題是,因爲不少同義詞是上下文相關的,好比:考慮一對同義詞 看->治療,在某些上下文下,好比:哪裏看病比較好,是同義的;而在某些上下文下,好比:哪裏看還珠格格連播。所以爲了更智能的在不一樣的上下文進行同義詞的反饋,須要在統計的時候考慮上下文,即統計的key爲:原詞 上下文 替換詞 三元組。
可是不能把整個query做爲上下文,這樣統計會有很大的數據稀疏性,而若是隨便把單個詞做爲上下文,會有很大的準確率問題。好比 哪裏 對 看->治療 以及看->觀看 都是支持的。所以爲了兼顧上下文數據的稀疏以及準確問題,須要一個上下文選擇算法。在天然語言處理中一般採用似然比的方法(llr, likelihood ratio)[3],用來衡量orig與context的搭配強度,從而搭配強度越強,這個context詞能夠認爲是orig詞的替換上下文。其計算方法爲:
其中a表示orig,context共現次數;b表示orig出現,context不出現的次數;c表示orig不出現,context出現的次數;d表示oirg和context都不出現的次數。N=a+b+c+d表示總共的樣本數,那麼llr的計算公式爲:
反饋機制應用時,是針對每個替換進行獨立的判斷,即已知替換對(orig sub),須要先進行上下文的選取。上下文相關的同義詞,本質上來講被替換詞是一個多義詞,對於大部分query來講,只用一個上下文詞就能夠限定被替換詞的意義。所以從簡單的角度考慮,以及多個詞的上下文融合所帶來的噪音以及融合方式的問題,反饋機制應用時只選擇一個在必定上下文窗口內的詞語。
最後計算所選擇的上下文,利用4.1節中訓練的數據,做爲替換的反饋類似度,即sim(orig,contex,sub)。利用這個值做爲同義詞的置信度應用於線上:或退場,或降權,或升權。
在檢索系統中,對基礎策略作基於用戶行爲的反饋是一個比較新的方向,對於改進基礎數據具備很是重要的意義。本文根據對用戶行爲的深刻調研,探討了一些方法和指標。
從整體上來講,本框架的至關於作了兩個假設:用戶行爲與相關性的關係正相關,url相關性與基礎策略正確性正相關。
第一個假設涉及到基礎統計特徵的調研思考角度。點擊 檢查是體現這些關係的特徵之一,另外還能夠考慮更多的特徵,好比:滿意點擊,點擊的url條目。還有飄紅對點擊的影響,用戶的做弊識別等干擾基礎特徵的統計。這一點不一樣的基礎策略是能夠統一的
第二個假設涉及到基礎策略以什麼形式來表示這些基礎的統計特徵。這個是和基礎的策略緊密相關。好比同義詞選擇上下文的方法,以及上下文的位置,多個上下文,或者不須要上下文的替換對識別等。另外還需關注基礎策略的應用問題,好比同義詞不轉義,url轉義的問題,這對基礎策略的識別會產生誤導。
從機器學習的角度上,該方法主要從生成模型的角度出發,所以模型的各個步驟解釋性很強,可是沒法利用更多的特徵,能夠挖掘更多的特徵並採用機器學習的方法來利用這些特徵。
[1] Huihsin T, Longbin C, Fan Li etc. 2009. Mining Search Engine Clickthrough Log for Matching N-gram Features . Proceedings of the 2009 Conference on EMNLP, 524-533.
[2] Ricardo Baeza-Yates, Carlos Hurtado,etc. Modeling User Search Behavior. In LA-WEB 05
[3] Christopher D. Manning, Hinrich Schutze. Foundations of Statistical Natural Language Processing. The MIT Press. 172-175
by xuwenzhi