美團知識圖譜與商品理解

美團大腦是正在構建中的全球最大的生活服務領域知識圖譜。隨着美團新零售場景的擴展,美團大腦中圍繞商品領域的知識圖譜逐步建立,並廣泛應用於搜索、推薦、廣告和運營等場景。

本次分享將着重介紹如何利用美團大腦中已建設的商品圖譜,發揮知識數據的價值,提供更加精準的商品理解能力。

由此所建立的更加精準的商品理解能力,一方面會應用於搜推等下游場景,另一方面也會反哺到商品圖譜的數據建設,通過已有知識不斷提升自身,伴隨業務一同成長。

以下將圍繞下面四點展開:

01

美團大腦簡介

首先和大家簡單介紹一下美團大腦。

美團大腦是正在構建中的全球最大的生活服務領域知識圖譜,用人工智能技術賦能業務,改進用戶體驗。我們希望幫大家喫得更好,生活更好。

美團大腦包含了餐飲、商品、藥品、酒旅、到綜、常識等各領域的圖譜。接下來將主要介紹美團在新零售場景下利用知識圖譜進行商品理解。

美團的新零售場景包含:美團外賣、閃購、買菜、優選、團好貨、快驢、買藥,逐步實現了 “萬物到家” 的願景。在此場景下,商品數量更多、覆蓋領域更寬,如生鮮 / 果蔬、鮮花 / 綠植、酒水 / 衝調等,但是我們可以顯式地利用的信息很少(標題、圖片)。我們需要從這些信息中抽取出結構化數據(如品牌、口味、產地等)和商品之間的上下位信息,纔可以將它們更好地賦能於下游應用,包括搜索中的精確篩選以及無結果的擴召回。總而言之,美團的新零售場景更加依賴知識圖譜,所以商品知識圖譜在新零售領域發展之初就着手構架。

商品知識圖譜分爲層級體系和屬性體系。層級體系用於解決不同業務方、不同使用場景中,“商品”的含義不同的問題。最細粒度的層級是商品的 SKU/SPU,如 “蒙牛高鈣牛奶 500ml”;最粗粒度的層級爲業務類目,例如“牛奶”、“飲品”、“乳品”。其中,圖譜品類是非常重要的層級,它是商品的本質,是承載了用戶精細需求的商品粒度,例如“高鈣牛奶”、“純牛奶” 等。構建圖譜品類的核心任務是做商品的品類關聯。屬性體系包含如品牌、規格、包裝等通用維度屬性,以及如脂肪含量、電池型號等特有維度的屬性。它的核心任務是做商品標題解析,因爲大部分商品標題都包含了豐富的屬性信息。

商品知識圖譜的構建流程如上圖所示。大致的流程爲:構建語料庫 -> 樣本收集 -> 模型訓練 -> 預測產出 -> 生成知識圖譜。在構建出知識圖譜之後,我們還可以使用沉澱出的知識來進一步增強模型,使得模型能夠構建出更好的知識圖譜。整個流程中最核心的兩個模塊是樣本收集和模型訓練。接下來會着重介紹模型訓練中知識增強的相關技術以及樣本收集階段有關樣本治理的工作。

02

知識增強的商品理解

1. 商品標題解析

首先,來介紹一下 “商品標題解析”。商品的標題一般會包含品牌、品類等有意義的信息。對標題信息的識別可以建模爲實體識別任務。我們首先使用 bert+CRF 做了實體識別任務的 baseline,得到了一些相對有意義的結果。但是,這一方法存在以下問題:

已有一些方法可以通過外部詞彙信息來提升實體識別的效果。Soft lexicon 通過外部語料進行預訓練得到字向量,然後通過每一個字來確定相關詞彙,隨後將每一個相關詞彙通過其在句子中的位置進行分桶。同一個桶內的詞彙會進行聚合操作,不同桶的詞彙會進行拼接。最後,將處理完畢的向量進行編碼傳入如 transformer、bi-lstm 等模型。這一方法可以將外部詞彙信息融入至模型中。LexBert 不僅使用了詞彙信息,還使用了詞彙的類型信息。它將識別出的詞彙和其對應的詞彙類型在原文本中進行標記,或者將標記的詞彙使用位置編碼的方式拼接在原文本之後,對應的編碼與原文本的詞彙進行對齊。通過上述簡單的處理方式,LexBert 將詞彙和類型信息引入到模型中。此外還有其他詞彙增強類模型,不再一一贅述。

