左 敏,薛明慧,張青川,蔡圓媛
(北京工商大學(xué) 農(nóng)產(chǎn)品質(zhì)量安全追溯技術(shù)及應(yīng)用國家工程實(shí)驗(yàn)室,北京 100048)
實(shí)體關(guān)系抽取從非結(jié)構(gòu)化文本中提取出結(jié)構(gòu)化3元組知識,是知識庫構(gòu)建等下游任務(wù)的基礎(chǔ),主要分為實(shí)體關(guān)系聯(lián)合抽取和流水線式抽取兩種方法。文獻(xiàn)[1-2]通過先提取出文本中的實(shí)體,再抽取出關(guān)系的方式提取實(shí)體關(guān)系3元組,存在給沒有關(guān)系的實(shí)體強(qiáng)加關(guān)系的問題。流水線式抽取方法存在錯誤傳播,忽略2個任務(wù)之間關(guān)系的問題。
實(shí)體關(guān)系聯(lián)合抽取的方法可以增強(qiáng)實(shí)體識別任務(wù)和關(guān)系抽取任務(wù)之間的聯(lián)系。文獻(xiàn)[3-4]采用實(shí)體關(guān)系聯(lián)合抽取模型抽取文本中的實(shí)體關(guān)系3元組,但其模型需要人工構(gòu)造大量的特征,同時依賴NLP工具包自動抽取,影響抽取結(jié)果。文獻(xiàn)[5]首次使用深度學(xué)習(xí)的方法聯(lián)合抽取實(shí)體和關(guān)系,用序列標(biāo)注模型標(biāo)記實(shí)體,使用多分類器抽取關(guān)系,通過共享參數(shù)進(jìn)行聯(lián)合學(xué)習(xí),但存在實(shí)體識別和關(guān)系抽取沒有明顯交互作用的缺點(diǎn)。文獻(xiàn)[6]提出一種新的序列標(biāo)注方法,將實(shí)體關(guān)系抽取問題轉(zhuǎn)化為序列標(biāo)注問題,使用端到端模型取得了較好的實(shí)驗(yàn)效果,但無法有效抽取復(fù)雜句中一個實(shí)體屬于多個關(guān)系的情況。文獻(xiàn)[7]改進(jìn)了文獻(xiàn)[6]的標(biāo)注方式,在標(biāo)注中加入了重疊標(biāo)簽,但仍不能抽取句中所有復(fù)雜的重疊實(shí)體關(guān)系。上述論文使用詞向量來表示句子的語義特征,沒有在字級別上對一字多義的情況進(jìn)行有效的表征。
針對流水線式抽取中存在的錯誤傳播和詞向量無法對字符多義性表征的問題,為提升食品領(lǐng)域文本中重疊實(shí)體關(guān)系的識別效果,本文將實(shí)體關(guān)系抽取任務(wù)轉(zhuǎn)變?yōu)樾蛄袠?biāo)注問題,采用基于位置感知的領(lǐng)域詞注意力機(jī)制的字詞雙維度語義編碼向量,利用雙向長短期記憶網(wǎng)絡(luò)(bi-directional long short-term memory, BiLSTM)對上下文的理解能力和條件隨機(jī)場(conditional random field, CRF)對標(biāo)簽的約束能力,構(gòu)建了序列標(biāo)注模型(position attention-bidirectional encoder representation from transformer, PA-BERT),并根據(jù)序列標(biāo)注結(jié)果和規(guī)定的匹配規(guī)則實(shí)現(xiàn)實(shí)體關(guān)系抽取。
互聯(lián)網(wǎng)食品文本實(shí)體關(guān)系抽取模型主要由3部分組成,分別是文本預(yù)處理、PA-BERT序列標(biāo)注模型、實(shí)體關(guān)系抽取。
對于互聯(lián)網(wǎng)食品文本數(shù)據(jù)預(yù)處理主要包括以下幾個步驟。
1)數(shù)據(jù)獲取。爬取京東、百度百科上的食品信息。京東關(guān)于食品非結(jié)構(gòu)化的文本信息在食品詳情頁的圖片中,使用百度OCR接口提取圖片中的文本信息;百度百科的食品信息主要是食品詞條信息。
2)數(shù)據(jù)篩選和標(biāo)注。對爬取的數(shù)據(jù)分句過濾掉無關(guān)句子,篩選出要人工標(biāo)注的句子,以句子為單位進(jìn)行人工標(biāo)注,再將句子轉(zhuǎn)化為以字為單位的標(biāo)簽序列。
3)構(gòu)建領(lǐng)域詞庫。通過新詞發(fā)現(xiàn)算法和人工篩選修正構(gòu)建得到互聯(lián)網(wǎng)食品文本領(lǐng)域詞庫。
4)定義實(shí)體關(guān)系。根據(jù)爬取的語料樣本,總結(jié)出其中5種關(guān)系及其關(guān)系的主體、客體。
5)確定實(shí)體標(biāo)注標(biāo)簽。實(shí)體標(biāo)注標(biāo)簽由單實(shí)體標(biāo)簽和重疊實(shí)體標(biāo)簽構(gòu)成。單實(shí)體標(biāo)簽由3部分組成,即實(shí)體邊界、實(shí)體關(guān)系、實(shí)體角色標(biāo)簽。實(shí)體邊界標(biāo)簽用BIO表示元素在實(shí)體中的位置信息,B表示元素在實(shí)體的開頭,I表示元素在實(shí)體的中間或結(jié)尾部分,O表示元素非實(shí)體;實(shí)體關(guān)系標(biāo)簽由5種關(guān)系的英文單詞的前3個字母表示;實(shí)體角色標(biāo)簽表示實(shí)體在3元組中的角色,用1、2來表示,1表示主體,2表示客體。
重疊實(shí)體標(biāo)簽由實(shí)體邊界標(biāo)簽和“OVE”構(gòu)成,即“B-OVE”和“I-OVE”。
實(shí)體標(biāo)簽分為3類共23種。
PA-BERT序列標(biāo)注模型的整體結(jié)構(gòu)如圖1所示,主要有字詞雙維度向量編碼、BiLSTM層和CRF標(biāo)簽輸出層3部分。
1.2.1 基于位置感知的領(lǐng)域詞注意力機(jī)制
模型中基于位置感知的領(lǐng)域詞注意力機(jī)制對詞向量的加權(quán)算法過程如圖2所示。先得到句子中領(lǐng)域詞的位置,再根據(jù)位置感知影響力傳播得到加權(quán)后的詞向量。
使用高斯核函數(shù)模擬基于位置感知的影響傳播,表示為
(1)
(1)式中:u為領(lǐng)域詞與當(dāng)前詞的距離;σ為約束傳播范圍的參數(shù);Kernel(u)為距離領(lǐng)域詞為u時,當(dāng)前詞所受到的影響。
圖1 PA-BERT序列標(biāo)注模型Fig.1 PA-BERT sequence annotation model
圖2 基于位置感知影響的詞向量表示過程Fig.2 Word vector representation process based on the influence of location perception
假設(shè)領(lǐng)域詞對特定距離詞的影響服從維度上的高斯分布,根據(jù)此假設(shè)定義基礎(chǔ)影響矩陣K,K中每個元素定義為
K(i,u)~N(Kernel(u),σ)
(2)
(2)式中:K(i,u)為第i維度上距離為u時受到的影響;N為符合期望值是Kernel(u)、標(biāo)準(zhǔn)差是σ的正態(tài)分布。
在基礎(chǔ)影響矩陣的基礎(chǔ)上,通過累加領(lǐng)域詞對鄰近詞的影響得到特定位置處的影響向量Pj為
Pj=K(i,u)cj
(3)
(3)式中:cj為距離計(jì)數(shù)向量,計(jì)算出現(xiàn)在某個距離中領(lǐng)域詞的數(shù)量。cj(u)的計(jì)算式為
[(j+u)∈pos(q)]
(4)
(4)式中:Q為句子中的領(lǐng)域詞數(shù)量;q為Q中的一個領(lǐng)域詞;pos(q)表示q在句子中的位置集合;[·]是判斷符號,如果滿足條件則為1,否則為0。
句子中位置j的詞注意力可表示為
(5)
(5)式中:hj為句子位置j處的詞向量;l表示句子中詞的個數(shù);a(·)是打分函數(shù),用來計(jì)算句子中某個詞獲得的權(quán)重,其計(jì)算式為
a(i,t)=vTφ(WHhj+WpPj+b)+c
(6)
(6)式中:WH、WP是矩陣;b、c是偏置向量;v是全局向量;vT是v的轉(zhuǎn)置向量;φ(·)=max(0,x)是ReLU函數(shù)。最終的詞向量表示wj為
wj=αjhj
(7)
1.2.2BERT編碼層
BERT基于Transformer的encoder部分,以無監(jiān)督的方式對無標(biāo)注文本進(jìn)行訓(xùn)練。Transformer基于自注意力機(jī)制并行計(jì)算,其編碼單元如圖3所示。
Transformer編碼單元中最重要的部分是自注意力機(jī)制,它表示一句話中字與字之間的相互關(guān)系,其計(jì)算式為
(8)
(8)式中:Q、K、V均為字向量矩陣,由輸入向量和一個隨機(jī)初始化向量相乘得到;dk表示輸入向量的維度。
圖3 Transformer編碼單元Fig.3 Transformer coding unit
MultiHead(Q,K,V)=concat(head1,…,headn)W0
(9)
(10)
除此之外,Transformer還加入了殘差連接和層歸一化,改善多層堆疊時可能產(chǎn)生退化的問題。前饋神經(jīng)網(wǎng)絡(luò)層使用全連接層和激活函數(shù)ReLU實(shí)現(xiàn)。
BERT基于Transformer進(jìn)行雙向編碼,相比其他模型,可以充分利用字的上下文信息,得到更好的字向量表示。
1.2.3BiLSTM層
本文選擇字標(biāo)注的方式,將文本字向量加上其對應(yīng)的詞向量,作為字詞融合編碼[8]。將字詞雙維度融合后的向量輸入到BiLSTM中,捕獲上下文信息,提取文本深層次特征,得到每個字,對應(yīng)預(yù)測各個標(biāo)簽的概率。
LSTM通過3個門結(jié)構(gòu)控制和管理輸入輸出信息。遺忘門決定從單元狀態(tài)中丟棄掉部分信息,將上一時刻的輸出ht-1以及當(dāng)前時刻的xt輸入到sigmoid神經(jīng)層,輸出一個數(shù)值在0到1之間的向量ft,表示為
ft=σ(Wf·[ht-1,xt]+bf)
(11)
(11)式中:σ表示sigmoid函數(shù);Wf是權(quán)重矩陣;bf是偏置向量。
輸入門決定讓多少新的信息加入到單元狀態(tài)中,使用sigmoid層決定要更新哪些信息,使用tanh層創(chuàng)建一個新的向量Ct,最后將單元狀態(tài)Ct-1更新為Ct。輸入門的表達(dá)式分別為
it=σ(Wi·[ht-1,xt]+bi)
(12)
(13)
(14)
(12)—(14)式中:Wi、Wc表示權(quán)重矩陣;bi,bC表示偏置向量。
輸出門決定輸出信息,使用sigmoid層決定要輸出哪些信息,將Ct通過tanh層,將sigmoid層的輸出和tanh層的輸出相乘,得到最終的輸出結(jié)果。輸出門的表達(dá)式分別為
ot=σ(Wo[ht-1,xt]+bo)
(15)
ht=ot*tanh(Ct)
(16)
(15)—(16)式中:Wo表示權(quán)重矩陣;bo表示偏置向量。
BiLSTM將前向和后向LSTM的隱藏層向量拼接作為輸出。
1.2.4CRF層
文本經(jīng)過BERT和BiLSTM層后得到文本序列與標(biāo)簽之間的關(guān)系,無法考慮標(biāo)簽與標(biāo)簽之間的關(guān)系;通過CRF層對得到的預(yù)測標(biāo)簽進(jìn)行約束,減少無效預(yù)測標(biāo)簽的數(shù)量,獲得全局最優(yōu)標(biāo)簽序列[9]。
在CRF層中有兩種類型的分?jǐn)?shù),一種是經(jīng)過BiLSTM層得到的標(biāo)簽概率p,矩陣p大小為n×m,n為句子個數(shù),m為標(biāo)簽種類,Pi,j代表句子中第i個字的第j個標(biāo)簽的概率;另一種是轉(zhuǎn)移矩陣T,Ti,j代表標(biāo)簽i到標(biāo)簽j的轉(zhuǎn)移概率。句子序列x={x1,x2,x3,...,xn}對應(yīng)的標(biāo)簽序列y={y1,y2,y3,...,yn}的得分表示為
(17)
CRF的損失函數(shù)由真實(shí)路徑得分es(x,y)和所有可能路徑總得分構(gòu)成,表示為
(18)
得到CRF層中的標(biāo)簽概率和轉(zhuǎn)移概率后,使用維特比算法找到最短路徑,得到句子中每個字的預(yù)測標(biāo)簽。
根據(jù)食品語料特點(diǎn),句子分為單一實(shí)體關(guān)系抽取和重疊實(shí)體關(guān)系抽取。
單一實(shí)體關(guān)系抽取中,根據(jù)實(shí)體邊界、關(guān)系、角色標(biāo)簽提取出實(shí)體,按順序?qū)?shí)體向前向后匹配。若匹配的兩個實(shí)體,關(guān)系標(biāo)簽相同,角色標(biāo)簽不同,則認(rèn)為這兩個實(shí)體組成一個3元組。重復(fù)此過程直到所有實(shí)體都參與一次匹配。
重疊實(shí)體關(guān)系抽取中,根據(jù)實(shí)體邊界、關(guān)系、角色標(biāo)簽提取出實(shí)體,將非重疊實(shí)體按順序向前向后匹配。若匹配到實(shí)體為非重疊實(shí)體,根據(jù)關(guān)系、角色標(biāo)簽判斷兩實(shí)體是否可組成3元組,匹配過的非重疊實(shí)體不再參與后續(xù)匹配;若匹配到的實(shí)體為重疊實(shí)體,根據(jù)非重疊實(shí)體的關(guān)系標(biāo)簽確定3元組,重疊實(shí)體可繼續(xù)參與后續(xù)匹配。重復(fù)此過程直到所有實(shí)體都標(biāo)記抽取。
本文數(shù)據(jù)來源為京東食品信息和百度百科食品詞條信息。將爬取的語料以句為單位篩選,人工標(biāo)注得到互聯(lián)網(wǎng)食品文本數(shù)據(jù)集(FD-Data)并作為實(shí)驗(yàn)使用的數(shù)據(jù)集。在數(shù)據(jù)集中隨機(jī)選取20%的語料作為測試集,在訓(xùn)練集中選取10%作為驗(yàn)證集。
利用查準(zhǔn)率(P)、查全率(R)和F1值(F1)評估模型的效果,計(jì)算表達(dá)式為
(19)
(20)
(21)
(19)—(20)式中:Tp是將正樣本判定為正樣本的個數(shù);Fp是將負(fù)樣本判定為正樣本的個數(shù);Fn是將正樣本判定為負(fù)樣本的個數(shù)。
模型試驗(yàn)參數(shù)如表1所示。序列標(biāo)注模型訓(xùn)練在Epoch為6時,驗(yàn)證集數(shù)據(jù)表現(xiàn)不再提升,模型的損失函數(shù)變化趨勢如圖4所示。
表1 參數(shù)設(shè)置Tab.1 Parameter setting
圖4 損失函數(shù)圖Fig.4 Loss function graph
為證明PA-BERT序列標(biāo)注模型的有效性,將其同常規(guī)的CNN和BiLSTM模型及添加注意力機(jī)制的CNN和BiLSTM模型做比較。
BiLSTM使用隨機(jī)初始化的字向量作為模型輸入,用以對比本文提出的基于位置感知的領(lǐng)域詞注意力機(jī)制的有效性;BiLSTM-Attention使用經(jīng)注意力加權(quán)后的詞向量作為模型輸入,用以對比本文字詞雙維度向量的有效性。不同模型序列標(biāo)注結(jié)果如表2所示。
通過對比實(shí)驗(yàn)發(fā)現(xiàn),經(jīng)注意力機(jī)制加權(quán)后的BiLSTM-Attention模型比使用隨機(jī)初始化字向量的BiLSTM模型在序列標(biāo)注任務(wù)中表現(xiàn)要好;而PA-BERT模型在前兩個模型的基礎(chǔ)上有了進(jìn)一步提升,可以證明本文提出的模型在實(shí)體關(guān)系抽取任務(wù)中是有效的。
本文通過爬取京東、百度百科等網(wǎng)站的食品信息,構(gòu)建了互聯(lián)網(wǎng)食品文本語料庫,針對食品文本中存在重疊關(guān)系的特點(diǎn),采用重疊關(guān)系實(shí)體標(biāo)注標(biāo)簽和實(shí)體關(guān)系抽取規(guī)則提取文本中的重疊關(guān)系3元組,將實(shí)體關(guān)系抽取任務(wù)轉(zhuǎn)化為序列標(biāo)注問題;使用基于位置感知的領(lǐng)域詞注意力機(jī)制的字詞雙維度語義編碼向量增強(qiáng)字和詞的語義表征和序列文本上下文的理解,構(gòu)建PA-BERT的互聯(lián)網(wǎng)食品文本實(shí)體關(guān)系抽取模型。實(shí)驗(yàn)表明,本文提出的模型在中文互聯(lián)網(wǎng)食品文本中抽取實(shí)體關(guān)系是有效的。