一、背景
以深度學習為代表的 AI 技術近年來在搜索推薦場景中得到廣泛的應用,對用戶 Query 和內容側的理解不斷深入,用戶體驗得到顯著提升。
搜索是一種典型的 AI 應用,關鍵技術包括 Query 分析 、內容理解、文本相關性計算以及排序等。從統計機器學習到深度學習,算法結合大數據將搜索引擎精度不斷的提升。本次分享以部分技術為例探討小米移動搜索中應用的 AI 技術。

小米的移動搜索主要有兩個場景,MIUI 的主搜索入口,以及瀏覽器中搜索提示。小米的移動搜索針對移動端搜索的特點,致力于為用戶提供精準便捷的體驗。實現了應用、內容、服務的直達。例如搜索視頻時,直接夠喚起愛奇藝/騰訊視頻等 App 觀看特定選集。
覆蓋小米體系和外部合作方內容,以下是部分合作垂類內容提供方:

今天分享的技術內容分幾個部分:
- 文本相關性
- 意圖識別和詞權重
- 點擊模型排序
先介紹下搜索系統的典型結構:

最基本的搜索架構大體上也都有這樣幾個部分,百度、搜狗、神馬、360等各大搜索廠商采用的基本架構都是類似的,包括:
- 前端模塊
- Query 分析模塊,負責計算意圖/詞權重/同義詞和 Query 改寫等。
- 取得 Query 分析結果后,發送請求到各索引中進行結果召回。包括關鍵詞召回、向量召回等。通常還會在這個階段完成低級別特征的計算和粗排。
- 將上述結果進行高階特征生成和重排序(精排),排序后對結果再做一些處理邏輯后返回給前端。
搜索與推薦系統的處理過程有不少類似的地方。
二、文本相關性計算
問答和新聞 Query 場景下,文本相關性計算的精度對搜索體驗的影響顯著。
2.1 問題的定義:以查詢 Q 和文檔 D 的標題為例,計算相關性分數。
2.2 挑戰:缺詞,多詞,逆序,臨近,同義詞…
中文的文本相關性計算是一個比較復雜的問題。
例如:

舉一個簡單的例子,第一個問答中的兩種表述存在差異;第二個例子中,在句子中插入不同的字符,對語義的影響也存在不同。
我們設計了兩個基本模型解決文本相關性計算的問題,最終使用兩個模型融合的結果。
2.3 相關性 GBDT 模型
首先介紹使用 GBDT 模型計算 query 和 document 文本相關性。通過特征工程從人工標注數據中進行學習。有如下幾大類特征:

在圖中的樣本打分為1的樣本,query 中的核心詞 " 33集 " 在查詢結果中沒有命中,核心詞未命中是模型中很強的一個特征。這兩句話在淺層語義上差異也很大。在 " 錦繡未央:唐嫣受傷 " 中主體有 " 錦繡未央 " 和 " 唐嫣 ",而在 query " 錦繡未央33集 " 中主體是 " 錦繡未央 " 和 " 33集 " 。打分為2的樣本,主體蔥爆海參對海參做了限定,但沒有超出海參的范疇。
在匹配特征設計中需要分析命中詞權重、是否命中同義詞、未匹配詞是否為停動詞等,例如 query 中的詞沒有在 document 中出現。在上圖中標注3分的例子中,去掉不重要詞 " : ",整個 query 依然是連續命中,該項特征得分就較高。還有就是同義詞的處理,這里需要同構離線挖掘同義詞的表。類似的特征還有編輯距離,逆序對的數量,考慮詞權重的匹配等等。
相關性計算還有一種方法是使用用戶行為日志,利用用戶更多點擊和未點擊文檔構建訓練樣本對。與經典的基于關鍵詞匹配相關性算法相比,DNN 模型極大的提高了語義相關性的判斷范圍和準確性,對于長尾查詢的效果也更好。DNN 模型使用的訓練樣本數據量比較大,我們的場景中目前用到億級別樣本。下圖以 C-DSSM 為例 ( 基于微軟的論文 ) 。中文與英文相比處理有一點差異,需要先分詞之后是取單字和詞的 embedding,另外這里推薦 trainable 的 embedding 。模型能夠學習出查詢與文檔的量化表示,并計算相似度。我們還做了一些改進包括輸入層增加額外信息。