經過實驗,我們發現上述方法對實體識別的效果僅有有限的提升。這是因爲在我們的場景中:(1)詞彙歧義問題嚴重;(2)商品標題短,使得它提供的有用信息較少;(3)標註數據少且存在噪聲,無法有效地對引入的詞彙進行消歧。因此,我們需要考慮引入更多的知識來幫助模型作出判斷。

我們提出了基於圖譜結構的知識增強。對於詞彙層面,我們借鑑了 soft lexicon 的做法,將圖譜節點作爲詞典引入模型中;對於類型層面,我們分別對不同圖譜類型下的字、詞進行了向量表徵,使他們在不同類型中具有區分性;此外,我們還考慮了圖譜中包含的關係信息,將圖譜中的實體與關係信息構造成一個圖,採用圖學習的方法將關係知識映射到字和詞的向量表徵中。最後,我們將這些信息在輸入端進行融合。通過這種方式,我們緩解了詞彙歧義問題,但是歧義問題並沒有完全地被解決。

雖然我們在前述方法中將所有可以利用的外部知識都融入了模型中,但是模型並沒有真正學習到這些額外知識。究其原因,是因爲我們在構圖、圖學習以及信息融合階段都會造成信息損失,而這些損失很難被衡量與控制。因此,我們考慮採用一種可解釋可控的方法,並迎合工業級的產品要求,使得模型可以被在線干預,例如在發現一些 bad case 後可以改動一些配置來快速地解決一類問題。

我們提出了基於圖譜錨點的知識增強,其動機總結爲以下三點:

具體地,這裏我們選擇類目知識作爲錨點。在實體識別任務中,類目是具有區分性的知識,例如 “玫瑰” 更可能在 “鮮花” 類目中出現,而 “葡萄” 更可能在生鮮類目中出現,那麼我們通過類目就可以將 “玫瑰葡萄” 做一個區分。商品的類目可以通過商家運營或訓練分類模型得到,也是商品圖譜的一部分,並且這個過程相對容易,準確率也高。詞彙的類目分佈可以由商品的類目統計得到。通過將商品的類目分佈與詞彙的類目分佈的乘積,我們就可以得到基於類目知識錨點的詞彙與商品的相關性。隨後,我們可以顯式地建模消歧過程,這一模塊分爲兩部分:基於上下文消歧和基於圖譜錨點消歧。

基於圖譜錨點消歧的上面介紹過了。基於上下文消歧借鑑了 DyLex 的方法,使用上下文信息經過 soft attention 與一個分類器建模當前商品與詞彙的相關性。兩個相關性分數經過線性加權的方式進行融合,加權參數代表上下文信息的置信度(若上下文信息越置信,則參數越大,模型更偏向利用上下文信息)。最後我們通過 attention_mask 將相關性分佈融入實體識別模型中,其中 soft fusion 直接使用相關性得分,hard fusion 通過預先定義的閾值進行 0-1 化處理再進行使用。

經過實驗,我們發現若僅使用 soft lexicon 的方法融入詞彙信息,實體識別的指標上升了 1PP;使用 LexBert 額外融入詞彙類型信息,指標提升了 1.5PP;使用圖譜結果融入詞彙、類型以及關係信息後提升達到了 2PP(但是無法做到在線更新,可解釋性不足);基於圖譜錨點的方法的性能提升最爲明顯,達到了 4PP,而且它可以做到在線干預。

通過上述方法的迭代,我們發現將知識產生影響的鏈路做得更加透明可以使得知識得到更有效的利用,模型變得更可解釋,在線可控性強。它的優點在於我們可以更容易分析問題,知道模型的 “天花板” 在哪裏;此外模型更容易更新,維護成本較低;最後,模型可以被快速地被幹預,及時響應業務需求。

2. 商品品類關聯

下面介紹一下知識圖譜在商品品類關聯中的應用。商品品類是商品的本質,例如牛肉、牛奶、蘋果等。對於每個商品,給定候選品類詞,商品品類關聯任務旨在判斷品類和商品是否相關(isA 關係)。比如 “蒙牛草莓酸牛奶 250ml” 是一個酸牛奶、酸奶、乳製品,但不是一個草莓也不是一個牛奶。這個任務的難點可以分爲兩類。首先,兩個不相關的詞彙有字面上的包含關係,具有邊界歧義或類型歧義。其次,兩個相關的詞彙字面上不相關,存在泛品類、上位詞或者同義詞關係。通過分析問題,我們發現以上問題都可以通過融合圖譜知識進行解決,包括實體識別、類目識別、同義詞 / 上下位關係識別等能力。於是,任務的重心就轉變爲如何利用圖譜知識。

