1 問題背景
精準直達的知識問答能力對營造小布“懂知識、更懂你”的形象非常重要。在語音助手場景,經常會出現一詞多義或者口語化表達等問題。例如:李白出裝,李白的詩,播放李白。第一李白是指遊戲角色,第二個是指詩人李白,第三個是指歌曲李白。如何精確識別使用者所指、給出正確的答案是小布助手面臨的挑戰。
知識圖譜是讓機器理解客觀世界的基石,擁有極強的表達能力和建模靈活性。目前OPPO自建知識圖譜OGraph已經積累了數億實體和數十億關係。接下來讓我們看看小布和Ograph將如何碰撞,通過實體連結技術解決實體歧義問題,幫助小布做能聽、會說、更懂你的智慧助手。
2 任務介紹
實體連結是NLP、知識圖譜領域的基礎任務,即對於給定的一箇中文文字,將其中的實體描述(mention)與給定知識庫中對應的實體進行關聯的任務。
2009年在TAC會議上第一次提出實體連結任務,2014年深度學習流行之前都是通過統計特徵和基於圖的方法進行實體連結。2017年提出了Deep Joint方案,使用Attention結構進行語義匹配來實體消歧。後面該團隊通過模型結構創新,實現了同一個模型同時實體識別和消歧,消歧依舊使用Attention。2018年提出了Deep Type方案,將消歧問題轉化為實體分類,得到實體類別後,通過Link Count確定要連結到的實體。2020年預訓練語言模型開始流行,Entity Knowledge方案藉助大量的語料和強大的預訓練模型,用序列標註的方式進行實體連結。
3 技術方案
實體連結通常會被拆分為三個子任務:實體識別、候選實體召回、實體消歧。
3.1 實體識別
實體識別的作用是識別出query中的實體描述(即mention),例如李白所在朝代皇帝是誰中的李白即為要識別的mention。在進行通用領域實體識別時,實體量級大、型別多、說法多樣,因此方案要兼顧效率和泛化。
小布助手開發了基於詞典的實體識別使用自研匹配工具Word Parser,該工具無論是在效能還是功能都較開源工具有優勢。
實體連結中並不關心實體型別,因此實體識別可以使用 B/I 標籤或者指標標註的模式,同時為了提升輸入資訊的豐富程度,引入詞彙資訊作為特徵補充,試驗了 Lattice LSTM 和 FLAT 等結構,實體識別效果提升約 1%。
3.2 候選實體召回
候選實體召回的目標是用mention召回所有可能的候選實體,但是線上存在大量暱稱、同音字、口語化表達,例如:卷福、抖森這類暱稱別名,而且還會出現表述錯誤,例如豐滿奧特曼、拖拉機奧特曼、倩雅集,如果缺乏別名到正確實體的對映,就無法完成召回。在語音場景沒有使用者直接反饋,無法像搜尋一樣通過使用者點選進行挖掘,因此實體別名的挖掘相當有挑戰。
根據問題的特點,我們構建了兩套方案,通用別名挖掘採用資訊抽取為主模式生成為輔的挖掘流程,充分利用OGraph中的描述資訊、別名資訊和關係資訊,從中挖掘別名。
針對使用者輸入錯誤、同音字、近音字這類別名挖掘,小布助手開創性的構建了基於特徵聚類的別名發現流程。挖掘步驟如下:
1)Query篩選:採用領域關鍵詞過濾、搜尋點選日誌篩選的方式,從使用者搜尋query和小布助手線上query中篩選出可能包含待挖掘別名的query。
2)實體識別:使用實體識別技術,從待挖掘query中識別實體。實體識別模型採用通用實體識別模型+垂域finetune的方式得到。
3)領域特徵構建:由於實體識別直接得到的實體別名準確率不高,而且沒有和實體標準名關聯起來,需要構建領域特徵,將挖掘的實體別名與實體標準名關聯。根據場景特點,我們選取了部首偏旁特徵和拼音特徵。
4)特徵聚類:使用聚類的方式來關聯挖掘的實體別名與實體標準名。通過使用這套挖掘方案,得到數十萬實體別名,準確率95%+,解決了線上高頻的別名問題。
3.3 實體消歧
實體消歧是實體連結中最關鍵一步,消歧的本質是排序,通過對候選實體進行排序,得到每個候選實體的排序分數,選出最終的結果。實體消歧有下面主要問題:
1)在語音助手場景下多為短文字,因此上下文特徵缺失,需要額外構造特徵幫助消歧。
2)消歧時不能僅僅通過語義特徵來消歧,還要充分考慮全域性消歧特徵,例如“劉德華給學員講課,把炸彈比喻成姑娘的手”中的劉德華,從語義上來講清華大學教授劉德華更符合,實際上是演員劉德華和《拆彈專家》的文章標題。
3)圖譜中存在未對齊實體,導致模型消歧困難,同時容易出現語料標註錯誤。例如中國和中華人民共和國在有些開源圖譜中是兩個實體,導致訓練集裡有些正確標籤中國這個實體,有的正確標籤為中華人民共和國這個實體。
針對上面提到的問題,我們從資料準備、模型選型、模型優化等方面著手,通過針對性的優化解決這些問題。
3.3.1 資料準備
構造消歧樣本時,我們提供儘可能多的資訊給模型,樣本由三部分構成:query樣本、實體樣本和統計特徵。
query樣本構造:query樣本輸入時關鍵時將mention的位置資訊傳入模型,讓模型能判斷mention在query中的具體位置。因此引入識別符號#將,在mention兩邊加入統一的識別符號“#”,樣本如下:
實體描述樣本構造:實體樣本中需要包含待消歧實體的特徵,我們在第一版實體樣本中設計了mention和標準名的拼接表示標準名和mention是否相同這一特徵;構造了“型別:實體型別”這種描述,提供實體型別資訊;同時加入了實體描述和圖譜的三元組資訊。在第二版中,我們將標準名和mention是否相同的特徵直接轉化成文字描述“名稱相同/不同”,同時加入了“非/是主義項”這一特徵,通過優化特徵表達方式,模型表現提升約2%。
統計特徵樣本構造:為了避免消歧模型只關注語義特徵,我們統計了query和實體樣本共現特徵、流行度、豐富度、mention共現特徵等統計特徵,作為模型輸入,輔助進行全域性消歧。
3.3.2 模型選型
排序學習中,有三種常見模式pointwise,pairwise和listwise,對於實體消歧這種只需要TOP1的排序任務,並不需要考慮候選實體之間的順關係,只考慮全域性相關性,因此我們選取了pointwise方法。
總結前人的消歧模型,Deep Joint從排序出發,Deep Type從分類出發,都取得了較好的效果,說明分類和排序任務都對消歧有幫助,因此我們根據任務特點,設計了多工模型框架,同時進行排序和分類,兩個任務共享模型引數,一起訓練,損失函式一起優化,通過共享排序任務和分類任務的資訊,模型可以有更好的表現,多工損失函式如下。
為了更好的融入統計特徵,我們直接將統計特徵embedding拼接到特徵向量後面進行排序。
最終我們模型結構如下,將query樣本和實體樣本拼接,輸入預訓練語言模型,將CLS位置的向量和統計特徵embedding拼接後作為特徵向量。排序任務將特徵向量輸入全連線層,然後經過tanh最終輸出[-1,1]區間的分數,分數越高代表越有可能是目標實體。分類任務將特徵向量輸入全連結層,經過softmax層輸出各個分類的得分。
通過試驗基於多工的實體連結模型效果整體上優於單任務模型,具體F1見下表。
3.3.3 模型優化
為了瞭解模型到底關注哪些輸入特徵,使用互資訊的視覺化方法對模型進行視覺化,對各個詞的重要程度進行了視覺化,顏色越深重要程度越高。通過視覺化發現,模型傾向於關注實體的型別和用來區分實體的片段,例如示例1吃得慢、食物、吃法、火腿腸,示例2中的珊迪、海綿寶寶、開關電源品牌。示例3種的人物、種族、夢三國等,可以看到多工模型關注的特徵都是對消歧有幫助的。
置信學習(Confident Learning ,CL)是一種識別標籤錯誤、表徵標籤噪聲的演算法框架。針對標註錯誤的問題根據置信學習的思想,在原始資料上用n-flod方式訓練了5個模型,用這些模型預測原始訓練集的標籤,然後融合5個模型輸出的標籤作為真實標籤,再從原始訓練集中清理真實標籤與原標籤不一致的樣本,我們清理的樣本佔比3%,其中標籤錯誤的80%+。
對抗訓練是指在模型的訓練過程中構建對抗樣本,參與模型訓練的方法。正常訓練過程中,如果梯度方向陡峭,那麼很小的擾動都會產生很大的影響。為了防止這種擾動,對抗訓練在模型訓練的過程中使用帶擾動的對抗樣本進行攻擊,從而提升模型的魯棒性。可以看到FGM和PGD兩種生成對抗樣本的方式效果提升都比較明顯。
4 技術應用
4.1 小布助手中的應用
在小布助手場景中,使用者對語音助手的智慧程度抱有很大的期望,會問各類有趣的問題,比如多跳問題、六度關係查詢等。藉助實體連結技術小布助手可以精確識別使用者所指,配合子圖匹配技術可以處理實體問答、結構化問答、多跳問答、六度關係查詢等,覆蓋大部分結構化問題,
為了驗證小布助手的實體連結能力,我們在自建評測集和千言評測集上都測試了我們的演算法,可以取得良好的效果。
4.2 OGraph中的應用
實體連結不僅可以應用到KBQA,在資訊抽取流程中也是至關重要的一環。Ograph資訊抽取流程使用了資訊抽取模型Casrel和專門針對實體類問題訓練的MRC模型,可以獲得海量候選三元組。
得到三元組後需要利用實體連結技術,將三元組與知識庫中的實體連結起來。為了保證實體連結的召回,我們優化了候選實體召回能力,同時使用挖掘的實體別名詞表和ES檢索系統進行召回,確保連結效果,通過整個流程生產三元組數百萬。
5 總結
通過在實體連結技術上的探索,小布助手可以更好的解析各類實體口語化表達、別名和歧義,藉助KBQA其他流程和OGraph豐富的知識儲備,已經能夠解答大部分使用者提出的問題,自然語言理解道阻且長,小布助手的進化永遠不會停止。
6 參考文獻
1.Deep Joint Entity Disambiguation with Local Neural Attention. Octavian-Eugen Ganea, Thomas Hofmann.
2.Improving Entity Linking by Modeling Latent Entity Type Information,Shuang Chen, Jinpeng Wang, Feng Jiang, Chin-Yew Lin.
3.End-to-End Neural Entity Linking. Nikolaos Kolitsas, Octavian-Eugen Ganea, Thomas Hofmann.
4.Investigating Entity Knowledge in BERT with Simple Neural End-To-End Entity Linking, Samuel Broscheit.
5.Towards Deep Learning Models Resistant to Adversarial Attacks. A Madry, A Makelov, L Schmidt, D Tsipras.
6.Confident Learning: Estimating Uncertainty in Dataset Labels. Curtis G. Northcutt, Lu Jiang, Isaac L. Chuang.
7.Towards a Deep and Unified Understanding of Deep Neural Models in NLP. Chaoyu Guan, Xiting Wang, Quanshi Zhang, Runjin Chen, Di He, Xing Xie.
作者簡介
FrankFan OPPO高階NLP演算法工程師
主要從事對話和知識圖譜相關工作,在實體挖掘、序列標註、關係抽取、實體連結等方向具有豐富的研發經驗,積累專利十餘篇。
獲取更多精彩內容,掃碼關注[OPPO數智技術]公眾號