分享嘉賓:陳鳳嬌 美團 技術專家
編輯整理:吳祺堯
出品平臺:DataFunTalk
導讀:美團大腦是正在構建中的全球最大的生活服務領域知識圖譜。隨著美團新零售場景的擴展,美團大腦中圍繞商品領域的知識圖譜逐步建立,并廣泛應用于搜索、推薦、廣告和運營等場景。本次分享將著重介紹如何利用美團大腦中已建設的商品圖譜,發(fā)揮知識數(shù)據(jù)的價值,提供更加精準的商品理解能力。在模型探索方面,我們將介紹基于知識增強的商品理解模型,通過多階段知識增強,提升模型準確性和泛化性。在模型訓練方面,我們將分享一些樣本治理方面的經驗和心得,以更加高效、低成本的方式提升模型能力。由此所建立的更加精準的商品理解能力,一方面會應用于搜推等下游場景,另一方面也會反哺到商品圖譜的數(shù)據(jù)建設,通過已有知識不斷提升自身,伴隨業(yè)務一同成長。
以下將圍繞下面四點展開:
美團大腦簡介
知識增強的商品理解
樣本治理
商品圖譜的應用
首先和大家簡單介紹一下美團大腦。
美團大腦是正在構建中的全球最大的生活服務領域知識圖譜,用人工智能技術賦能業(yè)務,改進用戶體驗。我們希望幫大家吃得更好,生活更好。
美團大腦包含了餐飲、商品、藥品、酒旅、到綜、常識等各領域的圖譜。接下來將主要介紹美團在新零售場景下利用知識圖譜進行商品理解。
美團的新零售場景包含:美團外賣、閃購、買菜、優(yōu)選、團好貨、快驢、買藥,逐步實現(xiàn)了“萬物到家”的愿景。在此場景下,商品數(shù)量更多、覆蓋領域更寬,如生鮮/果蔬、鮮花/綠植、酒水/沖調等,但是我們可以顯式地利用的信息很少(標題、圖片)。我們需要從這些信息中抽取出結構化數(shù)據(jù)(如品牌、口味、產地等)和商品之間的上下位信息,才可以將它們更好地賦能于下游應用,包括搜索中的精確篩選以及無結果的擴召回??偠灾缊F的新零售場景更加依賴知識圖譜,所以商品知識圖譜在新零售領域發(fā)展之初就著手構架。
商品知識圖譜分為層級體系和屬性體系。層級體系用于解決不同業(yè)務方、不同使用場景中,“商品”的含義不同的問題。最細粒度的層級是商品的SKU/SPU,如“蒙牛高鈣牛奶500ml”;最粗粒度的層級為業(yè)務類目,例如“牛奶”、“飲品”、“乳品”。其中,圖譜品類是非常重要的層級,它是商品的本質,是承載了用戶精細需求的商品粒度,例如“高鈣牛奶”、“純牛奶”等。構建圖譜品類的核心任務是做商品的品類關聯(lián)。屬性體系包含如品牌、規(guī)格、包裝等通用維度屬性,以及如脂肪含量、電池型號等特有維度的屬性。它的核心任務是做商品標題解析,因為大部分商品標題都包含了豐富的屬性信息。
商品知識圖譜的構建流程如上圖所示。大致的流程為:構建語料庫->樣本收集->模型訓練->預測產出->生成知識圖譜。在構建出知識圖譜之后,我們還可以使用沉淀出的知識來進一步增強模型,使得模型能夠構建出更好的知識圖譜。整個流程中最核心的兩個模塊是樣本收集和模型訓練。接下來會著重介紹模型訓練中知識增強的相關技術以及樣本收集階段有關樣本治理的工作。
1. 商品標題解析
首先,來介紹一下“商品標題解析”。商品的標題一般會包含品牌、品類等有意義的信息。對標題信息的識別可以建模為實體識別任務。我們首先使用bert+CRF做了實體識別任務的baseline,得到了一些相對有意義的結果。但是,這一方法存在以下問題:
商品中品類、品牌垂域特有的詞匯較多。如“伊利”“安慕?!薄八崮獭边@一例子,若模型沒有見過“伊利”、“安慕?!边@一類詞匯,它很難對標題做出正確的切分;
消歧需要依賴常識知識。比如“樂事”“黃瓜”“薯片”這一例子,“黃瓜”可以是一個品類或者是一個口味,這需要知識來輔助模型進行正確地消歧;
標注數(shù)據(jù)少且含有較多噪音。這是因為實體識別任務標注難度較大,所以樣本中難免包含錯誤信息。這就意味著我們的模型不能僅僅依賴標注的數(shù)據(jù)來進行實體識別任務,還應適當?shù)匾胪獠康闹R作為輔助。
已有一些方法可以通過外部詞匯信息來提升實體識別的效果。Soft lexicon通過外部語料進行預訓練得到字向量,然后通過每一個字來確定相關詞匯,隨后將每一個相關詞匯通過其在句子中的位置進行分桶。同一個桶內的詞匯會進行聚合操作,不同桶的詞匯會進行拼接。最后,將處理完畢的向量進行編碼傳入如transformer、bi-lstm等模型。這一方法可以將外部詞匯信息融入至模型中。LexBert不僅使用了詞匯信息,還使用了詞匯的類型信息。它將識別出的詞匯和其對應的詞匯類型在原文本中進行標記,或者將標記的詞匯使用位置編碼的方式拼接在原文本之后,對應的編碼與原文本的詞匯進行對齊。通過上述簡單的處理方式,LexBert將詞匯和類型信息引入到模型中。此外還有其他詞匯增強類模型,不再一一贅述。
經過實驗,我們發(fā)現(xiàn)上述方法對實體識別的效果僅有有限的提升。這是因為在我們的場景中:(1)詞匯歧義問題嚴重;(2)商品標題短,使得它提供的有用信息較少;(3)標注數(shù)據(jù)少且存在噪聲,無法有效地對引入的詞匯進行消歧。因此,我們需要考慮引入更多的知識來幫助模型作出判斷。
我們提出了基于圖譜結構的知識增強。對于詞匯層面,我們借鑒了soft lexicon的做法,將圖譜節(jié)點作為詞典引入模型中;對于類型層面,我們分別對不同圖譜類型下的字、詞進行了向量表征,使他們在不同類型中具有區(qū)分性;此外,我們還考慮了圖譜中包含的關系信息,將圖譜中的實體與關系信息構造成一個圖,采用圖學習的方法將關系知識映射到字和詞的向量表征中。最后,我們將這些信息在輸入端進行融合。通過這種方式,我們緩解了詞匯歧義問題,但是歧義問題并沒有完全地被解決。
雖然我們在前述方法中將所有可以利用的外部知識都融入了模型中,但是模型并沒有真正學習到這些額外知識。究其原因,是因為我們在構圖、圖學習以及信息融合階段都會造成信息損失,而這些損失很難被衡量與控制。因此,我們考慮采用一種可解釋可控的方法,并迎合工業(yè)級的產品要求,使得模型可以被在線干預,例如在發(fā)現(xiàn)一些bad case后可以改動一些配置來快速地解決一類問題。
我們提出了基于圖譜錨點的知識增強,其動機總結為以下三點:
通過衡量在當前的商品下詞匯的相關度,顯式地對詞匯進行消岐,使這個過程變得可解釋;
通過融入容易獲得的知識z作為錨點,計算商品到知識z的分布和詞匯到知識z的分布,間接地得到商品與詞匯的關聯(lián);
通過融合統(tǒng)計特征作為先驗知識,達到在線可控的目的。例如對于一個新詞或者發(fā)現(xiàn)一類有錯誤的詞匯,我們可以通過改變其對應的統(tǒng)計特征來在線干預一類問題。
具體地,這里我們選擇類目知識作為錨點。在實體識別任務中,類目是具有區(qū)分性的知識,例如“玫瑰”更可能在“鮮花”類目中出現(xiàn),而“葡萄”更可能在生鮮類目中出現(xiàn),那么我們通過類目就可以將“玫瑰葡萄”做一個區(qū)分。商品的類目可以通過商家運營或訓練分類模型得到,也是商品圖譜的一部分,并且這個過程相對容易,準確率也高。詞匯的類目分布可以由商品的類目統(tǒng)計得到。通過將商品的類目分布與詞匯的類目分布的乘積,我們就可以得到基于類目知識錨點的詞匯與商品的相關性。隨后,我們可以顯式地建模消歧過程,這一模塊分為兩部分:基于上下文消歧和基于圖譜錨點消歧。
基于圖譜錨點消歧的上面介紹過了?;谏舷挛南缃梃b了DyLex的方法,使用上下文信息經過soft attention與一個分類器建模當前商品與詞匯的相關性。兩個相關性分數(shù)經過線性加權的方式進行融合,加權參數(shù)代表上下文信息的置信度(若上下文信息越置信,則參數(shù)越大,模型更偏向利用上下文信息)。最后我們通過attention_mask將相關性分布融入實體識別模型中,其中soft fusion直接使用相關性得分,hard fusion通過預先定義的閾值進行0-1化處理再進行使用。
經過實驗,我們發(fā)現(xiàn)若僅使用soft lexicon的方法融入詞匯信息,實體識別的指標上升了1PP;使用LexBert額外融入詞匯類型信息,指標提升了1.5PP;使用圖譜結果融入詞匯、類型以及關系信息后提升達到了2PP(但是無法做到在線更新,可解釋性不足);基于圖譜錨點的方法的性能提升最為明顯,達到了4PP,而且它可以做到在線干預。
通過上述方法的迭代,我們發(fā)現(xiàn)將知識產生影響的鏈路做得更加透明可以使得知識得到更有效的利用,模型變得更可解釋,在線可控性強。它的優(yōu)點在于我們可以更容易分析問題,知道模型的“天花板”在哪里;此外模型更容易更新,維護成本較低;最后,模型可以被快速地被干預,及時響應業(yè)務需求。
2. 商品品類關聯(lián)
下面介紹一下知識圖譜在商品品類關聯(lián)中的應用。商品品類是商品的本質,例如牛肉、牛奶、蘋果等。對于每個商品,給定候選品類詞,商品品類關聯(lián)任務旨在判斷品類和商品是否相關(isA關系)。比如“蒙牛草莓酸牛奶250ml”是一個酸牛奶、酸奶、乳制品,但不是一個草莓也不是一個牛奶。這個任務的難點可以分為兩類。首先,兩個不相關的詞匯有字面上的包含關系,具有邊界歧義或類型歧義。其次,兩個相關的詞匯字面上不相關,存在泛品類、上位詞或者同義詞關系。通過分析問題,我們發(fā)現(xiàn)以上問題都可以通過融合圖譜知識進行解決,包括實體識別、類目識別、同義詞/上下位關系識別等能力。于是,任務的重心就轉變?yōu)槿绾卫脠D譜知識。
經過調研,我們總結了知識圖譜融合的三個階段。第一階段是預訓練階段,它通過多任務等方式將知識融入預訓練模型中,再間接地傳遞給下游任務。它的優(yōu)點在于對下游任務改動較小,所以更加通用,但是它存在一定的信息損失,下游任務容易遺忘知識,且知識更新的代價很大(需要重新訓練模型)。第二階段是微調階段,它通過樣本增強的方法融入知識,更顯式地讓模型記住知識信息。它的優(yōu)點在于融入的知識可控且不容易被模型遺忘,但是樣本增強會引入噪聲,影響訓練數(shù)據(jù)的分布,且知識更新的代價較大。第三階段是在線/預測階段,它使用知識直接作為模型輸入。它的優(yōu)點是知識在線可控,且可以達到在線更新的效果,但是這一方法對知識的準確率要求高,需要探索如何有效利用外部知識。
在預訓練階段,我們引入了商品領域的數(shù)據(jù)進行對bert預訓練。這里我們只采用了MLM任務,得到了1.4PP的提升。此外,考慮到搜索場景和品類關聯(lián)任務的相似性,我們使用線上點擊日志進一步增強NSP任務,得到了0.5PP的提升。在微調階段,我們通過圖譜中實體、類目、同義詞等數(shù)據(jù)構造正負樣本,并平衡樣本分布,得到了2.6PP的提升。但是繼續(xù)增加類似的樣本對效果提升不大,這是因為此時繼續(xù)構造樣本帶來的噪聲已經大于收益。
接下來,我們考慮了在在線階段進行知識融合的方法。工業(yè)界與學術界已經有類似的方法,比如Google在2020年提出了REALM,它針對的是QA任務。首先,它會對query進行向量檢索,找到相關文檔;隨后,它將相關文檔進行拼接,通過文本抽取的方式得到最后的答案。此外,KELM模型融合了一個外部知識庫,將知識庫中的相關知識對預設的模板進行填充,再使用語言模型進行潤色,得到更多樣性的知識表征。
Knowledge-to-Text方法將上述兩個方法進行了融合,同時考慮了模板拼接與文檔檢索。實驗結果表明使用模板拼接的方法已經可以取得較好的結果,說明引入足夠多的外部知識在QA任務中模型性能的提升幫助很大。此外,我們注意到,顯式地將外部知識直接拼接為一個句子作為輸入與采用GNN隱式建模知識的方法都可以得到相近的效果。也有研究指出通過GNN的知識建模方法的關鍵在于如何構建子圖。
在商品品類關聯(lián)任務中,我們借鑒了上述思路,直接將相關圖譜知識拍平喂入模型中,并調整了位置編碼。以上圖例子來闡述我們的思路。商品的品類是“四季豆”,標題是“山東優(yōu)質現(xiàn)摘扁青250g”,我們的目標是判斷它們之間是否存在關聯(lián)關系。
我們面對的核心問題是如何構建子圖,并由于我們需要在線進行知識融合,構建子圖的速度需要足夠快。我們考慮將商品類目的知識與同義詞/上下位知識融入模型。前者較為簡單,我們直接將商品類目在標題中識別并拼接在標題后即可。后者較為復雜,因為如果簡單地將一“跳”的圖譜上下位信息拼接在標題后是不足以對標題進行消歧的;但是如果將所有“跳”的圖譜關系都融入輸入,信息量過多且存在很多噪聲。
因此,我們選擇融入品類和商品標題解析后的品類實體或者類目之間的最短關聯(lián)路徑組成的子圖。具體地,我們通過同義詞和上位關系進行構圖,使用Floyd+SPFA算法計算每對節(jié)點的最短路徑。為了達到快速地在線知識融合,我們離線預處理所有品類關系。通過這一方法,我們的模型效果在預訓練與樣本增強的基礎上又進一步提升了1.4PP。這一結果讓我們看到了在線知識融合的潛力,它可以更直接地將知識融入模型中,使得信息損失相對較少,并且能做到在線干預,是一個后期值得繼續(xù)探索的思路。
接下來,來介紹一下樣本治理的相關工作。我們都知道人工智能的核心是模型+數(shù)據(jù),二者缺一不可。在工業(yè)界實際問題中,數(shù)據(jù)帶來的效果和效率的提升常常大于模型,所以我們很重視數(shù)據(jù)治理方面的經驗積累。一個樣本治理的通用框架如上圖所示。首先我們從未標注的數(shù)據(jù)中采樣一些數(shù)據(jù)進行標注,然后進行數(shù)據(jù)質檢,生成標注數(shù)據(jù),之后我們會通過樣本增強的方法進一步優(yōu)化樣本,并使用它們進行模型的訓練。由于訓練數(shù)據(jù)并不一定保證百分之百準確,所以我們還需要在模型訓練后進行錯誤標注檢測,對標注錯誤的數(shù)據(jù)進行進一步采樣與標注,從而形成一個正向循環(huán),使得模型質量與樣本質量進一步增強。在這個框架中,標注數(shù)據(jù)采樣與錯誤標注檢測模塊十分重要。
首先介紹標注數(shù)據(jù)采樣。標注是有代價的,所以我們希望用盡量少的人力、盡量快的速度來最大化標注數(shù)據(jù)的價值。通常我們會使用主動學習的方法,選擇模型預測低置信的數(shù)據(jù)來進行標注。例如對于分類問題,預測分數(shù)在(0.4,0.6)這一區(qū)間內的樣本就被認為是低置信的數(shù)據(jù)。但是這一方法存在以下問題:
(1)預測分數(shù)缺乏區(qū)分度,不能作為置信度,尤其是在使用預訓練模型時,它給出的分數(shù)通常趨于極端,導致我們很難選擇出低置信度的數(shù)據(jù);
(2)預測高置信部分也存在誤識別,同時我們也更希望標注這些高置信度的錯誤樣本;
(3)錯誤的樣本分布較為集中,導致我們在標注采樣時很容易采樣到很多相似的樣本,造成標注冗余。
針對前述三個問題,我們設計了對于主動學習方法的改進思路。
首先,我們對模型預測分數(shù)進行了校準,使得其分布更具有區(qū)分性。具體地,我們使用了label smoothing的方法,其理論解釋較優(yōu)雅且對模型侵入性低。校準后的數(shù)據(jù)相較于原始數(shù)據(jù)分布會向中間區(qū)間靠攏,并且更具有區(qū)分性。此外,label smoothing后依然位于高置信區(qū)間的數(shù)據(jù)的分類準確率也有了一定提升。
然后,我們對候選樣本進行預測,通過將相似樣本進行聚類,采樣有代表性的樣本,從而減少冗余標注。對于每個類內的采樣時,我們不僅會采樣低置信樣本,還會采樣一些高置信的樣本,使得高置信但識別錯誤的數(shù)據(jù)有一定幾率被人工標注。
最后,待標注的數(shù)據(jù)提交給標注人員完成標注,再返回給模型訓練提升效果;之后再進一步篩選下一階段待標注樣本,不斷迭代提升。
從實驗結果來看,我們使用少量的標準數(shù)據(jù)就可以達到相較于隨機采樣更好的模型準確率;并且,隨著樣本標注量的增長,主動學習的質量依然優(yōu)于隨機采樣。
現(xiàn)在來介紹另一個重要的模塊:錯誤樣本檢測。
雖然我們已經對數(shù)據(jù)進行了層層標注和質檢,但是我們依然無法保證數(shù)據(jù)被百分之百地標注正確,所以我們需要對其進行進一步校驗。對于錯誤標注較少的數(shù)據(jù),我們可以通過K折交叉驗證的方法訓練多個模型進行預測,將預測一致性低的數(shù)據(jù)和與標注標簽不同的數(shù)據(jù)作為潛在錯誤樣本。對于錯誤標注較多的數(shù)據(jù)(極端情況下,錯誤樣本數(shù)量比正確樣本數(shù)量還要多),我們先清洗出一份規(guī)模小、質量高的數(shù)據(jù)來訓練模型。之后將這一模型的預測作為label,結合其他可利用的特征,來驗證剩余數(shù)據(jù)的一致性,發(fā)現(xiàn)潛在錯誤樣本。通過這一方法可以糾正大部分錯誤標注,那么此時剩余的錯誤樣本屬于較難分辨的少量錯誤樣本,可以使用交叉驗證的方法做進一步校正。
我們還探索了其他方法來改進錯誤樣本檢測。
首先,我們可以采用“遺忘次數(shù)”,即本輪識別正確但后續(xù)輪數(shù)識別錯誤的次數(shù)。有研究表明噪聲樣本是模型最容易遺忘的,因為模型無法記憶那些本身就是錯誤的少量樣本。如上圖分布圖所示,紅色柱狀圖即為錯誤樣本的遺忘次數(shù)分布,綠色柱狀圖對應正確樣本的遺忘次數(shù),可以發(fā)現(xiàn)錯誤樣本的遺忘次數(shù)明顯高于正確樣本的遺忘次數(shù)。因此,我們可以統(tǒng)計“遺忘次數(shù)”來區(qū)分噪聲樣本。
對于多分類問題,我們還可以使用“置信學習”中的混淆矩陣進行進一步優(yōu)化。因為對于多分類任務,模型往往會在個別類別中出現(xiàn)混淆,所以我們可以通過計算驗證集上識別的混淆矩陣,有傾向地多采樣易混淆類別之間的樣本。
此外,我們自己通過經驗探索出基于多任務檢測的錯誤樣本檢測方法。在單任務標注較少且樣本錯誤很難被識別的情況下,我們可以通過多個相似任務的聯(lián)合訓練來輔助單任務檢測出其樣本中的錯誤標注。我們在實驗過程中發(fā)現(xiàn),通過多任務檢測方法將單任務的樣本識別并糾正后,單任務模型的訓練效果甚至可以達到多任務聯(lián)合訓練的訓練效果。在樣本多樣性充足的情況下(例如經過主動學習采樣),這一過程相當于將多任務聯(lián)合訓練的知識融入了標注樣本。
這里對知識圖譜的應用做一個小結:
知識增強:介紹了如何充分利用圖譜知識豐富信息,并借助容易獲取的知識來解決較難的任務。進一步地,我們將知識融合分為三個階段,并進行相應使用的介紹。從結果來看,知識增強能有效提升模型效果,并使模型解釋性更強,并且在線可控,適合工業(yè)界需求,其潛力仍待挖掘。
樣本治理:介紹了標注數(shù)據(jù)采樣和錯誤樣本檢測的經驗和方法。模型與數(shù)據(jù)是缺一不可的,樣本治理的工作應當受到重視并得到積累。
下面來簡單介紹一些商品圖譜的落地應用。商品圖譜在商品優(yōu)化專項之初就啟動建設,其落地范圍廣泛,相關場景包括:數(shù)據(jù)治理、模型增強、產品優(yōu)化、分析決策等。
比如在搜索場景下,用戶輸入“可愛多草莓”這個query,模型可能會誤識別為“草莓”這個品類,但實際上用戶想搜索“可愛多冰激凌”,而“草莓”只是一個口味。這時,我們可以分別在查詢理解端和數(shù)據(jù)檢索端融入商品圖譜知識,使模型正確識別出“可愛多”是一個品牌,“草莓”是一個口味,而用戶搜索的重點在于“可愛多”冰激凌上。通過引入圖譜知識,我們可以有效地降低不相關的誤召回。
相同的圖譜知識還可以使用在排序模型的相關性上。比如用戶搜索“水”,誤召回會顯示“水洗胡蘿卜”。有可能“水洗胡蘿卜”在召回過程中無法被完全過濾,但是我們可以通過排序將其放置在末尾,解決用戶體驗不好的問題。具體地,我們可以將圖譜的品類信息融入排序特征中,從而使得品類不相關的商品的排序分數(shù)降低。
除了召回-排序鏈路,我們還將圖譜知識融入商品結構化信息展示中,比如商品篩選項、商品推薦理由、商品標簽展示、商品榜單等。
本次分享我們以美團大腦中的商品領域知識圖譜為例,介紹了如何利用知識圖譜數(shù)據(jù)實現(xiàn)更加精準的商品理解,從而更好的支持下游搜推應用,同時反哺知識圖譜的進行更加準確的數(shù)據(jù)建設。從結果來看,知識增強能切實有效地提升模型效果,并使模型更可解釋并且在線可控,適合工業(yè)界需求,其潛力仍待挖掘。
美團大腦是正在構建中的全球最大的生活服務領域知識圖譜,除了商品領域以外,美團大腦也覆蓋了餐飲、酒店、旅游等領域,我們后續(xù)也會就其他領域、其他技術方向,持續(xù)為大家分享美團在知識圖譜方面的工作。
美團大腦知識圖譜團隊大量崗位持續(xù)招聘中,實習、校招、社招均可,坐標北京/上海,歡迎感興趣的同學加入我們,利用自然語言和知識圖譜技術,幫大家吃得更好,生活更好。簡歷可投遞至:chenfengjiao02@meituan.com。
Q:知識圖譜上的邊(關系)是通過什么方式定義的?
A:圖譜中的關系是預先定義的。定義會參考對業(yè)務的理解設定。比如說,我們在圖譜體系拆分為多個層級體系的原因之一是業(yè)務需求,它促使我們將商品分為不同粒度的層級。當然,我們還會根據(jù)商品的客觀屬性定義其他維度的關系。
Q:如何保證知識圖譜的質量?
A:在我們的圖譜體系中,由于商品SPU已經達到數(shù)十億量級,所以它與商品的關聯(lián)無法一個個進行人工審核。此時,我們會設置一些benchmark,并做定期的抽檢來保證圖譜的整體準確率在90%以上,關鍵數(shù)據(jù)可以達到95%。對于層級體系中品類與業(yè)務類目,它的數(shù)量并不是很多,并且由于它處于層級體系的上游,所以它的準確性對于下游任務十分重要。為了避免錯誤傳遞,我們會使用人工審核來確保高準確率。
今天的分享就到這里,謝謝大家。
在文末分享、點贊、在看,給個3連擊唄~
分享嘉賓:
免費福利:
活動推薦:
關于我們:
??分享、點贊、在看,給個3連擊唄!??