經過調研,我們總結了知識圖譜融合的三個階段。第一階段是預訓練階段,它通過多任務等方式將知識融入預訓練模型中,再間接地傳遞給下游任務。它的優點在於對下游任務改動較小,所以更加通用,但是它存在一定的信息損失,下游任務容易遺忘知識,且知識更新的代價很大(需要重新訓練模型)。第二階段是微調階段,它通過樣本增強的方法融入知識,更顯式地讓模型記住知識信息。它的優點在於融入的知識可控且不容易被模型遺忘,但是樣本增強會引入噪聲,影響訓練數據的分佈,且知識更新的代價較大。第三階段是在線 / 預測階段,它使用知識直接作爲模型輸入。它的優點是知識在線可控,且可以達到在線更新的效果,但是這一方法對知識的準確率要求高,需要探索如何有效利用外部知識。

在預訓練階段,我們引入了商品領域的數據進行對 bert 預訓練。這裏我們只採用了 MLM 任務,得到了 1.4PP 的提升。此外,考慮到搜索場景和品類關聯任務的相似性,我們使用線上點擊日誌進一步增強 NSP 任務,得到了 0.5PP 的提升。在微調階段,我們通過圖譜中實體、類目、同義詞等數據構造正負樣本,並平衡樣本分佈,得到了 2.6PP 的提升。但是繼續增加類似的樣本對效果提升不大,這是因爲此時繼續構造樣本帶來的噪聲已經大於收益。

接下來,我們考慮了在在線階段進行知識融合的方法。工業界與學術界已經有類似的方法,比如 Google 在 2020 年提出了 REALM,它針對的是 QA 任務。首先,它會對 query 進行向量檢索,找到相關文檔;隨後,它將相關文檔進行拼接,通過文本抽取的方式得到最後的答案。此外,KELM 模型融合了一個外部知識庫,將知識庫中的相關知識對預設的模板進行填充,再使用語言模型進行潤色,得到更多樣性的知識表徵。

Knowledge-to-Text 方法將上述兩個方法進行了融合,同時考慮了模板拼接與文檔檢索。實驗結果表明使用模板拼接的方法已經可以取得較好的結果,說明引入足夠多的外部知識在 QA 任務中模型性能的提升幫助很大。此外,我們注意到,顯式地將外部知識直接拼接爲一個句子作爲輸入與採用 GNN 隱式建模知識的方法都可以得到相近的效果。也有研究指出通過 GNN 的知識建模方法的關鍵在於如何構建子圖。

在商品品類關聯任務中,我們借鑑了上述思路,直接將相關圖譜知識拍平喂入模型中,並調整了位置編碼。以上圖例子來闡述我們的思路。商品的品類是 “四季豆”,標題是 “山東優質現摘扁青 250g”,我們的目標是判斷它們之間是否存在關聯關係。

我們面對的核心問題是如何構建子圖,並由於我們需要在線進行知識融合,構建子圖的速度需要足夠快。我們考慮將商品類目的知識與同義詞 / 上下位知識融入模型。前者較爲簡單,我們直接將商品類目在標題中識別並拼接在標題後即可。後者較爲複雜,因爲如果簡單地將一 “跳” 的圖譜上下位信息拼接在標題後是不足以對標題進行消歧的;但是如果將所有 “跳” 的圖譜關係都融入輸入,信息量過多且存在很多噪聲。

因此,我們選擇融入品類和商品標題解析後的品類實體或者類目之間的最短關聯路徑組成的子圖。具體地,我們通過同義詞和上位關係進行構圖,使用 Floyd+SPFA 算法計算每對節點的最短路徑。爲了達到快速地在線知識融合,我們離線預處理所有品類關係。通過這一方法,我們的模型效果在預訓練與樣本增強的基礎上又進一步提升了 1.4PP。這一結果讓我們看到了在線知識融合的潛力,它可以更直接地將知識融入模型中,使得信息損失相對較少,並且能做到在線干預,是一個後期值得繼續探索的思路。

