技术实践 | ICDE2021-大规模知识图谱预训练及电商应用
本文作者 | 張文(浙江大學)、黃志文(阿里巴巴)、葉橄強(浙江大學)、文博(浙江大學)、張偉(阿里巴巴),陳華鈞*(浙江大學)
接收會議 | ICDE2021
轉載公眾號 | ZJUKG (歡迎轉載,轉載請注明出處)
1. 文章導讀
本文介紹了浙江大學阿里巴巴知識引擎聯合實驗室在結構化知識預訓練及電商領域應用方面的工作。該項工作的一部分內容將發表于ICDE2021。
知識廣泛存在于文本、結構化及多種模態的數據中。除了通過抽取技術將知識從原始數據中萃取出來以支持搜索、問答、推理、分析等應用以外,另外一種思路是利用數據中本身存在的基本信號對隱藏的知識進行預訓練。隨著GPT、BERT、XLNET等預訓練語言模型在多項自然語言處理領域任務上都刷新了之前的最好效果,預訓練受到了各界的廣泛關注。預訓練的核心思想是“預訓練和微調”,例如文本預訓練一般包含兩個步驟:首先利用大量的自然語言數據訓練一個語言模型,獲取文本中包含的通用知識信息;然后在下游任務微調階段,針對不同下游任務,設計相應的目標函數,基于相對較少的監督數據進行微調,便可得到不錯的效果。
受預訓練語言模型啟發,我們將“預訓練和微調”的思想應用到了大規模商品知識圖譜的表示學習與業務應用中。在阿里電商平臺,包含千億級三元組和300多萬條規則的商品知識圖譜被構建起來,并為語義搜索、智能問答、商品推薦等眾多下游業務任務提供知識圖譜服務。通常知識圖譜提供服務的方式是直接透出原始的三元組數據,這會導致以下問題:(1)針對不同任務反復地進行數據選擇和查詢,存在大量冗余重復性工作;(2)下游任務需要針對自己的任務重新設計知識圖譜算法,從頭訓練模型,由于圖譜規模龐大,業務應用迭代周期過長導致效率低下;(3)商品知識圖譜本身的不完整性會導致誤差傳導;(4)直接透出原始三元組存在數據公平性和隱私風險。
為了避免這個問題,使商品知識圖譜更方便更有效地為下游任務服務,我們提出了“預訓練+知識向量服務”的模式,并設計了知識圖譜預訓練模型PKGM(Pre-trained Knowledge Graph Model), 在不直接訪問商品知識圖譜中三元組數據的情況下,以知識向量的方式為下游任務提供知識圖譜服務。我們在商品分類、同款商品對齊以及推薦等多個下游任務上驗證了PKGM的有效性,其中在推薦任務上平均達到了 6%的提升,同時在實踐中我們還證明了在困難數據尤其是樣本較少的數據上提升效果更明顯。此外,在電商業務的真實實踐中,我們還將知識圖譜預訓練應用到了商品圖片分類、用戶點擊預測等任務中,任務效果均獲得了提升。知識圖譜預訓練對于具有億級別節點量級的阿里商品知識圖譜顯得極為重要,因為這能夠避免對龐大的商品知識圖譜重復訓練,從而能夠更高效快速地為下游任務場景提供服務。
本文內容較長,特此在次放置后文章節的相關目錄。
另外因為微信公眾號推文的功能限制,暫不支持目錄跳轉功能。
1. 文章導讀
2. 背景知識介紹
????2.1 預訓練語言模型
????2.2 知識圖譜結構化上下文
3. 商品知識圖譜靜態預訓練模型
????3.1 PKGM預訓練
????3.2 PKGM查詢模塊
????3.3 PKGM知識圖譜服務
????3.4 PKGM在下游任務的應用
4. 商品知識圖譜動態預訓練模型
????4.1 上下文模塊和整合模塊
????4.2 預訓練階段和微調階段
5. 部分應用實踐及實驗結果
????5.1 基于知識圖譜預訓練的商品分類
????5.2 基于知識圖譜預訓練的同款商品對齊
????5.3 基于知識圖譜預訓練的商品推薦
6. 總結
7. 致謝
2. 背景知識介紹
2.1 預訓練語言模型
人類的語言是高度抽象且富含知識的,文本數據只是人類大腦中信息處理后的一個載體,所以沉淀的文本數據本身具有大量有價值信息?;ヂ摼W上沉淀了大規模的自然文本數據,基于這些海量文本,我們可以設計自監督訓練任務,學習好的表示模型,然后將這些表示模型用于其他任務?;谶@樣的思想,最近幾年提出的預訓練語言模型(Pre-trained Language Model)在許多自然語言處理任務上都被證明有效,并且能夠顯著提升相關任務的實驗結果。
預訓練語言模型可以學習通用的語言表示,捕捉語言中內含的結構知識,特別是針對下游任務標注數據量少的低資源場景,采用預訓練+微調的模式,能夠帶來顯著的效果提升。預訓練語言模型的輸入通常是一個文本序列片段,神經編碼器會編碼輸入序列,針對每個輸入單元都會編碼得到對應的向量表示。區別于傳統word2vec詞向量,預訓練得到的向量表示是上下文相關的,因為向量是編碼器根據輸入動態計算得到,所以能夠捕捉上下文語義信息。
以BERT模型為例,預訓練語言模型首先在大型數據集上根據一些無監督任務進行訓練,包括下一個語句預測任務(Next Sentence Prediction,NSP)和掩碼語言模型任務(Masked Language Model),這個部分被稱作預訓練。接著在微調階段,根據后續下游任務,例如文本分類、詞性標注、問答系統等,基于預訓練好的語言模型進行微調,使得BERT 模型無需調整結構、只需調整輸入輸出數據和訓練部分參數,就可以在不同的任務上達到很好的效果。圖1左側部分展示了BERT模型的預訓練階段的結構,右側部分展示了在多個不同數據集和任務上進行微調的結構示意圖。BERT模型具有很好的兼容性、擴展性,并在多種自然語言處理下游任務上達到頂尖的實驗效果。
圖1:BERT模型的預訓練和微調過程的模型結構示意圖?
預訓練語言模型的優點可被總結如下:
(1)對龐大的文本語料庫進行預訓練,學習通用語言表示形式并幫助完成下游任務。
(2)預訓練提供了更好的模型初始化,通常可以帶來更好的泛化性能,并加快目標任務的收斂速度。
(3)可以將預訓練視為一種正則化,以避免對小數據過度擬合。
2.2?知識圖譜結構化上下文
與文本預訓練一樣,我們也可以利用知識圖譜中的結構化上下文信息對知識圖譜中隱含的(結構化)知識進行預訓練。
給定一個知識圖譜??,其中??是實體(Entity)的集合,??是關系(Relation)的集合,??是三元組(Triple)的集合。每個三元組??由頭實體(head)關系(relation)和尾實體(tail)構成,于是這些三元組集合可以用符號表示為???,其中頭實體??和尾實體??都屬于集合??,關系??屬于集合??。
對于某個實體而言,那些包含了該實體若干個三元組的集合往往隱含這個實體豐富的結構和語義特征,例如(姚明,性別是,男性)、(姚明,職業,籃球運動員),(中國籃球協會,主席是,姚明)等三元組能很好的刻畫 「姚明」這個實體。類似地,對于某個特定的關系,知識圖譜中也擁有著豐富的包含了該關系的三元組集合。我們將其稱為結構化上下文三元組(Structure Contextual Triples)集合,或者簡稱為上下文三元組,并用符號表示為??,其中??表示某個實體或者某個關系。因此不難看出,在知識圖譜中有兩種類型的上下文三元組:實體上下文三元組??和關系上下文三元組??。
實體上下文三元組??定義為那些包含實體??的三元組集合,無論這個實體??是某個三元組中的頭實體還是尾實體,只要包含了這個實體??的三元組都可以歸入這個集合。用符號語言來表示為:??
類似地,關系上下文三元組定義為那些包含關系的三元組集合,可以表示為:???
?
圖2:知識圖譜中的上下文三元組
為了更直觀地展示上下文三元組在知識圖譜中的結構,我們畫了一張簡單的示意圖來描述,參看圖2。圖中的實心圓圈代表實體,與圓圈之間的短線代表關系。虛線框中的藍色圓圈、橙色圓圈和粉色短線,構成了一個特定三元組,分別代表頭實體、尾實體和關系。對于頭實體??(藍色圓圈)來說,他的上下文三元組??就是與藍色圓圈相連的三元組,即圖中用藍色短線連接起來的兩兩實體對組成的集合,同理,尾實體??的上下文三元組??即圖中用橙色短線連接起來的三元組集合。而對于關系??的上下文三元組??,圖中用平行的、粉色的短線來表示同一種關系,那么用這些粉色短線相連的三元組集合就是我們所期望的關系上下文三元組。
3.?商品知識圖譜靜態預訓練模型
PKGM(Pre-traind Knowledge Graph Model, PKGM)是基于“預訓練+知識向量服務”的思路提出的,目的是在連續向量空間中提供服務,使下游任務通過嵌入計算得到必要的事實知識,而不需要訪問知識圖譜中的三元組。主要包含了兩個步驟,首先是商品知識圖譜預訓練,目標是使預訓練后的模型具有進行完整知識圖譜服務的能力,其次是以統一的方式為下游任務提供知識向量服務。
具體來說,我們利用知識圖譜中的結構化上下文信息進行預訓練,來為下游任務提供知識向量,利用知識圖譜增強下游任務的效果。知識圖譜靜態預訓練模型的靜態體現在為下游任務提供是預訓練好的知識圖譜嵌入向量表,通過實體或者關系的id能夠直接查詢獲取到其對應的知識向量,可以直接在下游任務中運用和參與計算。將預先訓練好的商品知識圖譜模型作為知識增強任務的知識提供者,既能避免繁瑣的數據選擇和模型設計,又能克服商品知識圖譜的不完整性。
3.1 ?PKGM預訓練
預訓練知識圖譜模型上有兩種常見的查詢(Query)方式:
三元組查詢(Triple Query),在給定頭實體??、給定關系??條件下,查詢預測缺失的尾實體,于是該查詢任務可以簡寫為??。具體的,這個查詢任務體用SPARQL可以表示為:
關系查詢(Relation Query),用于查詢一個項目是否具有給定的關系或屬性。關系查詢任務是對于給定的某一實體,查詢預測與該實體相連的關系,可以簡寫為??。該查詢任務體用SPARQL可以表示為:
因此,考慮到商品知識圖譜的不完整性問題,預訓練知識圖模型應該能夠具有以下能力:
(1)對于某一實體,顯示該實體是否與其他實體之前存在某指定關系;
(2)給定頭實體和關系,查詢對應的尾實體是什么;
(3)為給定的實體和關系,如果查詢不到尾實體,那么預測缺失的尾實體是什么。
經過預訓練,三元組查詢模塊和關系查詢模塊可以為任意給定的目標實體提供知識服務向量。更具體地說,一方面,關系查詢模塊為目標實體提供包含不同關系存在信息的服務向量,如果目標實體具有或應該具有關系,則服務向量將趨于零向量;另一方面,三元組查詢模塊為目標實體提供包含不同關系的尾實體信息的服務向量。
圖3:知識圖譜靜態預訓練模型
對于預訓練知識圖譜模型PKGM,在該模型預訓練好的基礎上通過向量空間計算為其他任務提供向量知識服務,具體如圖3所示。在預訓練(Pre-training)階段,首先會在在十億規模的商品知識圖譜上對模型進行預訓練,使預訓練模型具備為三元組查詢和關系查詢提供知識信息的能力。在服務(Servicing)階段,對于需要實體知識的任務,PKGM提供包含其三元組信息的嵌入向量,然后將其應用于基于嵌入的知識增強任務模型中。
3.2? PKGM查詢模塊
基于上述的關系查詢和三元組查詢這兩種查詢方式,可以構建對應的模塊和評分函數用于模型預訓練,我們提出的PKGM主要包含了兩個查詢模塊:三元組查詢模塊和關系查詢模塊。
(1)三元組查詢模塊
對于某個三元組查詢??需求,三元組查詢模塊??會生成一個服務向量將用于表示候選尾部實體。在這里對于某個正確的三元組??,我們認為在向量空間中頭實體??和關系??進行組合可以轉化為尾實體??,并用評分函數??來表示。
自從知識圖譜表示學習方法被提出,將實體和關系映射到向量空間的方法被大量的實驗證明是有效的,因此在三元組查詢模塊??中,采用了表示學習中相對簡單而有效的TransE模型。每個實體??和每個關系??被編碼為嵌入向量,并用粗體字符表示,那么頭實體??、關系??和尾實體??對應的嵌入向量可以表示為??、??和??。根據轉換模型的假設,對于每個正確的三元組??,存在??這樣的關系,其中這些嵌入向量都是??維的向量,表示為???,???和???。于是他們的評分函數可以表示為??
其中,??符號表示向量??的L1范數。對于正確的三元組,??之和越接近于??越好;相反地,對于錯誤的三元組,??要盡可能遠離??。
(2)關系查詢模塊
關系查詢模塊的核心是設計得分函數用于判斷頭實體是否具有某關系,為此我們設計對每個關系??定義了轉化矩陣??,若??具有以其為頭實體并以??為關系的三元組,??可以將??轉化為??,得分函數設計如下:??同理,若??不具有且不應具有以其為頭實體并以??為關系的三元組,??應盡可能遠離??。
最終一個三元組的得分為:?
訓練時我們采用了基于間隔的損失函數。
3.3??PKGM知識圖譜服務
經過包含了上述兩個查詢模塊的訓練后,可以利用知識圖譜預訓練模型中的這些已經訓練好的模型參數,包括實體嵌入表示、關系嵌入表示和轉化矩陣?
?等,可以為特定任務提供兩類對應的知識服務:
(1)三元組查詢服務
給定頭實體??和關系??,三元組查詢服務可以給出預測的候選尾實體:?
如果??存在于知識圖譜??中,那么??會非常接近于尾實體向量??,如果知識圖譜中不存在包含??和??的三元組,那么??向量表示最有可能的尾實體的嵌入表示??。這在本質上就是三元組補全,是被廣泛使用和驗證的知識圖譜補全任務的具體形式。
(2)關系查詢服務
類似于上述的三元組查詢服務,關系查詢服務能夠提供一個向量來表示實體是否存在包含輸入關系的三元組:?
如果知識圖譜中具有以為頭實體和以為關系的三元組,那么??;如果知識圖譜中沒有但應該有以為頭實體和以為關系的三元組,那么??,如果知識圖譜中沒有且不應該有以為頭實體和以為關系的三元組,??應該遠離零向量???。
為了讀者進行清晰的對比,表1總結了三元組和關系模塊在不同階段的函數。
表1:PKGM在預訓練和知識圖譜服務階段的函數
PKGM具有如下的優勢:(1)基于向量空間的知識圖譜服務獨立于數據本身,避免了數據的直接暴露,有利于保護隱私數據;(2)以向量空間的知識圖譜服務代替三元組數據,對下游任務的模型具有更好的兼容性,能夠更簡單快速地應用于多種任務;(3)PKGM通過計算可以推理出知識圖譜中暫未包含但應該存在的三元組,能夠極大地克服知識圖譜本身的不完整性。
3.4??PKGM在下游任務的應用
在下游任務應用中,給定一個實體??以及??個目標關系,PKGM通過三元組知識圖譜服務和關系知識圖譜服務提供多個服務向量,可分別表示為:???和??,下面我們介紹將這些服務向量應用于下游任務模型的方法,我們根據實體的表示個數將下游任務模型分為兩類,一類是序列嵌入向量模型,即實體具有多個向量輸入,另一類是單個嵌入向量模型,即實體只具有一個向量輸入。
對于序列嵌入向量模型,一個實體的輸入可以表示為??,且采用的模型可能為序列模型,為了讓原有序列信息與服務向量產生充分的交互,我們建議直接在輸入序列后拼接服務向量得到??,并用??代替??輸入原下游任務模型,如圖4所示:
圖4:將服務向量添加到序列嵌入向量模型尾部的示意圖?
對于單個嵌入向量模型,我們將實體的輸入向量表示為??,考慮到單個原始輸入向量和多個服務向量之間的平衡,我們建議先將??和??融合為一個向量,可以采用拼接加平均池化的方法得到??,然后得到??,并用??代替??輸入原下游任務模型。如圖5所示:
圖5:將服務向量添加到單個嵌入向量模型的示意圖
4.?商品知識圖譜動態預訓練模型
相對于靜態預訓練模型僅能為下游任務提供已經包含了結構化信息的嵌入向量表(Embedding Table),知識圖譜動態預訓練模型能夠根據下游任務的特征動態調整模型結構和模型參數,能夠根據下游任務對于知識圖譜中某些特征的傾向性進行微調和適配,具有更好的兼容性和擴展性。
4.1 上下文模塊和整合模塊
整個知識圖譜動態預訓練模型主要由上下文模塊和整合模塊兩部分構成,前者獲取目標三元組的上下文三元組序列,并將每個上下文三元組的三個嵌入向量融合為一個向量,后者主要整合、交互學習上下文三元組向量序列,挖掘潛在的結構性特征,利用得分函數計算三元組分類任務的效果并用于訓練。
(1)上下文模塊
上下文模塊(Contextual Module,C-Mod)中,給定一個目標三元組??,可以通過上述章節對結構化上下文信息的定義,得到該三元組的上下文三元組集合:??即該目標三元組的頭實體??、關系??和尾實體??各自的上下文三元組的并集。
然后對于每一個上下文三元組??,例如目標三元組的第??個上下文三元組??,需要將原本對應的三個嵌入向量???、??和???編碼成一個向量??:?
其中,???表示向量??、??和??組成的序列,并且向量滿足???,??和??。
對于 C-Mod?中具體編碼方式,可以有多種選擇,比如簡單的單層前饋神經網絡。在這里選擇Transformer對向量序列進行學習和融合編碼,而在將上下文三元組向量序列輸入到Transformer之前,需要在??序列之前加入特殊的標記 [TRI],生成得到一個新的序列??,該序列對應的向量表示為??,其中??表示標記 [TRI] 對應的向量。在Transformer最后一層的該標記 [TRI] 對應位置上的向量為充分交互學習后融合了該三元組所有特征的向量,即向量??。那么,頭實體??、關系??和尾實體??各自的上下文三元組特征向量序列 seq?可以表示為:?
其中,???表示頭實體??、關系??或者尾實體??中的某個??的第??個上下文三元組特征向量,而??表示上下文三元組個數。
(2)整合模塊
整合模塊(Aggregation Module,A-Mod)將給定的一個目標三元組??的上下文三元組向量序列 seq?整合編碼輸出為對應的整合向量 a,即:?
為了增強目標三元組??中每個元素對應的上下文三元組在訓練過程中的獨立性,給每個三元組特征向量都加上一個段向量。具體地,總共有三種段向量:??用于表示頭實體??對應的上下文三元組的段向量,類似地,對應于關系??和尾實體??對應的段向量??和??。將上下文三元組特征向量加上段向量后生成新的特征向量:
??
其中,??,那么三元組特征向量序列也更新為:?
??
同時在將??這三者的上下文三元組更新后的特征向量序列拼接在一起輸入到整個模塊之前,還需加入特定的標記來進一步區分他們三者。類似于上下文模塊的 [TRI]?標簽,在這里引入 [HEA]、[REL]?和 [TAI]?標簽,而他們對應的向量表示為???、??和???,分別加入到頭實體??、關系??或者尾實體??的更新后的上下文三元組特征向量序列之前,得到更新后的輸入向量序列??:?
??
整合模塊用另一個不同參數的多層雙向Transformer來編碼學習輸入的向量序列???,并在訓練結束后,取出最后一層Transformer中 [HEA]、[REL]和[TAI]標簽對應的向量??、???和???,表示經過充分整合交互學習后、包含了豐富的知識圖譜結構化信息的特征向量。
最后,將得到的這三個向量拼接并經過一個全連接層,融合為一個統一的整合向量:?
??
其中,???表示將向量??、向量??和??向量拼接在一起,???是該整合模塊的權重矩陣,???是該整合模塊的偏置向量。
(3)評分函數和損失函數
根據上述的上下文模塊和整合模塊,對于目標三元組???可以將評分函數定義為:?
??
其中,???是分類權重矩陣,而經過 softmax?操作之后得到的??是二維向量,并且滿足預測為正確的得分??和預測為錯誤的得分??之和為1,即:?
?
給定構造好的正樣本三元組集合??和負樣本三元組集合??,可以基于評分??和標簽??進行交叉熵計算得到損失函數???:
???
其中,???是表示三元組??是否正確的標簽,當三元組??是正確的,或者??是正樣本三元組集合??的其中一個元素,那標簽??為1,否則如果??是錯誤的,標簽??為0。
4.2??預訓練階段和微調階段
類似于自然語言處理中的預訓練模型,知識圖譜動態預訓練模型也包括預訓練和微調兩個階段。預訓練階段會對海量的數據進行無監督學習,而微調階段就相對輕量,對特定任務和特定數據集,模型結構上會有所改變進行適配,并預訓練階段模型參數的基礎上再次訓練和微調,使之在特定任務上能更快地獲得更好的效果。
(1)預訓練階段
在預訓練(Pre-training)階段,動態預訓練模型利用三元組分類任務進行訓練。三元組分類任務是無監督任務,基于數據庫中存在的三元組并將其視為正樣本,同時生成替換實體或者關系生成原本數據集中不存在的三元組作為負樣本,訓練目標為二分類任務,即判斷該三元組是否正確。對于每一個輸入的三元組,預訓練模型都獲取其上下文三元組并進行采樣、聚合,通過三元組分類任務訓練學習得到其中的結構化信息。預訓練階段輸入的是三元組,而用輸出的嵌入向量來判斷三元組是正確的(True, T)還是錯誤的(False,F),可以參看示意圖6。給定一個目標三元組?
?,找到它的上下文三元組并通過上下文模塊和整合模塊(圖中橙色和玫紅色的兩個模塊)將它們輸入到知識圖譜動態預訓練模型中,最后得到了聚合輸出表示向量。
圖6:動態預訓練模型結構示意圖
預訓練階段需要用到盡可能大的、甚至全量的知識圖譜數據集,這樣才能更好地學習到知識圖譜中深層次結構化信息,才真正能夠幫助到下游任務。例如,BERT模型使用了包含八億個單詞的BooksCorpus數據集和二十五億個單詞的Wikipedia數據集進行預訓練,然后兩個大小不同的模型,包括1.1億個參數的BERTBASE模型和3.4億個參數的BERTLARGE模型,分別都在在16個TPU上訓練了四天才完成。
對于知識圖譜的數據集而言,難以構造橫跨多個不同知識圖譜數據集的全量數據集,比如FB15k、WN18、YAGO等,甚至基于他們各自最原始的數據集Freebase和WordNet等都難以直接合并成一個數據集,因為每個數據集中的實體和關系都是以不同的文本和組織方式進行構建的,很難直接建立起不同數據集之間的聯系。當然,我們還是找到了合適的方法去間接構造起一個足夠大而豐富的知識圖譜預訓練數據集:利用對真實世界描述的WordNet數據集,其中包含了名次、動詞、形容詞和副詞等詞性的單個詞語,最大程度地反映真實場景和語言習慣,建立起不同知識圖譜數據集關聯的橋梁。而其他知識圖譜數據集中的實體或者關系往往是多個單詞構成的,可以利用類似于短語包含某些單詞的關系構建起實體與實體之前的聯系,以及潛在類似的關系。而在阿里電商知識圖譜上,可以直接利用海量商品的屬性和屬性值等三元組,用預訓練模型學習商品知識圖譜的結構化信息。商品知識圖譜足夠大,有著十億節點級別的商品和千億級別的三元組,足夠可以支撐起預訓練的數據需求,并且能夠在下游任務中很好地發揮出預訓練模型的作用。
(2)微調階段
在微調(Fine-tuning)階段中,模型的輸入輸出結構會根據具體的任務和數據集特性進行調整,同時將調整后的模型在特定數據集上進行微調訓練,最后得到符合該特定任務需求并有不錯效果的模型。
例如,實體對齊任務的目標是在真實世界中找到本質上是同一個事物或者事件、而在輸入的知識圖譜數據集中有兩種或者多種表示的實體,比如中文語義下的實體對(漂亮的,美麗的)、(睡覺,睡眠)和(狗,犬)等,表達的是相同含義卻有不同的文字描述。在這個實體對齊任務上,模型的輸入從原來的三元組(head, relation, tail)變為頭尾實體對(head, tail),即去掉了關系relation這一項元素,剩下前后兩個實體,而更進一步地講,這兩個實體就是判斷是否具有相同含義的實體對(entity1, entity2)。相應地,模型的輸出部分也需要替換為描述兩個實體是否對齊的訓練函數,具體可以參考圖7(c)。
又如實體類型預測任務,需要找到某個實體所屬的類別,而這個類別是存在于知識圖譜中的另一個實體,即預測(實體,實體類型)中缺失的實體類型。比如,(老虎,貓科動物)、(中文,語言)和(T細胞,淋巴細胞)等實體類型對。類似于上述的實體對齊任務,實體類型預測任務中的模型輸入也變為一個實體對,而輸出部分是判斷這個實體類型對是否正確的評分函數,參看圖7(b)。
圖7:在微調步驟中,圖中三個模型結構對應于三個不同的訓練任務任務
5. 部分應用實踐及實驗結果
我們在去除了出現次數較低的實體后的商品知識圖譜上對PKGM進行了預訓練。預訓練完成后,我們在多個對知識圖譜有需求的下游任務進行效果驗證,這包括商品分類、同款商品對齊、商品推薦等以圖譜數據服務為基礎的任務,還包括可以利用知識圖譜增強效果的一些NLP任務,例如商品實體識別、商品屬性補齊和關系抽取、商品標題生成等。在這里我們重點介紹了商品實體分類、同款商品對齊、商品推薦三個任務。在實驗中我們將只提供三元組服務向量的標記為“PKGM-T”,只提供關系服務向量的標記為“PKGM-R”,兩類服務向量都提供的標記為“PKGM-all”。?
5.1 基于知識圖譜預訓練的商品分類
億級的商品數據組織依賴于良好的類目體系,因此商品分類在阿里電商平臺是一項常見且重要的任務,其目標是將給定的商品分類于類目中對應的類別。商品的標題往往包含了密集的商品信息,因此也常用來作為商品分類的原始信息,基于商品標題,商品分類任務可對應為文本多分類任務,鑒于目前語言預訓練模型在文本分類任務上取得了很好的效果,我們將BERT作為基準模型。圖8左側是基準模型BERT,右側是PKGM增強的BERT模型,這里采用了為序列嵌入向量模型提供知識圖譜服務的方式。
圖8:商品分類任務模型
我們分別在3個數據集上進行了實驗,每個數據集中每個類別最多具有的商品個數最多分別不超過100、50以及20,實驗結果如表2:
表2:商品分類任務的結果
從實驗結果中可以看到,在預測準確率和Hit@k指標上,融入了知識圖譜服務向量的模型??在這三個數據集上都要優于基準模型???。具體來說,一方面,同時融入了兩種服務向量的??模型在Hit@1指標上都有最好的效果;而另一方面,在Hit@3、Hit@10和預測準確率這三個指標上,??和??這兩個模型有較好的效果而且他們中的其中一個能達到特定條件下的最好實驗效果,這證明了PKGM所提供服務向量的有效性。?
5.2 基于知識圖譜預訓練的同款商品對齊
由于商品來源不同,對齊同款商品成為了增加數據有效性的重要的任務,其目標是判斷給定的兩個商品是否為同款商品。商品信息用標題表示,這個任務可對應于同義句識別,我們選取BERT作為基準模型,左側是基準模型BERT,右側是PKGM增強的BERT模型,如圖9所示。
圖9:商品對齊任務模型
我們在女裝襯衫(category-1)、頭發飾品(category-2)和兒童襪類(category-3)上分別進行了實驗,每個數據集中都有上千個同款商品對。同款商品判斷準確率如表3所示:
表3:商品對齊任務的準確率指標結果
可以很明顯的看出來,??模型在三個數據集都有著最好的效果,有效提升了同款商品識別的效果。
5.3 基于知識圖譜預訓練的商品推薦
推薦是除了搜索以外將適合的商品呈現在用戶面前的重要方式,因此商品推薦也是一項重要的任務,我們針對預測商品和用戶交互的下游任務進行了實驗,實驗中以用戶和商品的交互記錄圖作為輸入并預測潛在的交互,是典型的鏈接預測任務。我們采用了神經協同過濾算法(Neural Collaborative Filtering,NCF)作為基準模型,圖10左側是基準模型NCF,右側是PKGM增強的NCF模型,這里采用了為單個嵌入向量模型提供知識圖譜服務的方式。
圖10:商品推薦任務的模型圖
我們在來自淘寶的包含約4萬商品和3萬用戶的44萬交互記錄的數據集上進行了實驗,并采用了“leave one out”的方法進行測試。實驗結果如表4所示:
表4:商品推薦任務的實驗結果
我們可以看出,所有的知識增強模型相對于基準模型在所有評價指標上均有效果提升,提升的結果證明了PKGM能夠有效提供僅從用戶-商品交互不能分析出的額外信息。
6. 總結
將知識預先訓練好,然后融入到各種深度模型或下游任務中或許是未來知識圖譜數據應用方式的一種新的發展趨勢。本文介紹了我們在大規模知識圖譜預訓練及電商應用的初步實踐,通過三元組和關系模塊的設計,讓PKGM模型具有在向量空間為下游任務提供知識圖譜服務的能力,具有較好的知識圖譜數據保護性以及對下游任務的兼容性,同時克服了知識圖譜本身的不完整性。我們在多個典型的電商任務上證明了PKGM的有效性,本文限于篇幅,許多實驗細節及分析未過多贅述,有興趣的同學可以閱讀原文。本文所介紹的部分內容發表于ICDE2021。論文中只包含了一部分實踐內容,若您對大規模知識圖譜預訓練感興趣,歡迎關注我們后續的工作。
7. 致謝
除本文作者以外,參與過商品知識圖譜預訓練工作的同學還包括浙江大學的鄧淑敏、朱渝珊、周虹廷等,以及阿里巴巴的陳輝、鈄懷嘯等,謝謝你們對本項工作的支持和付出。
?
?
OpenKG
開放知識圖譜(簡稱 OpenKG)旨在促進中文知識圖譜數據的開放與互聯,促進知識圖譜和語義技術的普及和廣泛應用。
點擊閱讀原文,進入 OpenKG 網站。
總結
以上是生活随笔為你收集整理的技术实践 | ICDE2021-大规模知识图谱预训练及电商应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 技术动态 | 知识图谱构建的研究已走入下
- 下一篇: 从Java程序员进阶架构师,必看的书单推