大规模知识图谱预训练模型及电商应用
點擊上方藍字關注我們
大規模知識圖譜預訓練模型及電商應用
陳華鈞1,2,?張文3,?黃志文4,?葉橄強1,?文博1,?張偉2,4
1?浙江大學計算機科學與技術學院,浙江 杭州 310007
2?阿里巴巴-浙江大學前沿技術聯合研究中心,浙江 杭州 311121
3?浙江大學軟件學院,浙江 杭州 310007
4?阿里巴巴集團,浙江 杭州 311121
?
?摘要:近年來,知識圖譜因具有以統一的方式組織數據等優勢,被廣泛應用于許多需要知識的任務,并且在電子商務領域大放光彩。然而知識服務通常需要煩瑣的數據選擇和知識注入模型的設計,這會給業務帶來不良影響。為了更好地解決這一問題,提出了“預訓練+知識向量服務”的模式,并設計了知識圖譜預訓練模型(PKGM),在不直接訪問商品知識圖譜中三元組數據的情況下,以知識向量的方式為下游任務提供知識圖譜服務。在商品分類、同款商品識別和商品推薦等知識圖譜下游任務中進行測試,實驗結果表明,知識圖譜預訓練模型能夠有效地提高每個任務的性能。
關鍵詞:?知識圖譜?;?預訓練?;?電商
論文引用格式:
陳華鈞, 張文, 黃志文,? 等. 大規模知識圖譜預訓練模型及電商應用[J]. 大數據, 2021, 7(3): 97-115.
CHEN H J, ZHANG W, HUANG Z W, et al. Large scale pre-trained knowledge graph model and e-commerce application[J]. Big Data Research, 2021, 7(3):? 97-115.
1 引言
知識廣泛存在于文本、結構化及多種模態的數據中。除了通過抽取技術將知識從原始數據中萃取出來以支持搜索、問答、推理、分析等應用,另外一種思路是利用數據中本身存在的基本信號對隱藏的知識進行預訓練(pre-training)。隨著GPT、BERT、XLNet等預訓練語言模型在多項自然語言處理領域任務上刷新了之前的最好效果,預訓練受到了各界的廣泛關注。預訓練的核心思想是預訓練和微調,例如文本預訓練一般包含兩個步驟:首先利用大量的自然語言數據訓練一個語言模型,獲取文本中包含的通用知識信息;然后在下游任務微調階段,針對不同的下游任務設計相應的目標函數,基于相對較少的監督數據進行微調,即可得到不錯的效果。
受預訓練語言模型的啟發,筆者將預訓練和微調的思想應用到大規模商品知識圖譜的表示學習與業務應用中。在阿里巴巴電商平臺,包含千億級三元組和300多萬條規則的商品知識圖譜被構建起來,并為語義搜索、智能問答、商品推薦等眾多下游業務任務提供知識圖譜服務。通常知識圖譜提供服務的方式是直接給出原始的三元組數據,這會導致以下問題:①針對不同任務反復地進行數據選擇和查詢,存在大量重復性工作;②下游任務需要針對自己的任務重新設計知識圖譜算法,從頭訓練模型,由于圖譜規模龐大,業務應用迭代周期過長,導致效率低下;③商品知識圖譜本身的不完整性風險會導致誤差傳導;④直接提供原始三元組存在數據公平性風險和隱私風險。
為了避免這個問題,使商品知識圖譜更方便、更有效地為下游任務提供服務,筆者提出了“預訓練+知識向量服務”的模式,并設計了知識圖譜預訓練模型(pre-trained knowledge graph model, PKGM),在不直接訪問商品知識圖譜中三元組數據的情況下,以知識向量的方式為下游任務提供知識圖譜服務。在商品分類、同款商品對齊以及商品推薦等多個下游任務上,驗證了PKGM的有效性,其中在推薦任務上達到了平均6%的提升,同時還證明了在困難數據尤其是樣本較少的數據上提升效果更明顯。此外,在電商業務的真實實踐中,知識圖譜預訓練模型進一步被應用到商品圖片分類、用戶點擊預測等任務中,任務效果均獲得了提升。知識圖譜預訓練對于具有億級別節點量級的阿里巴巴商品知識圖譜而言極為重要,因為這能夠避免對龐大的商品知識圖譜進行重復訓練,從而更高效快速地為下游任務場景提供服務。
本文首先介紹了背景知識,包括預訓練語言模型和結構化上下文信息等;然后分別介紹了商品知識圖譜靜態預訓練模型和動態預訓練模型,詳細闡述了這兩者的模型結構和具體的先預訓練再微調模式;之后介紹了知識圖譜預訓練模型在阿里巴巴電商場景的各種知識圖譜任務中的實驗結果和具體應用,包括商品分類、同款商品對齊和商品推薦等任務;最后對本文的工作進行了總結。
2 相關工作
2.1 預訓練語言模型
人類的語言是高度抽象且富含知識的,文本數據只是人類大腦進行信息處理后的一個載體,因此沉淀的文本數據本身具有大量有價值的信息。互聯網上沉淀了大規模的自然文本數據,基于這些海量文本,可以設計自監督訓練任務,學習好的表示模型,然后將這些表示模型用于其他任務。基于這樣的思想,最近幾年提出的預訓練語言模型(pre-trained language model)在許多自然語言處理任務上被證明是有效的,并且能夠顯著提升相關任務的實驗結果。
預訓練語言模型可以學習通用的語言表示,捕捉語言中內含的結構知識,特別是針對下游任務標注數據量少的低資源場景,采用預訓練+微調的模式,能夠帶來顯著的提升效果。預訓練語言模型的輸入通常是一個文本序列片段,神經編碼器會編碼輸入序列,每個輸入單元都會編碼得到對應的向量表示。區別于傳統的word2vec詞向量,預訓練得到的向量表示是上下文相關的,因為向量是編碼器根據輸入動態計算得到的,所以能夠捕捉上下文語義信息。
以BERT模型為例,預訓練語言模型首先在大型數據集上根據一些無監督任務進行訓練,包括下一個語句預測(next sentence prediction,NSP)任務和掩碼語言模型(masked language model)任務,這個部分被稱作預訓練。接著在微調階段,針對后續下游任務,例如文本分類、詞性標注、問答系統等,基于預訓練好的語言模型進行微調,使得BERT模型只需調整輸入輸出數據和訓練部分參數,就可以在不同的任務上達到很好的效果。圖1展示了BERT模型的預訓練階段的結構,以及在多個不同數據集和任務上進行微調的結構。BERT模型具有很好的兼容性、擴展性,并在多種自然語言處理下游任務上達到頂尖的實驗效果。
預訓練語言模型的優點總結如下:
● 對龐大的文本語料庫進行預訓練,學習通用語言表示形式,并幫助完成下游任務;
● 預訓練提供了更好的模型初始化,通常可以帶來更好的泛化性能,并加快目標任務的收斂速度;
● 可以將預訓練視為一種正則化,以避免對小數據過度擬合。
2.2 結構化上下文信息
給定一個知識圖譜,其中表示實體(entity)的集合,表示關系(relation)的集合,表示三元組(triple)的集合。每個三元組由頭實體(head)、關系和尾實體(tail)構成,于是三元組集合可以表示為,其中頭實體h和尾實體t都屬于集合,關系r屬于集合。
對于某個實體而言,包含了其若干個三元組的集合往往隱含這個實體豐富的結構和語義特征,例如(姚明,性別,男性)、(姚明,職業,籃球運動員)、(中國籃球協會,主席,姚明)等三元組能很好地刻畫“姚明”這個實體。類似地,對于某個特定的關系,知識圖譜中也擁有豐富的包含了該關系的三元組集合。在此,可以將其定義為結構化上下文三元組(structure contextual triple)集合,簡稱為上下文三元組,并用表示,其中x表示某個實體或者某個關系。因此不難看出,在知識圖譜中有兩種類型的上下文三元組:實體上下文三元組和關系上下文三元組。
圖1???BERT模型的預訓練和微調過程的模型結構示意圖
實體上下文三元組被定義為那些包含實體的三元組集合,無論實體e是某個三元組中的頭實體還是尾實體,包含了e的三元組都可以被歸入這個集合。用符號語言來表示就是:
類似地,關系上下文三元組被定義為那些包含關系r的三元組集合,可以表示為:
為了更直觀地展示上下文三元組在知識圖譜中的結構,筆者畫了一張簡單的示意圖來描述,如圖2所示。圖2中的圓代表實體,圓之間的短線代表關系。虛線框中的藍色圓、橙色圓和粉色短線構成了一個特定三元組,分別代表頭實體、尾實體和關系。對于頭實體h(藍色圓)來說,其上下文三元組就是與藍色圓相連的三元組,即圖2中用藍色短線連接起來的兩兩實體對組成的三元組再加上虛線框中的三元組得到的三元組集合。同理,尾實體t的上下文三元組即圖2中用橙色短線連接起來的三元組再加上虛線框中的三元組得到的三元組集合。而對于關系r的上下文三元組,圖2中用平行的、粉色的短線來表示同一種關系r,那么用這些粉色短線相連的三元組集合就是所期望的關系上下文三元組。
圖2???知識圖譜中的上下文三元組
3 商品知識圖譜靜態預訓練模型
PKGM是基于預訓練+知識向量服務的思路提出的,目的是在連續向量空間中提供服務,使下游任務通過嵌入計算得到必要的事實知識,而不需要訪問知識圖譜中的三元組。PKGM主要包含兩個步驟,首先是商品知識圖譜預訓練,目標是使預訓練后的模型具有進行完整知識圖譜服務的能力,其次是以統一的方式為下游任務提供知識向量服務。
具體來說,利用知識圖譜中的結構化上下文信息進行預訓練,從而為下游任務提供知識向量,利用知識圖譜增強下游任務的效果。知識圖譜靜態預訓練模型的靜態體現在為下游任務提供預訓練好的知識圖譜嵌入向量表(embedding table),通過實體或者關系的ID能夠直接查詢并獲取其對應的知識向量,該向量可以直接在下游任務中運用和參與計算。將預訓練好的商品知識圖譜模型作為知識增強任務的知識提供者,既能避免煩瑣的數據選擇和模型設計,又能解決商品知識圖譜的不完整性問題。
3.1 PKGM預訓練
預訓練知識圖譜模型中有兩種常見的查詢方式。
(1)三元組查詢(triple query)
在給定頭實體h、關系r的條件下,查詢預測缺失的尾實體,于是該查詢任務可以簡寫為?。具體地,這個查詢任務用SPARQL可以表示為:
SELECT ?x
WHERE {h r ?x}
(2)關系查詢(relation query)
關系查詢被用于查詢一個項目是否具有給定的關系或屬性。關系查詢任務是針對給定的某個實體h,查詢某個關系r是否與該實體相連,可以簡寫為。該查詢任務用SPARQL可以表示為:
SELECT ?x
WHERE {h ?x ?y}
因此,考慮到商品知識圖譜的不完整性問題,預訓練知識圖譜模型應該具有以下能力:
● 對于某一實體,顯示該實體與其他實體之間是否存在某指定關系;
● 給定頭實體和關系,查詢對應的尾實體;
● 給定頭實體和關系,如果查詢不到尾實體,那么預測缺失的尾實體。
經過預訓練,三元組查詢模塊和關系查詢模塊可以為任意給定的目標實體提供知識服務向量。更具體地說,一方面,關系查詢模塊可為目標實體提供包含不同關系信息的服務向量,如果目標實體具有或應該具有關系,則服務向量將趨于零向量;另一方面,三元組查詢模塊可為目標實體提供包含不同關系的尾實體信息的服務向量。
對于PKGM,在預訓練知識圖譜模型預訓練好的基礎上,通過向量空間計算為其他任務提供向量知識服務,具體如圖3所示。在預訓練階段,首先會在10億規模的商品知識圖譜上對模型進行預訓練,使預訓練模型具備為三元組查詢和關系查詢提供知識信息的能力。在服務階段,對于需要實體知識的任務,PKGM提供包含其三元組信息的嵌入向量,然后將其應用于基于嵌入的知識增強任務模型中。
圖3???知識圖譜靜態預訓練模型
3.2 PKGM查詢模塊
基于上述的關系查詢和三元組查詢兩種查詢方式,可以構建對應的模塊和評分函數用于模型預訓練,因此PKGM主要包含兩個查詢模塊:三元組查詢模塊和關系查詢模塊。
(1)三元組查詢模塊
對于某個三元組查詢需求Qtriple(h,r),三元組查詢模塊會生成一個服務向量,用于表示候選尾實體。這里可以認為,對于某個正確的三元組(h,r,t),在向量空間中將頭實體h和關系r進行組合,可以將其轉化為尾實體t,并用評分函數ftriple (h,r,t)來表示。
自從知識圖譜表示學習方法被提出,將實體和關系映射到向量空間的方法被大量的實驗證明是有效的,因此在三元組查詢模塊中,采用了表示學習中相對簡單而有效的TransE模型。每個實體和每個關系被編碼為嵌入向量,那么頭實體h、關系r和尾實體t對應的嵌入向量可以表示為h、r和t。根據轉換模型的假設,對于每個正確的三元組(h,r,t),存在這樣的關系,其中這些嵌入向量都是d維的向量,表示為。于是它們的評分函數可以表示為:
其中表示向量的L1范式。對于正確的三元組,的和向量越接近越好;對于錯誤的三元組,要盡可能遠離。
(2)關系查詢模塊
設置關系查詢模塊主要是為了編碼某個實體h是否存在與之相連的某種關系r,評分函數可以寫為frel(h,r),并且用零向量0表示存在這樣的關系。如果實體h與關系r 相連,函數frel(h,r)接近零向量0,即;如果該實體h與關系r不存在相連的情況,那么函數frel(h,r)盡可能遠離零向量0。在細節上,對于每一個關系r,還定義了轉化矩陣,可以將向量h轉化為向量r,這樣的方式可以使得正確的三元組中的盡可能接近r,即。于是,評分函數可以表示為:
3.3 PKGM知識圖譜服務
經過上述兩個查詢模塊的訓練后,可以利用知識圖譜預訓練模型中已經訓練好的模型參數(包括頭實體h、關系r和尾實體t的嵌入向量、轉化矩陣等),為特定任務提供兩類對應的知識服務。
(1)三元組查詢服務
給定頭實體h和關系r,三元組查詢服務可以給出預測的候選尾實體:
如果在知識圖譜數據集中的確存在三元組,即,那么會非常接近尾實體t的嵌入向量;如果數據集中不存在包含h和r的三元組,那么會給出一個實體向量表示最有可能的尾實體t。這本質上就是三元組補全,作為被廣泛使用和驗證的知識圖譜補全任務的具體形式。
(2)關系查詢服務
類似于上述的三元組查詢服務,關系查詢服務能夠提供一個向量來表示實體h是否存在包含關系r的三元組:
這里會有以下3種情況:一是實體h顯式地與關系r相連,即存在同時包含h和r的三元組,那么此時會接近0;二是實體h隱式地與關系r相連,即不存在直接包含h和r的三元組,但是在真實情況中實體h能夠與關系r相連,此時仍然接近0;三是實體h與關系r不相連,數據集中不包含這樣的三元組,真實世界中也不存在,那么應該遠離0。
上述三元組查詢模塊和關系查詢模塊各自的預訓練和服務階段的函數見表1。從表1可以更清晰地看出它們的差別和聯系。
給定頭實體h和關系r,通過知識圖譜靜態預訓練模型的查詢服務得到的知識有著非常顯著的優勢:一方面,可以通過向量空間的運算間接地得到對應的尾實體t,這使得查詢服務能夠獨立于數據本身,從而更好地保護數據,尤其是隱私數據;另一方面,通過給定的頭實體h和關系r輸入對,經過兩個查詢服務能夠分別得到兩個向量,而不是未經處理的三元組數據本身,能夠以更簡單的方式應用在多種特定任務上。除此以外,這兩個查詢服務模塊還能夠通過推理計算得到知識圖譜數據集暫未包含的、但真實情況中存在的三元組,能夠有效地解決知識圖譜不完整性的問題。
3.4 PKGM在下游任務的應用
在知識圖譜中,通過某個給定的實體的上下文信息,可以生成來自三元組查詢模塊和關系查詢模塊的服務向量序列,分別表示為和,其類似于自然語言處理領域中描述文本或者特征標簽的單詞嵌入向量序列。其中,從某個實體e的上下文三元組(h,r,t)中抽取出所有關系r,并組成核心關系集合,k表示核心關系集合中的第k個關系。
基于目標實體生成包含知識圖譜結構化信息的兩種服務向量位于同一個統一的、連續的向量空間中,便于滿足后續多種知識增強任務的應用需求。根據目標實體輸入模型的嵌入向量個數,可以將下游基于嵌入向量的模型分為兩類,分別是輸入嵌入向量序列的模型和輸入單個嵌入向量的模型。
(1)嵌入向量序列模型的輸入是多個向量,往往包含較多的信息,例如由某個實體的文本描述或者標簽特征生成的向量序列,可以表示為。考慮到序列模塊能夠自動捕捉元素之間的交互信息,類似于BERT模型中使用的雙向Transformer模塊,因此可以將基于某個實體e得到的和這兩種服務向量序列,直接拼接到原輸入序列的尾部,從而讓原先的文本單詞信息與知識圖譜信息自動融合、充分交互學習。此時,模型的輸入就變為,即先加入三元組查詢模塊的服務向量 ,再加入關系查詢模塊的服務向量序列 ,如圖4所示。
圖4???將服務向量添加到嵌入向量序列模型尾部的示意圖
(2)單個嵌入向量模型是指只輸入一個有關目標實體e的嵌入向量的模型。這里的單個向量指的是實體e在潛在向量空間中對應的向量,并將其表示為,如圖4的原始模型部分所示。
考慮到整個原始模型的輸入只有一個向量,需要在模型原始的輸入向量和融合了知識的服務向量之間取一個平衡,因此這里將和融合為一個向量。具體來說,需要將基于相同關系但來源于不同模塊的兩個向量和一起考慮,這里直接將它們拼接成新的向量:
其中,i是1到k之間的一個整數,即,而表示由向量和向量拼接成的新的服務整合向量。
然后,將生成的向量序列進一步整合、平均池化為單個向量:
最后將充分融合了結構化知識信息的向量和原始的嵌入向量拼接成一個向量,如圖5所示。
圖5???將服務向量添加到單個嵌入向量模型的示意圖
4 商品知識圖譜動態預訓練模型
相對于靜態預訓練模型僅能為下游任務提供已經包含了結構化信息的嵌入向量表,知識圖譜動態預訓練模型能夠根據下游任務的特征動態調整模型結構和模型參數,并根據下游任務對知識圖譜中某些特征的傾向性進行微調和適配,具有更好的兼容性和擴展性。
4.1 上下文模塊和整合模塊
整個知識圖譜動態預訓練模型主要由上下文模塊(contextual module, C-Mod)和整合模塊(aggregation module,A-Mod)兩部分構成。前者獲取目標三元組的上下文三元組序列,并將每個上下文三元組的3個嵌入向量融合為一個向量;后者主要整合、交互學習上下文三元組向量序列,挖掘潛在的結構性特征,利用得分函數計算三元組分類任務的效果并用于訓練。
(1)上下文模塊
在上下文模塊中,給定一個目標三元組τ=(h,r,t),可以通過上述對結構化上下文信息的定義,得到該三元組的上下文三元組集合,即該目標三元組的頭實體h、關系r和尾實體t各自的上下文三元組的并集。
然后,對于每一個上下文三元組c,例如目標三元組的第x個上下文三元組,需要將原本對應的3個嵌入向量編碼成一個向量:
其中,表示由向量組成的序列,并且滿足。
對于C-Mod中的具體編碼方式,可以有多種選擇,比如簡單的單層前饋神經網絡。這里選擇通過Transformer對向量序列進行學習和融合編碼。將上下文三元組向量序列輸入Transformer之前,需要在序列前端加入特殊的標記[TRI],生成得到一個新的序列,該序列對應的向量表示為,其中表示標記[TRI]對應的向量。在Transformer的最后一層,標記[TRI]對應位置上的向量為充分交互學習后融合了該三元組所有特征的向量,即向量。那么,頭實體h、關系r和尾實體t各自的上下文三元組特征向量序列可以表示為:
其中,表示頭實體h、關系r或者尾實體t中的某個的第i個上下文三元組特征向量,而n表示上下文三元組個數。
(2)整合模塊
整合模塊將目標三元組(h,r,t)的上下文三元組向量序列整合編碼輸出為對應的整合向量,即:
為了增強目標三元組(h,r,t)中每個元素對應的上下文三元組在訓練過程中的獨立性,給每個三元組特征向量都加上一個段向量。具體地,總共有3種段向量:表示頭實體h對應的上下文三元組的段向量,類似地,關系r和尾實體t對應的段向量為。將上下文三元組特征向量加上段向量后生成新的特征向量:
其中,x∈{h,r,t},那么三元組特征向量序列也更新為:
在將h、r、t的更新后的上下文三元組拼接特征向量序列輸入整合模塊之前,還需加入特定的標記來進一步區分它們。類似于上下文模塊的[TRI]標簽,這里引入[HEA]、[REL]和[TAI]標簽,而它們對應的向量表示為,將這3個向量分別加入頭實體h、關系r、尾實體t的更新后的上下文三元組特征向量序列中,得到更新后的輸入向量序列i:
整合模塊用另一個不同參數的多層雙向Transformer來編碼學習輸入的向量序列i,并在訓練結束后,取出Transformer最后一層中[HEA]、[REL]和[TAI]對應的向量,這些向量表示經過充分整合交互學習后包含了豐富的知識圖譜結構化信息的特征向量。
最后,將這3個向量拼接在一起,經過一個全連接層,融合為一個統一的整合向量:
其中,表示將向量、向量和向量拼接在一起,是該整合模塊的權重矩陣,是該整合模塊的偏置向量。
(3)評分函數和損失函數
根據上述上下文模塊和整合模塊,對于目標三元組τ=(h,r,t),可以將評分函數定義為:
其中,是分類權重矩陣,而經過softmax操作之后得到的是二維向量,并且滿足預測為正確的得分sτ1和預測為錯誤的得分sτ0之和為1,即:
給定構造好的正樣本三元組集合和負樣本三元組集合,可以基于評分sτ0、sτ1和標簽lτ進行交叉熵計算,得到損失函數:
其中,lτ∈{0,1}表示三元組τ是否是正確的標簽,若三元組是正確的,或者說τ是正樣本三元組集合的其中一個元素,那么標簽lτ為1,否則標簽lτ為0。
4.2 預訓練階段和微調階段
類似于自然語言處理中的預訓練模型,知識圖譜動態預訓練模型也包括預訓練和微調兩個階段。預訓練階段會對海量的數據進行無監督學習,而微調階段就相對輕量,一方面根據特定任務的輸入輸出等要求調整模型結構并進行適配,另一方面基于相對較小的特定數據集,在預訓練階段模型參數的基礎上再次訓練和微調,使之在特定任務上能更快地獲得更好的效果。
(1)預訓練階段
在預訓練階段,動態預訓練模型利用三元組分類任務進行訓練。三元組分類任務是無監督任務,將數據庫中存在的三元組視為正樣本,同時通過隨機替換實體或者關系生成原本數據集中不存在的三元組,并將這些三元組作為負樣本,訓練目標為二分類任務,即判斷該三元組是否正確。對于每一個輸入的三元組,預訓練模型都獲取其上下文三元組并進行采樣、聚合,通過三元組分類任務訓練學習得到其中的結構化信息。預訓練階段輸入的是三元組,而用輸出的嵌入向量來判斷三元組是正確的還是錯誤的。如圖6所示,給定一個目標三元組(h,r,t),找到它的上下文三元組并通過上下文模塊和整合模塊將它們輸入知識圖譜動態預訓練模型中,最后得到聚合輸出表示向量。
圖6???動態預訓練模型結構示意圖
預訓練階段需要用到盡可能大的甚至全量的知識圖譜數據集,這樣才能更好地學習到知識圖譜中的深層次結構化信息,才真正能夠幫助下游任務。例如,BERT模型使用了包含8億個單詞的BooksCorpus數據集和25億個單詞的Wikipedia數據集進行預訓練,然后兩個大小不同的模型(包括1.1億個參數的BERTBASE模型和3.4億個參數的BERTLARGE模型)分別在16個張量處理單元(tensor processing unit,TPU)上訓練了4天才完成。
對于知識圖譜的數據集,難以構造橫跨多個不同知識圖譜數據集的全量數據集,比如FB15k、WN18、YAGO等,甚至基于它們各自最原始的數據集Freebase和WordNet等都難以直接合并成一個數據集。這是因為每個數據集中的實體和關系都是以不同的文本和組織方式構建的,很難直接建立起不同數據集之間的聯系。然而,筆者還是找到了合適的方法去間接構造一個足夠大且豐富的知識圖譜預訓練數據集:利用包含真實世界描述的WordNet數據集(其中包含了名詞、動詞、形容詞和副詞等詞性的單個詞語,最大程度地反映了真實場景和語言習慣),建立不同知識圖譜數據集關聯的橋梁。而其他知識圖譜數據集中的實體或者關系往往是由多個單詞構成的,可以利用類似于短語包含某些單詞的關系構建起實體與實體之間的聯系。而在阿里巴巴電商知識圖譜上,可以直接利用海量商品的屬性和屬性值等三元組,用預訓練模型學習商品知識圖譜的結構化信息。商品知識圖譜足夠大,具有10億節點級別的商品和千億級別的三元組,可以支撐預訓練的數據需求,并且能夠在下游任務中很好地發揮出預訓練模型的作用。
(2)微調階段
在微調階段,模型的輸入輸出結構會根據具體的任務和數據集特性進行調整,同時將調整后的模型在特定數據集上進行微調訓練,最后得到符合該特定任務需求并有不錯效果的模型,如圖7所示。
例如,實體對齊任務的目標是在真實世界中找到本質上是同一個事物或者事件而在輸入的知識圖譜數據集中有兩種或者多種表示的實體,比如中文語義下的實體對(漂亮的,美麗的)、(睡覺,睡眠)和(狗,犬)等,表達的是相同含義卻有不同的文字描述。在這個實體對齊任務上,模型的輸入從原來的三元組(h,r,t)變為頭尾實體對(h,t),即刪除了關系r這一項元素,剩下前后兩個實體,進一步來說,這兩個實體就是判斷是否具有相同含義的實體對(e1, e2)。相應地,模型的輸出部分也需要替換為描述兩個實體是否對齊的訓練函數,具體如圖7(c)所示。
又如實體類型預測任務,需要找到某個實體所屬的類別,而這個類別是存在于知識圖譜中的另一個實體,即預測(實體,實體類型)中缺失的實體類型,比如(老虎,貓科動物)、(中文,語言)和(T細胞,淋巴細胞)等實體類型對。類似于上述的實體對齊任務,實體類型預測任務中的模型輸入也變為一個實體對,而輸出部分是判斷這個實體類型對是否正確的評分函數,如圖7(b)所示。
圖7???在微調階段,圖中3個模型結構對應于3個不同的訓練任務
5 應用實踐和實驗結果
在刪除了出現次數較低的實體后的商品知識圖譜上對PKGM進行預訓練。預訓練完成后,在多個對知識圖譜有需求的下游任務進行效果驗證,不僅包括商品分類、同款商品對齊、商品推薦等以圖譜數據服務為基礎的任務,還包括可以利用知識圖譜增強效果的一些NLP任務,例如商品實體識別、商品屬性補齊和關系抽取、商品標題生成等。這里重點介紹了商品分類、同款商品對齊、商品推薦3個任務。在實驗中,將只提供三元組服務向量的標記為PKGM-T,只提供關系服務向量的標記為PKGM-R,兩類服務向量都提供的標記為PKGM-all。
5.1 基于知識圖譜預訓練的商品分類
億級的商品數據組織依賴于良好的類目體系,因此商品分類在阿里巴巴電商平臺是一項常見且重要的任務,其目標是將給定的商品分類到類目中對應的類別。商品的標題往往包含了密集的商品信息,因此也常被用作商品分類的原始信息,基于商品標題,商品分類任務可對應為文本多分類任務,鑒于目前語言預訓練模型在文本分類任務上取得了很好的效果,這里將BERT作為基準模型。圖8(a)展示了基準模型BERT,圖8(b)展示了PKGM增強的BERT模型,這里采用了為序列嵌入向量模型提供知識圖譜服務的方式。
圖8???商品分類任務模型
從阿里巴巴電商真實場景中抽取出1 293個類別和這些類別下的商品,生成正樣本和負樣本為1:1的數據集,具體見表2。為了更好地證明結合文本的知識圖譜預訓練模型的能力,在數據準備過程中將每個類別的實例(商品)限制在100個以下,展現出較少的訓練樣本數據情況下下游任務的實驗效果。為此還特意生成每個類別不同實例個數的3種數據集dataset-20、dataset-50和dataset-100,分別表示每個類別只有20、50或者100個實例個數的數據集。表2中的#Train、#Test和#Dev分別表示由三元組構成的訓練集、測試集和驗證集。
在實驗中,采用預訓練語言模型BERTBASE在中文語言數據集上的訓練模型作為基準模型,其中包含12層Transformer、12個注意力頭(attention head)和大小為768的向量維度。類似于BERT模型,在輸入數據序列前端加上特殊的分類符[CL S],其在最后一層模型對應位置的嵌入向量用于表示整合了這個輸入序列的向量。這里將整個序列長度固定為128,包含一個[CLS]分類符和長度為127的標題序列,若原始標題文本長度不夠則補零,若超出則截取最前面127個字符序列。
基于知識圖譜預訓練得到的服務向量,可以得到PKGM增強的模型BERTPKGM-all,具體步驟為:將基準模型BERT輸入序列的最后2k個向量替換為k個關系查詢模塊的服務向量序列和k個三元組查詢模塊的服務向量序列,然后進行微調階段的訓練。類似地,只將輸入序列中最后k個向量替換為k個三元組查詢模塊服務向量序列的模型,寫為BERTPKGM-T,而替換為k個關系查詢模塊服務向量的模型,寫為BERTPKGM-R。
在訓練批量大小(batch size)為32、學習率(learning rate)為2e-5的參數條件下,對PKGM訓練了3個輪次(epoch),其中來自知識圖譜預訓練的服務向量是固定不變的,而BERT模型中的相關參數會在訓練中被調整優化,最終得到的商品分類任務實驗結果見表3。表3給出了商品分類的預測準確率(accuracy,AC)和前k個預測值的命中率Hit@k,其中Hit@k表示在所有的測試數據集中預測正確的類別在所有商品類別的預測值序列中排名前k個的百分比,其中k包括1、3和10這3個候選值。
從表3可以看到,在預測準確率和Hit@k指標上,融入了知識服務向量的模型BERTPKGM在這3個數據集上都要優于基準模型BERT。具體來說,一方面,同時融入了兩種服務向量的BERTPKGM-all模型在Hit@1指標上都有最好的效果;另一方面,在Hit@3、Hit@10和預測準確率這3個指標上,BERTPKGM-all和BERTPKGM-R這兩個模型有較好的效果,而且它們中的一個能達到特定條件下最好的實驗效果。這也證明了知識圖譜預訓練模型和提供相應的查詢服務向量的有效性,并且其中關系查詢模塊往往發揮著比三元組查詢模塊更重要的作用。
當然在一定程度上,BERTPKGM-R在不少時候比BERTPKGM-all有更好的效果,打破了人們對“有更多知識圖譜特征向量往往能有更好效果”的傳統認知。這很可能是因為在商品分類任務上,那些被三元組服務向量序列替換掉的文本序列比替換它們的三元組服務向量序列更重要,在這些特定指標上,文本序列本身比判斷三元組是否成立的信息更有價值。
5.2 基于知識圖譜預訓練的同款商品對齊
阿里巴巴電商平臺上的商品數量數以億計,給商品管理帶來了巨大挑戰,其中一個挑戰就是同款商品挖掘。商品在商品知識圖譜中以實例的形式存在,因此商品同款的本質是商品對齊任務,其目標是找到本質上是相同的,但在平臺上的擁有不同商品ID的商品,這種同款商品一般被定義為同一個產品。產品指由相同廠商生產的、具有相同款式相同屬性而又與具體銷售店鋪無關的物品,商品定義為不同銷售店鋪或者商家在平臺上設置上傳并銷售的、可能是相同產品也可以是不同產品的物品,每個商品都有自己唯一的ID。比如,平臺上綠色、256 GB容量的某品牌某型號手機有很多,由不同商家售賣,因此這些商品在電商平臺上被存儲為不同的商品,但從產品的角度或者銷售的商品本身而言,它們是同一款產品。檢測兩個商品是否是同一產品的任務在阿里巴巴電商場景的日常業務中非常重要。例如,用戶想購買一臺綠色、256 GB容量的某品牌某型號手機,在搜索框輸入具體商品的需求后,能夠顯示所有屬于該產品的商品,有助于用戶方便、深入地比較銷售價格及售后服務等。更重要的是,產品的數量遠小于商品數量,因此從產品的角度來組織商品有助于減少數據管理和挖掘的工作量。
正因為商品來源不同,對齊同款商品成為提高數據有效性的重要任務,其目標是判斷給定的兩個商品是否為同款商品。商品信息用標題表示,這個任務可對應于同義句識別,基準模型的輸入類似于BERT模型的下游任務,分別輸入兩個句子的文本,然后做分類任務,具體細節與商品分類任務相似,如圖9(a)所示;而在PKGM增強的BERT模型中,在每個句子文本序列后面分別加入[SEP]標簽和與該商品對應的包含知識信息的服務向量序列,如圖9(b)所示。
圖9???商品對齊任務模型
從商品知識圖譜中抽取出女裝襯衫(category-1)、頭發飾品(category-2)和兒童襪類(category-3)這3個類別的三元組集合,作為商品對齊任務的實驗數據集。
每個數據集中都有上千個樣本,每個樣本中包含兩個商品各自的商品標題和判斷這兩者是否對齊的標簽,標簽1表示兩個商品對齊,而標簽0表示兩個商品沒有對齊。將包含正負樣本的所有樣本集合按照7:1.5:1.5的比例分配成訓練集#Train、測試集#Test-C和驗證集#Dev-C,用于訓練和同款商品分類指標的測量,但是為了測試前k個預測值的命中率Hit@k,需要從中提取出只包含正樣本的數據集并排序,因此得到相應的測試集#Test-R和驗證集#Dev-R,具體見表4。
類似于第5.1節中的商品分類任務,同款商品對齊任務將BERT作為基準模型,并且輸入格式與商品分類任務相同,只是在輸入數據上略有不同。每個輸入數據由兩個商品的標題文本嵌入向量序列組成,在整個序列的第一個位置加入[CL S]標簽,在每個標題序列后加入[SEP]標簽,并用類似于第5.1節的方法歸一化商品標題長度。表5展示了商品對齊任務的Hit@k結果,在3個數據集上,BERTPKGM-all模型的Hit@3和Hit@10指標都優于基準模型BERT,并且在category-2和category-3這兩個數據集上的所有指標上都有最好的效果,展示了知識圖譜預訓練模型對商品對齊任務的有效性,并且提升了預測準確率。在數據集category-1的Hit@1指標上,基準模型BERT略優于BERTPKGM-all模型,很可能是因為該類別的數據集較大。可以說,足夠的標題文本序列對商品對齊任務是有幫助的,而知識圖譜預訓練模型在少樣本數據集上能發揮出更大的作用。
同時,比較了結合知識圖譜預訓練模型產生的兩種查詢服務向量不同組合方式的實體對齊任務的預測準確率,具體見表6。從表6可以很明顯地看出,BERTPKGM-all模型在3個數據集上都有最好的效果,有效提升了實體對齊任務的預測能力。
5.3 基于知識圖譜預訓練的商品推薦
商品推薦是除搜索外將適合的商品呈現在用戶面前的重要方式,因此商品推薦也是一項重要的任務。針對預測商品和用戶交互的下游任務進行實驗,實驗中將用戶和商品的交互記錄圖作為輸入并預測潛在的交互,這是典型的鏈接預測任務。采用神經協同過濾(neural collaborative filtering,NCF)算法作為基準模型。廣義矩陣分解(generalized matrix factorization,GMF)層和多層感知機(multi-layer perceptron,MLP)層能夠對用戶和商品的交互數據進行建模,其中廣義矩陣分解層使用線性核來模擬潛在的特征交互,而多層感知機層使用非線性核函數從數據中學習交互函數。圖10(a)展示了基準模型NCF,圖10(b)展示了PKGM增強的NCF模型,這里采用為單個嵌入向量模型提供知識圖譜服務的方式。
圖10???商品推薦任務的模型
在從淘寶真實記錄中采樣得到的數據集上進行測試,表7展示了商品推薦任務的具體細節,其中包括兩萬多個用戶(#Users)和3萬多個商品(#Items),以及44萬條用戶-商品交互記錄(#Interactions)。數據集中保證每個用戶的交互記錄至少有10條,不至于太過稀疏。
基于上述數據集進行實驗,實驗中采用“leave one out”進行推薦效果評估。對于每個用戶的數據,將其最近一次的交互作為測試集,其余作為訓練集。在測試過程中,隨機采樣100個未觀測到的負樣本,將這些負樣本同真正的測試正樣本進行排序,通過這樣的方式統計排名前k個命中率HR@k以及歸一化累計增益NDCG@k,并將其作為評估指標,其中k的取值范圍是{1,3,5,10,30},對于每一個測試用戶,分別計算這兩種評價指標,并求出其在所有測試用戶上的均值作為最終評估指標。
為每個用戶隨機采樣一個正樣本交互作為驗證集,以求得模型的最優超參數。對于廣義矩陣分解層,用戶嵌入和商品嵌入的維度都為8。在多層感知機層中,用戶嵌入和商品嵌入的維度設置為32。對于基準模型和知識增強模型,3個隱藏層的維度依次為32、16和8。對于知識增強模型,輸入增強的特征,并與多層感知機層的用戶嵌入和商品嵌入進行拼接,并且為廣義矩陣分解層和多層感知機層中的用戶嵌入和商品嵌入加了L2正則化懲罰,懲罰系數選擇為0.001。學習率設置為0.000 1,預測層的維度為16,預測層的輸入是由兩個8維向量拼接而成的,分別是廣義矩陣分解層的輸出和多層感知機層的輸出。在實驗中,采用的負采樣比例為4,即為每個正樣本采樣4個負樣本。為了更加簡潔和有效,基線模型和知識增強模型均采用了非預訓練版本的神經協同過濾模型。
最終的實驗結果見表8,有NCFPKGM-T標識的神經協同過濾模型表示僅加入了基于知識圖譜預訓練的三元組查詢服務向量的知識增強模型,有NCFPKGM-R標識的神經協同過濾模型表示僅加入了關系查詢服務向量的知識增強模型,有NCFPKGM-all標識的神經協同過濾模型表示融合了以上兩種服務向量的知識增強模型。
從表8可以看出:首先,相對于基準模型來說,所有的知識增強模型在所有評價指標上均有提升效果。對于NCFPKGM-T模型來說,它在HR@k指標上比基線模型平均提升了0.37%,而在NDCG@k指標上比基線模型平均提升了0.002 3。對于NCFPKGM-R模型來說,它在HR@k指標上比基線模型平均提升了3.66%,而在NDCG@k指標上比基線模型平均提升了0.034 3。對于NCFPKGM-all模型來說,它在HR@k指標上比基線模型平均提升了3.47%,而在NDCG@k指標上比基線模型平均提升了0.032 4。提升的結果證明了預訓練的知識增強模型能夠有效提供僅從用戶-商品交互不能分析出的額外信息,從而提升了下游任務(如電商推薦任務)的效果。
其次,NCFPKGM-R模型的效果要優于NCFPKGM-T模型的效果,說明預訓練模型提供的不同特征的側重點不同。因此在商品推薦任務中,NCFPKGM-R模型提供的特征相比于NCFPKGM-T模型提供的特征要更加有用,這很有可能是因為描繪用戶商品交互時,屬性關系往往要比屬性實體更有效。
6 結束語
將知識預先訓練好,然后融入各種深度模型或下游任務中或許是未來知識圖譜數據應用方式的一種新的發展趨勢。本文介紹了大規模知識圖譜預訓練及電商應用的初步實踐,通過三元組和關系模塊的設計,PKGM模型具有在向量空間為下游任務提供知識圖譜服務的能力,具有較好的知識圖譜數據保護性以及對下游任務的兼容性,同時解決了知識圖譜本身的不完整性問題。3種類型的知識圖譜下游任務實驗證明了PKGM模型能夠提高這些任務的性能。在未來的工作中,希望將PKGM模型應用到更多的下游任務中,并探索應用服務向量的其他候選方法。
作者簡介
陳華鈞(1978-),男,浙江大學計算機科學與技術學院教授,主要研究方向為知識圖譜、自然語言處理、大數據系統。
張文(1992-),女,博士,浙江大學軟件學院助理研究員,主要研究方向為知識圖譜、知識表示和知識推理。
黃志文(1993-),男,阿里巴巴集團商品知識圖譜團隊算法工程師,主要研究方向為深度學習和知識圖譜。
葉橄強(1996-),男,浙江大學計算機科學與技術學院碩士生,主要研究方向為知識圖譜表示學習和預訓練。
文博(1994-),男,浙江大學計算機科學與技術學院碩士生,主要研究方向為知識圖譜和推薦計算。
張偉(1983-),男,博士,阿里巴巴集團資深算法專家,主要研究方向為自然語言處理和知識圖譜。
聯系我們:
Tel:010-81055448
? ? ? ?010-81055490
? ? ? ?010-81055534
E-mail:bdr@bjxintong.com.cn?
http://www.infocomm-journal.com/bdr
http://www.j-bigdataresearch.com.cn/
轉載、合作:010-81055537
大數據期刊
《大數據(Big Data Research,BDR)》雙月刊是由中華人民共和國工業和信息化部主管,人民郵電出版社主辦,中國計算機學會大數據專家委員會學術指導,北京信通傳媒有限責任公司出版的期刊,已成功入選中國科技核心期刊、中國計算機學會會刊、中國計算機學會推薦中文科技期刊,并被評為2018年、2019年國家哲學社會科學文獻中心學術期刊數據庫“綜合性人文社會科學”學科最受歡迎期刊。
關注《大數據》期刊微信公眾號,獲取更多內容
總結
以上是生活随笔為你收集整理的大规模知识图谱预训练模型及电商应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java判断首个或最后字符或者字符串是否
- 下一篇: 基于sentinel湿地_基于Senti