03

樣本治理

接下來,來介紹一下樣本治理的相關工作。我們都知道人工智能的核心是模型 + 數據,二者缺一不可。在工業界實際問題中,數據帶來的效果和效率的提升常常大於模型,所以我們很重視數據治理方面的經驗積累。一個樣本治理的通用框架如上圖所示。首先我們從未標註的數據中採樣一些數據進行標註,然後進行數據質檢,生成標註數據,之後我們會通過樣本增強的方法進一步優化樣本,並使用它們進行模型的訓練。由於訓練數據並不一定保證百分之百準確,所以我們還需要在模型訓練後進行錯誤標註檢測,對標註錯誤的數據進行進一步採樣與標註,從而形成一個正向循環,使得模型質量與樣本質量進一步增強。在這個框架中,標註數據採樣與錯誤標註檢測模塊十分重要。

首先介紹標註數據採樣。標註是有代價的,所以我們希望用盡量少的人力、儘量快的速度來最大化標註數據的價值。通常我們會使用主動學習的方法,選擇模型預測低置信的數據來進行標註。例如對於分類問題,預測分數在 (0.4,0.6) 這一區間內的樣本就被認爲是低置信的數據。但是這一方法存在以下問題:

(1)預測分數缺乏區分度,不能作爲置信度,尤其是在使用預訓練模型時,它給出的分數通常趨於極端,導致我們很難選擇出低置信度的數據;

(2)預測高置信部分也存在誤識別,同時我們也更希望標註這些高置信度的錯誤樣本;

(3)錯誤的樣本分佈較爲集中,導致我們在標註採樣時很容易採樣到很多相似的樣本,造成標註冗餘。

針對前述三個問題,我們設計了對於主動學習方法的改進思路。

首先,我們對模型預測分數進行了校準,使得其分佈更具有區分性。具體地,我們使用了 label smoothing 的方法,其理論解釋較優雅且對模型侵入性低。校準後的數據相較於原始數據分佈會向中間區間靠攏,並且更具有區分性。此外,label smoothing 後依然位於高置信區間的數據的分類準確率也有了一定提升。

然後,我們對候選樣本進行預測,通過將相似樣本進行聚類,採樣有代表性的樣本,從而減少冗餘標註。對於每個類內的採樣時,我們不僅會採樣低置信樣本,還會採樣一些高置信的樣本,使得高置信但識別錯誤的數據有一定幾率被人工標註。

最後,待標註的數據提交給標註人員完成標註,再返回給模型訓練提升效果;之後再進一步篩選下一階段待標註樣本,不斷迭代提升。

從實驗結果來看,我們使用少量的標準數據就可以達到相較於隨機採樣更好的模型準確率;並且,隨着樣本標註量的增長,主動學習的質量依然優於隨機採樣。

現在來介紹另一個重要的模塊:錯誤樣本檢測。

雖然我們已經對數據進行了層層標註和質檢,但是我們依然無法保證數據被百分之百地標註正確,所以我們需要對其進行進一步校驗。對於錯誤標註較少的數據,我們可以通過 K 折交叉驗證的方法訓練多個模型進行預測,將預測一致性低的數據和與標註標籤不同的數據作爲潛在錯誤樣本。對於錯誤標註較多的數據(極端情況下,錯誤樣本數量比正確樣本數量還要多),我們先清洗出一份規模小、質量高的數據來訓練模型。之後將這一模型的預測作爲 label,結合其他可利用的特徵,來驗證剩餘數據的一致性,發現潛在錯誤樣本。通過這一方法可以糾正大部分錯誤標註,那麼此時剩餘的錯誤樣本屬於較難分辨的少量錯誤樣本,可以使用交叉驗證的方法做進一步校正。

我們還探索了其他方法來改進錯誤樣本檢測。

首先,我們可以採用 “遺忘次數”,即本輪識別正確但後續輪數識別錯誤的次數。有研究表明噪聲樣本是模型最容易遺忘的,因爲模型無法記憶那些本身就是錯誤的少量樣本。如上圖分佈圖所示,紅色柱狀圖即爲錯誤樣本的遺忘次數分佈,綠色柱狀圖對應正確樣本的遺忘次數,可以發現錯誤樣本的遺忘次數明顯高於正確樣本的遺忘次數。因此,我們可以統計“遺忘次數” 來區分噪聲樣本。

