美團(tuán)知識圖譜問答技術(shù)實(shí)踐與探索
知識圖譜問答(Knowledge-based Question Answering, KBQA)是指給定自然語言問題,通過對問題進(jìn)行語義理解和解析,進(jìn)而利用知識庫進(jìn)行查詢、推理得出答案。美團(tuán)在平臺服務(wù)的售前、售中、售后全鏈路的多個場景中都存在大量的咨詢問題。我們基于問答系統(tǒng),以自動智能回復(fù)或推薦回復(fù)的方式,來幫助商家提升回答用戶問題的效率,同時更快地解決用戶問題。
1 背景與挑戰(zhàn)
2 解決方案
2.1 Query理解
2.2 關(guān)系識別
2.3 復(fù)雜問題理解
2.4 觀點(diǎn)問答
2.5 端到端方案的探索
3 應(yīng)用實(shí)踐
3.1 酒店問一問
3.2 門票地推
3.3 商家推薦回復(fù)
4 總結(jié)與展望
1 背景與挑戰(zhàn)
PairQA:采用信息檢索技術(shù),從社區(qū)已有回答的問題中返回與當(dāng)前問題最接近的問題答案。 DocQA:基于閱讀理解技術(shù),從商家非結(jié)構(gòu)化信息、用戶評論中抽取出答案片段。 KBQA(Knowledge-based Question Answering):基于知識圖譜問答技術(shù),從商家、商品的結(jié)構(gòu)化信息中對答案進(jìn)行推理。
繁多的業(yè)務(wù)場景:美團(tuán)平臺業(yè)務(wù)場景眾多,包涵了酒店、旅游、美食以及十多類生活服務(wù)業(yè)務(wù),而不同場景中的用戶意圖都存在著差別,比如“早餐大概多少錢”,對于美食類商家需要回答人均價格,而對于酒店類商家則需要回答酒店內(nèi)餐廳的價格明細(xì)。 帶約束問題:用戶的問題中通常帶有眾多條件,例如“故宮學(xué)生有優(yōu)惠嗎”,需要我們對故宮所關(guān)聯(lián)的優(yōu)惠政策進(jìn)行篩選,而不是把所有的優(yōu)惠政策都回答給用戶。 多跳問題:用戶的問題涉及到知識圖譜中多個節(jié)點(diǎn)組成的路徑,例如“XX酒店的游泳池幾點(diǎn)開”,需要我們在圖譜中先后找到酒店、游泳池、營業(yè)時間。
2 解決方案


基于語義解析(Semantic Parsing-based):對問句進(jìn)行深度句法解析,并將解析結(jié)果組合成可執(zhí)行的邏輯表達(dá)式(如SparQL),直接從圖數(shù)據(jù)庫中查詢答案。 基于信息抽取(Information Retrieval):先解析出問句的主實(shí)體,再從KG中查詢出主實(shí)體關(guān)聯(lián)的多個三元組,組成子圖路徑(也稱多跳子圖),之后分別對問句和子圖路徑編碼、排序,返回分?jǐn)?shù)最高的路徑作為答案。

