1. 程式人生 > >搜尋引擎的查詢意圖識別(query理解)

搜尋引擎的查詢意圖識別(query理解)

by 張帆(自然語言處理組@搜狗)

通用搜索VS垂直搜尋
        通用搜索特點:
                抓取網際網路上一切有價值的頁面,同意建立索引,以關鍵字匹配為基本檢索方式,以網頁title和summary為展現方式
                google, 百度,搜狗,搜搜,有道
        垂直搜尋特點:
                以一特定類別為主題,只抓取與主題相關資訊,根據主題特點有針對性的建立相應的索引檢索方式,篩選方式,以及展現方式
                機票搜尋,地圖搜尋,購物搜尋(一淘)……
                
解決方法:通用搜索引擎 + 垂直搜尋引擎
        意圖識別
        
意圖搜尋的難點:
        輸入不規範
                輸入方法多樣化
                非常不規範
                有堆砌關鍵詞
                自然語言查詢
                甚至非標準自然語言
        多意圖
                如:仙劍奇俠傳
                        遊戲?--> 遊戲軟體?……
                        電視劇?--> 電視劇下載?相關新聞?……
                        電影?--> 電影下載?檢視影評?劇情介紹?……
                        音樂?--> 歌曲下載?線上聽歌?歌詞下載?……
                        小說?--> 小說下載?線上觀看?……
        意圖強度
                如:荷塘月色
                荷塘月色歌曲 --> 歌曲下載:50%
                荷塘月色小區 --> 房產需求:20%
                荷塘月色菜 --> 菜譜需求:10%
        結果可靠性
                供我們獲取搜尋結果的這些垂直站點往往是一些中小型的網站,我們需要保證搜尋結果的準確性和相關性
                如:遙控汽車
                預期結果:返回所有遙控汽車的相關結果
                實際返回:
                        遙控汽車--> 沒有遙控汽車相關結果
                        遙控--> 返回遙控器,遙控飛機等於原意圖無關的結果
                        汽車--> 返回汽車模型,汽車配件等於原意圖無關的結果
                        (比如京東就是這麼拆搜尋詞的)
        時效性
                如:iPhone5 7月1日上市銷售
                6月30日的查詢意圖:新聞90%,百科10%
                7月1日的查詢意圖:新聞70%,購買25%,百科5%
                8月1日的查詢意圖:購買50%,資訊40%,其他10%
                5年以後的查詢意圖:百科100%
        
詞表窮舉法:
        最簡單直接的方法,通過詞表的直接匹配來獲取查詢意圖,也可加入適用於較為簡單且查詢較為集中的類別,比如電視臺節目查詢,節假日查詢,餐館查詢等
                如:北京的天氣怎麼樣啊
                (停用詞替換) --> [北京][天氣][怎麼樣]
                (查詢詞歸一) --> {城市][關鍵詞][疑問詞]
                (順序無關) --> {[城市], [關鍵詞], [疑問詞]}
                給出白名單:

規則解析法:
        適用於一些查詢雖然不集中但非常符合規則的類別,通過規則解析查詢來做意圖識別和關鍵資訊提取的,比如匯率查詢,計算器,度量衡等
                如:236.2美金能換多少RMB?
                [236.2][美金][今天]能換多少[人民幣]?
                [數字][貨幣單位][日期]能換多少[貨幣單位]?
                ★通過知識圖表,來替換/對應/歸一
                解析:
                        數量:236.2
                        源貨幣:美元(不再是“美金”)
                        目的貨幣:人民幣
                ★配合自己建立的一些語言模型,可以比較好的解決召回率比較低的問題
                        模型訓練的比較好的話,相對召回也很不錯
                        但是比如購物啊什麼的,是無法做這種資訊模型的
        
統計模型分類法:(最常用)
        查詢詞分類:基於查詢詞本身的分類,也就是建立基於字面意思的統計分類模型
        查詢詞擴充套件分類:基於查詢詞的擴充套件資訊的分類,也就是基於真實社會知識的分離,通常是搜尋結果擴充套件
                比如“家常菜”居然是個電視劇!
        查詢詞分類:
        查詢詞-->查詢糾錯、規則化、知識詞表-->Uni-gram, Bi-gram, CRF, 語料分類模型-->搜尋結果驗證、垂直搜尋結果驗證-->查詢擴充套件分類結果
        查詢擴充套件分類:
        查詢詞-->搜尋結果1,2,3,4-->標題分類、摘要分類、網站分類-->結果分類1,2,3,4-->查詢擴充套件分類結果
                (針對每個搜尋結果,驗證一下查詢意圖強度和類別)
                
        需要配合持續更新的語料,就可以通過流程自動更新
        比較可行的方法如:
        先到軟體下載站
        把排行榜的TOP 100拖下來(這些都有軟體下載的查詢需求)
        搜尋一遍,然後每個取前50個搜過結果
        作為一個5000大小的語料,可以訓練
        可以持續、自動更新

搜尋意圖識別未來
        無類別概念的意圖識別
                基於垂直搜尋的分類模型,而非基於類別的分類模型,幫助使用者獲取想要的內容而不限定類別
                比如將 類別和網站本身 建立聯絡,直接在網站內部的資料庫中搜索
        個性化意圖上下文分析
                根據使用者特徵建立個性化的資訊,獲取使用者的短期興趣和長期興趣,準對性的優化意圖識別
        精準意圖理解
                更加精準的意圖理解,所有價值資訊的解析,目前的展現多為整體展現,可以再進一步來生成個性展現
        語言應用的意圖理解
                針對語言類應用的特點優化,比如語言糾錯,個性資訊的輔助意圖識別等