對於多分類問題,我們還可以使用 “置信學習” 中的混淆矩陣進行進一步優化。因爲對於多分類任務,模型往往會在個別類別中出現混淆,所以我們可以通過計算驗證集上識別的混淆矩陣,有傾向地多采樣易混淆類別之間的樣本。

此外,我們自己通過經驗探索出基於多任務檢測的錯誤樣本檢測方法。在單任務標註較少且樣本錯誤很難被識別的情況下,我們可以通過多個相似任務的聯合訓練來輔助單任務檢測出其樣本中的錯誤標註。我們在實驗過程中發現,通過多任務檢測方法將單任務的樣本識別並糾正後,單任務模型的訓練效果甚至可以達到多任務聯合訓練的訓練效果。在樣本多樣性充足的情況下(例如經過主動學習採樣),這一過程相當於將多任務聯合訓練的知識融入了標註樣本。

這裏對知識圖譜的應用做一個小結:

04

商品圖譜的應用

下面來簡單介紹一些商品圖譜的落地應用。商品圖譜在商品優化專項之初就啓動建設,其落地範圍廣泛,相關場景包括:數據治理、模型增強、產品優化、分析決策等。

比如在搜索場景下,用戶輸入 “可愛多草莓” 這個 query,模型可能會誤識別爲 “草莓” 這個品類,但實際上用戶想搜索 “可愛多冰激凌”,而“草莓” 只是一個口味。這時,我們可以分別在查詢理解端和數據檢索端融入商品圖譜知識,使模型正確識別出 “可愛多” 是一個品牌,“草莓”是一個口味,而用戶搜索的重點在於 “可愛多” 冰激凌上。通過引入圖譜知識,我們可以有效地降低不相關的誤召回。

相同的圖譜知識還可以使用在排序模型的相關性上。比如用戶搜索 “水”,誤召回會顯示“水洗胡蘿蔔”。有可能“水洗胡蘿蔔” 在召回過程中無法被完全過濾,但是我們可以通過排序將其放置在末尾,解決用戶體驗不好的問題。具體地,我們可以將圖譜的品類信息融入排序特徵中,從而使得品類不相關的商品的排序分數降低。

除了召回 - 排序鏈路,我們還將圖譜知識融入商品結構化信息展示中,比如商品篩選項、商品推薦理由、商品標籤展示、商品榜單等。

05

總結

本次分享我們以美團大腦中的商品領域知識圖譜爲例,介紹瞭如何利用知識圖譜數據實現更加精準的商品理解,從而更好的支持下游搜推應用,同時反哺知識圖譜的進行更加準確的數據建設。從結果來看,知識增強能切實有效地提升模型效果,並使模型更可解釋並且在線可控,適合工業界需求,其潛力仍待挖掘。

美團大腦是正在構建中的全球最大的生活服務領域知識圖譜,除了商品領域以外,美團大腦也覆蓋了餐飲、酒店、旅遊等領域,我們後續也會就其他領域、其他技術方向,持續爲大家分享美團在知識圖譜方面的工作。

美團大腦知識圖譜團隊大量崗位持續招聘中,實習、校招、社招均可,座標北京 / 上海,歡迎感興趣的同學加入我們,利用自然語言和知識圖譜技術,幫大家喫得更好,生活更好。簡歷可投遞至:chenfengjiao02@meituan.com。

06

精彩問答

Q:知識圖譜上的邊(關係)是通過什麼方式定義的?

A:圖譜中的關係是預先定義的。定義會參考對業務的理解設定。比如說,我們在圖譜體系拆分爲多個層級體系的原因之一是業務需求,它促使我們將商品分爲不同粒度的層級。當然,我們還會根據商品的客觀屬性定義其他維度的關係。

Q:如何保證知識圖譜的質量?

A:在我們的圖譜體系中,由於商品 SPU 已經達到數十億量級,所以它與商品的關聯無法一個個進行人工審覈。此時,我們會設置一些 benchmark,並做定期的抽檢來保證圖譜的整體準確率在 90% 以上,關鍵數據可以達到 95%。對於層級體系中品類與業務類目,它的數量並不是很多,並且由於它處於層級體系的上游,所以它的準確性對於下游任務十分重要。爲了避免錯誤傳遞,我們會使用人工審覈來確保高準確率。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/JM1iHE7-9M4Wibe8qAWBoQ