獲取 DSSM 模型處理的結果后,進行模型融合,利用好兩種模型的優勢。
人工標注樣本的優點是精度高,交叉標注可以使得準確率達到90%以上。從用戶行為中收集的樣本,樣本精度大約只有70%,優勢是數據量大長尾覆蓋度好,能將 query 與 document 的語義結果放在同一個向量空間。以下是兩種方式比較具體結果:

三、意圖識別與詞權重
首先看下意圖識別的例子,根據輸入來識別出不同的意圖:

輸入是 " 男士用洗面奶洗臉的正確方法 ",在識別出意圖后,放到 " jingyan " 、 " zhidao " 等垂類索引中去搜索,能夠提升性能并為后續的排序等流程提供信息。
這個項目早期解決的方法是詞典+規則的方式,這種方法是精度高、依賴人工挖掘,覆蓋度有限,規則之間可能沖突,維護成本高。后來改進為在詞典+規則的基礎上,使用LR 和 DNN 兩個模型計算意圖分數。
使用 FTRL 優化的 LR 模型做意圖識別能獲得在線學習的方法的好處,是因為意圖是動態變化的過程,這使得線上模型能夠快速的更新。這里將意圖識別建模分為多個二分類問題;構建的特征有 N-Gram 、長度特征、首位位置特征等;單類別的樣本量在千萬級別。此外還使用了 DNN 模型做意圖識別,把多類別的樣本放到 DNN 模型中,需要數量保持一定程度的均衡。
在對 query 進行分詞后,還需要計算分詞結果的詞權重,最容易想到的方法是 IDF,這種方法比較簡單應用在工業級系統中效果不夠理想。因為一個句子具有整體含義,是一個上下文相關的問題。傳統的方法是使用 CRF 模型來進行計算,目前 SOTA 的方法是用 BiLSTM+CRF 的方法。

四、點擊模型排序
用戶的瀏覽和點擊等行為數據除了計算相關性還可以用來改善排序的效果。
移動搜索業務與傳統的網頁搜索有一個明顯的區別,傳統的網頁搜索結果,不同的網頁之間有類似的結構,移動搜索排序面臨的一個挑戰是異構結果。比如搜索結果中其字段表述的含義跟視頻跟應用是不同的,視頻里面分級、主演,應用是有哪家廠商發布/應用類型,這些信息在不同結果之間是對不齊的,網頁搜索場景中的排序一般是同構結果排序。業務中采用了點擊模型進行異構結果的排序。下面介紹幾種點擊模型: PBM 、Cascade Model 、DBN 。

4.1 點擊模型—PBM

PBM 是一個比較簡單的基于位置模型,即結果與用戶看的概率、實際看的概率來決定。
4.2 點擊模型-CM
假設用戶看結果是帶有順序的狀態,過程如下:

4.3 點擊模型-DBN
使用 DBN 的假設包括,第一點是用戶點過,并不代表對結果完全滿意,即這是概率事件。另外一個假設是給出的所有結果中,并不一定有用戶滿意的結果,用戶可能都不太感興趣而放棄搜索。DBN 的訓練過程中用到了 EM 算法。

我們使用了多模型組合并對模型針對移動搜索場景做了額外的優化。模型中考慮是否有圖以及結果的大小等帶來的 bias 。
例如下圖的 query = " 趙薇老公 ",改進效果對比:

五、總結
搜索推薦的整體架構:

作者:宮士敏,小米大數據部算法團隊 Leader,帶領團隊構建了小米移動搜索算法體系。研究領域主要包括搜索引擎、機器學習、推薦系統等。對搜索中的相關性計算、排序、NLP 等相關技術有深刻理解,并對深度學習在搜索推薦領域應用有豐富的實踐經驗。畢業于中科院計算所,之前在搜狗搜索負責網頁搜索算法相關工作。