Query理解:輸入原始Query,輸出Query理解結(jié)果。其中會對對Query進(jìn)行句法分析,識別出用戶查詢的主實(shí)體是“故宮” 、業(yè)務(wù)領(lǐng)域?yàn)椤奥糜巍?、問題類型為一跳(One-hop)。 關(guān)系識別:輸入Query、領(lǐng)域、句法解析結(jié)果、候選關(guān)系,輸出每個候選的分?jǐn)?shù)。在這個模塊中,我們借助依存分析強(qiáng)化Query的問題主干,召回旅游領(lǐng)域的相關(guān)關(guān)系,進(jìn)行匹配排序,識別出Query中的關(guān)系為“門票”。 子圖召回:輸入前兩個模塊中解析的主實(shí)體和關(guān)系,輸出圖譜中的子圖(多個三元組)。對于上述例子,會召回旅游業(yè)務(wù)數(shù)據(jù)下主實(shí)體為“故宮”、關(guān)系為“門票”的所有子圖。 答案排序:輸入Query和子圖候選,輸出子圖候選的分?jǐn)?shù),如果Top1滿足一定閾值,則輸出作為答案。基于句法分析結(jié)果,識別出約束條件為“學(xué)生票”,基于此條件最終對Query-Answer對進(jìn)行排序,輸出滿足的答案。
2.1 Query理解
實(shí)體識別和實(shí)體鏈接,輸出問句中有意義的業(yè)務(wù)相關(guān)實(shí)體和類型,如商家名稱、項(xiàng)目、設(shè)施、人群、時間等。 依存分析:以分詞和詞性識別結(jié)果為輸入,識別問句的主實(shí)體、被提問信息、約束等。
為了提升OOV(Out-of-Vocabulary)詞的識別能力,我們對實(shí)體識別的序列標(biāo)注模型進(jìn)行了知識注入,利用已知的先驗(yàn)知識輔助新知識的發(fā)現(xiàn)。 考慮到實(shí)體嵌套的問題,我們的實(shí)體識別模塊會同時輸出粗粒度和細(xì)粒度的結(jié)果,保證后續(xù)模塊對于Query的充分理解。 在問答的長Query場景下,利用上下文信息進(jìn)行實(shí)體的鏈接,得到節(jié)點(diǎn)id。



2.2 關(guān)系識別

表示型:也稱“雙塔模型”,它的主要思想是將兩段文本轉(zhuǎn)換成一個語義向量,然后在向量空間計算兩向量的相似度,更側(cè)重對語義向量表示層的構(gòu)建。 交互型:該方法側(cè)重于學(xué)習(xí)句子中短語之間的對齊,并學(xué)習(xí)比較他們之間的對齊關(guān)系,最終將對齊整合后的信息聚合到預(yù)測層。由于交互型模型可以利用到文本之前的對齊信息,因而精度更高、效果更好,所以在本項(xiàng)目中我們采用交互型模型來解決匹配問題。
層次剪枝:BERT每層都會學(xué)到不同的知識,靠近輸入側(cè)會學(xué)到較為通用的句法知識,而靠近輸出則會學(xué)習(xí)更多任務(wù)相關(guān)的知識,因此我們參考DistillBERT,采取Skip等間隔式層次剪枝,只保留對任務(wù)效果最好的3層,比單純保留前三層的剪枝在F1-score上提升了4%,同時,實(shí)驗(yàn)發(fā)現(xiàn)不同剪枝方法效果差距可達(dá)7%。 領(lǐng)域任務(wù)數(shù)據(jù)預(yù)精調(diào):剪枝后,由于訓(xùn)練數(shù)據(jù)有限,3層模型的效果有不小的下降。通過對業(yè)務(wù)的了解,我們發(fā)現(xiàn)美團(tuán)的“問大家”模塊數(shù)據(jù)與線上數(shù)據(jù)的一致性很高,并對數(shù)據(jù)進(jìn)行清洗,將問題標(biāo)題和相關(guān)問題作為正例,隨機(jī)選取字面相似度0.5-0.8之間的句子作為負(fù)例,生成了大量弱監(jiān)督文本對,預(yù)精調(diào)后3層模型在準(zhǔn)確率上提升超過4%,甚至超過了12層模型的效果。 知識增強(qiáng):由于用戶的表達(dá)方式多種多樣,準(zhǔn)確識別用戶的意圖,需要深入語意并結(jié)合語法信息。為了進(jìn)一步提升效果,同時解決部分Case,我們在輸入中加入了領(lǐng)域與句法信息,將顯式的先驗(yàn)知識融入BERT,在注意力機(jī)制的作用下,同時結(jié)合句法依存樹結(jié)構(gòu),準(zhǔn)確建模詞與詞之間的依賴關(guān)系,我們在業(yè)務(wù)數(shù)據(jù)以及五個大型公開數(shù)據(jù)集上做驗(yàn)證,對比BERT Base模型在準(zhǔn)確率上平均提升1.5%。
2.3 復(fù)雜問題理解

2.3.1 帶約束問題


該信息以通常成對CVT形式存儲,一個CVT涉及3個三元組存儲。 對于“歡樂谷夏季夜場幾點(diǎn)開始”這樣的問題,在查詢的時候,涉及四跳,分別為,<實(shí)體 -> 營業(yè)時間CVT>, <營業(yè)時間CVT -> 季節(jié)=夏季>, <營業(yè)時間CVT -> 時段=夜場>,<營業(yè)時間CVT -> 時間>。對業(yè)界查詢快速的圖數(shù)據(jù)庫比如Nebula來說,三跳以上的一般查詢時間約為幾十毫秒,在實(shí)際上線使用中耗時較長。 一旦屬性名稱、屬性值有不同的但是同意的表達(dá)方式,還需要多做一步同義詞合并,從而保證查詢時能匹配上,沒有召回?fù)p失。

字符串形式:用文本相似度的方法去計算和約束文本的相關(guān)性。 文本Embedding:如對Key的文本形式做Embedding形式,與約束信息做相似計算,在訓(xùn)練數(shù)據(jù)合理的情況下,效果優(yōu)于字符串形式。 其他Embedding算法:如對虛擬節(jié)點(diǎn)做Graph Embedding,約束文本與對應(yīng)的虛擬節(jié)點(diǎn)做聯(lián)合訓(xùn)練等等。
2.3.2 多跳問題

2.4 觀點(diǎn)問答



2.5 端到端方案的探索

Relation Extraction:基于大規(guī)模關(guān)系抽取開源數(shù)據(jù)集,生成了大量一跳( [CLS]s[SEP]h, r, t[SEP] )與兩跳( [CLS]s1 , s2 [SEP]h1 , r1 , t1 (h2 ), r2 , t2 [SEP] )的文本對訓(xùn)練數(shù)據(jù),讓模型學(xué)習(xí)自然語言與結(jié)構(gòu)化文本間的關(guān)系。 Relation Matching:為了讓模型更好的捕捉到關(guān)系語義,我們基于關(guān)系抽取數(shù)據(jù)生成了大量文本對,擁有相同關(guān)系的文本互為正例,否則為負(fù)例。 Relation Reasoning:為了讓模型具備一定的知識推理能力,我們假設(shè)圖譜中的(h, r, t)缺失,并利用其他間接關(guān)系來推理(h, r, t)是否成立,輸入格式為:[CLS]h, r, t[SEP]p1 [SEP] . . . pn [SEP]。

3 應(yīng)用實(shí)踐
3.1 酒店問一問

3.2 門票地推

3.3 商家推薦回復(fù)

4 總結(jié)與展望
無監(jiān)督領(lǐng)域遷移:由于KBQA覆蓋美團(tuán)酒店、旅游到綜等多個業(yè)務(wù)場景,其中到綜包含十多個小領(lǐng)域,我們希望提升模型的Few-Shot、Zero-Shot能力,降低標(biāo)注數(shù)據(jù)會造成的人力成本。 業(yè)務(wù)知識增強(qiáng):關(guān)系識別場景下,模型核心詞聚焦到不相關(guān)的詞將對模型帶來嚴(yán)重的干擾,我們將研究如何利用先驗(yàn)知識注入預(yù)訓(xùn)練語言模型,指導(dǎo)修正Attention過程來提升模型表現(xiàn)。 更多類型的復(fù)雜問題:除了上述提到的帶約束和多跳問題,用戶還會問比較類、多關(guān)系類問題,未來我們會對圖譜構(gòu)建和Query理解模塊進(jìn)行更多優(yōu)化,解決用戶的長尾問題。 端到端KBQA:不管對工業(yè)界還是學(xué)術(shù)界,KBQA都是一個復(fù)雜的流程,如何利用預(yù)訓(xùn)練模型以及其本身的知識,簡化整體流程、甚至端到端方案,是我們要持續(xù)探索的方向。
作者簡介
推薦閱讀:
世界的真實(shí)格局分析,地球人類社會底層運(yùn)行原理
不是你需要中臺,而是一名合格的架構(gòu)師(附各大廠中臺建設(shè)PPT)
企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案
論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?
企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!
【中臺實(shí)踐】華為大數(shù)據(jù)中臺架構(gòu)分享.pdf
華為如何實(shí)施數(shù)字化轉(zhuǎn)型(附PPT)
評論
圖片
表情
