賴佳揚(yáng),張曉濱,馬瑛超
(西安工程大學(xué) 計(jì)算機(jī)科學(xué)學(xué)院,陜西 西安 710048)
隨著社會的不斷發(fā)展,消費(fèi)者的購物方式發(fā)生了巨大的改變。服裝作為生活中的必需品,已經(jīng)成為網(wǎng)上購物的第一大商品。由于服裝需求的差異性,消費(fèi)者購物選擇時需要頻繁地與商家進(jìn)行溝通。這不但對商家的知識提出了挑戰(zhàn),更重要的是人工服務(wù)需要大量的人力資源[1]。知識圖譜作為一種結(jié)構(gòu)化的知識庫,通過實(shí)體關(guān)系相互連接,已經(jīng)成為人工智能應(yīng)用于知識問答中的重要基礎(chǔ)。目前一些大型知識圖譜(如CN-DBPedia)[2-3]已得到了較好的應(yīng)用。服裝作為傳統(tǒng)行業(yè),其領(lǐng)域內(nèi)的智能化技術(shù)仍在發(fā)展。知識問答作為知識圖譜下游應(yīng)用的重要組成部分,問答方法旨在對用戶的輸入信息進(jìn)行分析和挖掘,而后利用知識圖譜進(jìn)行答案的搜索,最后反饋給用戶?;谥R問答構(gòu)建智能客服系統(tǒng)能夠很好地提高服裝智能化水平并減少人力資源需求。
基于知識圖譜的問答方法大致可分為三類:基于語義解析的方法、基于信息檢索的方法以及基于知識嵌入的方法。
基于語義解析的方法是利用直接映射或者神經(jīng)網(wǎng)絡(luò)方法將自然語言映射成為結(jié)構(gòu)化的表達(dá),而后通過對知識圖譜的子圖進(jìn)行匹配完成答案的檢索。早期Steedman等人[4]提出組合范疇語法,利用詞匯表完成問句到結(jié)構(gòu)化表達(dá)的轉(zhuǎn)換。孟明明等人[5]提出了一種語義查詢拓展方法解決從知識庫中無法搜索到理想答案的問題,實(shí)現(xiàn)了對知識圖譜內(nèi)容的多語義拓展。上述直接映射的方法依賴于人工制定規(guī)則,因此該類方法的適應(yīng)性很差。Dong等人[6]基于神經(jīng)網(wǎng)絡(luò)進(jìn)行語義解析,他們通過將映射問題轉(zhuǎn)換為翻譯問題,通過一個基于注意力的編碼器-解碼器結(jié)構(gòu)完成問句的映射。Zhu等人[7]提出了一種Tree2seq模型,該模型將句子映射到知識庫的特征空間中以加強(qiáng)其映射的準(zhǔn)確性?;谡Z義解析的方法在問答中是較為規(guī)范的流程,這類方法能夠有效地減少問答的檢索時間,但此類方法的誤差對任務(wù)的后續(xù)影響較大,并影響到最終的結(jié)果。
基于知識嵌入的方法則起源于知識圖譜推理的發(fā)展,包括TransE[8]、TransR以及ITMEA[9]等知識圖譜嵌入模型的提出都為知識圖譜問答提出了新的思路。Huang等人[10]提出一種基于嵌入的問答方法,該方法將問題作為輸入,并對其進(jìn)行知識圖譜嵌入的映射,在知識圖譜的表示中找到其相似度最高的表示,而后將實(shí)體作為答案進(jìn)行輸出。Niu等人[11]將路徑和多關(guān)系問題間的語義關(guān)系引入問答任務(wù),并基于此提出了PKEEQA方法,通過實(shí)驗(yàn)對比,該方法提高了多關(guān)系問答的性能。然而基于嵌入的方法由于需要將圖譜和問句進(jìn)行映射,從而降低了方法的可解釋性,這在問答環(huán)境下是十分致命的。
基于信息檢索的方法則是利用問句中的實(shí)體對知識庫進(jìn)行搜索,利用其相關(guān)子圖進(jìn)行搜索,進(jìn)而構(gòu)成答案集合。Yao等人[12]利用句法依存樹對問句進(jìn)行解析,分析其問題焦點(diǎn),而后對知識圖譜進(jìn)行檢索,最終通過對比問題焦點(diǎn)、問題核心動詞等方法完成答案的確定。Dong等人[13]利用Freebase進(jìn)行問答系統(tǒng)的構(gòu)建,該模型利用多列卷積神經(jīng)網(wǎng)絡(luò)從答案的路徑、背景等對問題進(jìn)行理解,而后對檢索出的答案也使用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行編碼最終比較二者的相似性。Xu等人[14]在圖譜的基礎(chǔ)上為實(shí)體引入描述信息,進(jìn)而對描述信息進(jìn)行編碼最終完成答案和問題的匹配。雖然以上方法都取得了較好的結(jié)果,但并未考慮到問題涉及實(shí)體的多跳關(guān)系相互之間的語義聯(lián)系對答案的影響。
基于此,該文在信息檢索的基礎(chǔ)上提出一種基于語義匹配的多跳檢索問答生成方法。該方法通過在知識庫中檢索目標(biāo)實(shí)體的多跳信息作為答案集合,而后將生成問題轉(zhuǎn)換為匹配問題,并在模型中設(shè)計(jì)了以LSTM為結(jié)構(gòu)的跳轉(zhuǎn)路徑學(xué)習(xí)層,將學(xué)習(xí)到的特征與問句進(jìn)行匹配,然后利用深度學(xué)習(xí)網(wǎng)絡(luò)進(jìn)行匹配評分的計(jì)算,最終應(yīng)用該方法完成了基于知識圖譜的服裝問答系統(tǒng)。
模式層又稱為本體,其作為知識圖譜的骨架,具體規(guī)定著知識圖譜的實(shí)體定義和關(guān)系定語。該文采用自頂向下的方法構(gòu)建服裝領(lǐng)域知識圖譜,數(shù)據(jù)以“中國服裝網(wǎng)”、“服裝網(wǎng)”等專業(yè)網(wǎng)站所提供的國家標(biāo)準(zhǔn)GB/T31007(紡織服裝編碼)、GB/T 15557-2008(服裝術(shù)語)為源構(gòu)建核心概念。實(shí)體概念與關(guān)系定義如表1所示,實(shí)體包含概念、設(shè)計(jì)細(xì)節(jié)、制造物、生產(chǎn)相關(guān)以及教育相關(guān)。關(guān)系包括上下位概念、組成構(gòu)成、同義關(guān)系以及部分與整體的關(guān)系。
如表1所示,將服裝實(shí)體概念進(jìn)行了五類劃分,并為每個分類進(jìn)行了細(xì)分,在實(shí)體識別時,模型將按照表中所示的概念進(jìn)行分類。
表1 實(shí)體概念與關(guān)系定義
實(shí)體屬性在本體中所定義的實(shí)體通用屬性有中文名稱、英文名稱、描述信息等,并且參照結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)中的信息為不同的實(shí)體類別和小類增加了新的屬性信息。如服裝面料增加了主要成分、適用衣物、特點(diǎn)、洗滌方式、編織方式、印染方式。
由于服裝領(lǐng)域內(nèi)網(wǎng)頁知識的不規(guī)范性,該文使用包裝器方式對獲取的知識進(jìn)行進(jìn)一步的解析,最終獲得包含實(shí)體和實(shí)體關(guān)系的三元組。與此同時,為進(jìn)一步利用服裝文本中的知識進(jìn)行圖譜構(gòu)建,該文對文本信息利用深度學(xué)習(xí)模型進(jìn)行知識抽取,這里主要包含對實(shí)體的實(shí)體識別和關(guān)系抽取。
2.2.1 實(shí)體識別
實(shí)體識別的目的是為了將文本中出現(xiàn)的實(shí)體識別出來并確定其類型,該文利用Bert+BiLSTM+CRF模型進(jìn)行服裝實(shí)體識別。具體的,文本通過Bert預(yù)訓(xùn)練層[15]將文本進(jìn)行字符級的編碼,而后將編碼傳入BiLSTM網(wǎng)絡(luò)層進(jìn)行文本上下文特征的學(xué)習(xí),最終傳入序列標(biāo)注層CRF得到文本對應(yīng)字符的識別結(jié)果。訓(xùn)練數(shù)據(jù)使用人工標(biāo)注的服裝實(shí)體抽取數(shù)據(jù)集進(jìn)行,模型的準(zhǔn)確率為0.94。
2.2.2 關(guān)系抽取
關(guān)系抽取利用基于輸入控制長短期記憶網(wǎng)絡(luò)模型[16]將實(shí)體識別模型識別出的實(shí)體進(jìn)行配對后對其關(guān)系進(jìn)行識別。關(guān)系抽取的模型首先通過編碼層對文本進(jìn)行編碼,并依據(jù)句法依存樹生成控制向量,而后利用輸入控制長短期記憶網(wǎng)絡(luò)進(jìn)行上下文特征的學(xué)習(xí),輸入控制長短期記憶網(wǎng)絡(luò)在傳統(tǒng)LSTM網(wǎng)絡(luò)上添加輸入控制單元,單元結(jié)構(gòu)如圖1所示。
圖1 輸入控制單元結(jié)構(gòu)
圖中,門閥控制單元計(jì)算如下所示:
ct=σ(Wc?[ht-1,xt]+bc)
其中,ct為輸入控制門的控制信息,xt為更新后的輸入信息,x_ct為控制向量,Wc和bc為記憶門的權(quán)重及偏置值。
聚焦式注意力計(jì)算進(jìn)行特征級別的注意力機(jī)制的計(jì)算,該文選擇聚焦式注意力機(jī)制將經(jīng)過門閥控制單元計(jì)算出的輸入與實(shí)體信息進(jìn)行注意力機(jī)制的計(jì)算,公式如下:
ai=softmax(s(xi,q))
其中,ai為第i個特征的注意力權(quán)重,s為注意力打分函數(shù),xi為t時刻第i個輸入特征,q為key的實(shí)體特征。
在特征級別的注意力計(jì)算中,輸入為t時刻輸入特征的值,q為實(shí)體信息的表示,文本在選擇注意力打分函數(shù)時使用雙線性模型,公式如下:
s(xi,q)=xiWTq
其中,W為可訓(xùn)練參數(shù),維度與q相同。
而后從編碼中根據(jù)實(shí)體位置提取實(shí)體特征,進(jìn)而傳入注意力層,將文本特征與實(shí)體特征進(jìn)行注意力計(jì)算,最后通過分類網(wǎng)絡(luò)得到關(guān)系抽取的結(jié)果。
基于輸入控制長短期記憶網(wǎng)絡(luò)能夠?qū)?fù)雜的服裝文本進(jìn)行有效的關(guān)系抽取。
以“中國服裝網(wǎng)”、“服裝網(wǎng)”及百度百科等開源數(shù)據(jù)進(jìn)行知識抽取,從中抽取了5 201個實(shí)體、3 140條實(shí)體關(guān)系。圖譜囊括了服裝材料、服裝概念、服裝教育相關(guān)、設(shè)計(jì)細(xì)節(jié)等實(shí)體信息。圖譜實(shí)體分布見表2。
表2 圖譜實(shí)體分布
通常知識圖譜保存的方式有三元組和圖數(shù)據(jù)庫,該文的服裝知識圖譜使用Neo4j圖數(shù)據(jù)庫進(jìn)行保存。圖2展示了部分知識圖譜。
圖2 部分知識圖譜
問答系統(tǒng)處理流程包括:輸入問題;實(shí)體識別;知識庫查詢;答案匹配;答案回復(fù)。
3.2.1 服裝實(shí)體識別
在得到用戶的輸入后,該文通過命名實(shí)體識別模型對問句進(jìn)行實(shí)體識別,采用知識抽取中命名識別模型的Bert+BiLSTM+CRF模型,模型結(jié)構(gòu)如圖3所示。
圖3 命名實(shí)體識別模型
模型訓(xùn)練采用標(biāo)注的服裝實(shí)體識別數(shù)據(jù)集,訓(xùn)練使用SGD優(yōu)化算法進(jìn)行參數(shù)的調(diào)優(yōu)。
3.2.2 基于Neo4j的數(shù)據(jù)庫查詢
該文使用Cypher語句對Neo4j圖數(shù)據(jù)庫進(jìn)行查詢,查詢語句為:Math(a)-[關(guān)系]-(b) where b.name=“實(shí)體”return a.name。在得到文本中的實(shí)體指稱后,對實(shí)體和查詢語句進(jìn)行拼接后再查詢,并且對查詢到的實(shí)體進(jìn)行再次搜索,以實(shí)現(xiàn)對知識的多跳搜索。實(shí)體搜索的范圍考慮到問答的一般形式,設(shè)置兩跳為最大跳轉(zhuǎn)數(shù)。最終通過搜索可以得到指稱實(shí)體圍繞兩跳范圍的所有對象。
3.2.3 答案匹配
在得到實(shí)體的多跳數(shù)據(jù)后,對數(shù)據(jù)和問句文本進(jìn)行語義匹配,該文通過建立一個基于Bert的語義匹配模型對數(shù)據(jù)進(jìn)行匹配,模型結(jié)構(gòu)如圖4所示。
圖4 答案匹配模型結(jié)構(gòu)
模型通過Bert編碼層對路徑和文本進(jìn)行編碼,編碼時實(shí)體和關(guān)系表示均占用十個字符,其余以空格補(bǔ)全。模型利用Bert對于拼接文本中用[SEP]拼接后進(jìn)行編碼。利用LSTM對搜索到的實(shí)體路徑進(jìn)行再次編碼,而后與問句編碼進(jìn)行拼接后傳入自注意力層,最后使用Bert編碼層中[CLS]位置的編碼與自注意力層拼接后傳入以Sigmoid為激活函數(shù)的全連接層為模型的輸出。
模型的優(yōu)化目標(biāo)如下:
模型的輸出結(jié)果為對于當(dāng)前搜索和問句的匹配度,最終對匹配度進(jìn)行排序,選擇評分大于閾值的搜索結(jié)果作為答案傳遞給用戶。
為驗(yàn)證該知識問答方法的有效性,并測試基于該知識圖譜的服裝問答系統(tǒng)的性能,該文對系統(tǒng)答復(fù)的準(zhǔn)確性和系統(tǒng)的響應(yīng)時間進(jìn)行了評測。
模型在對文本進(jìn)行匹配后,系統(tǒng)將評分大于閾值的答案推送給用戶,而閾值的選取將直接關(guān)系到系統(tǒng)的性能。為選擇效果最優(yōu)的參數(shù),以[0.5,0.9]為值域、以0.01為間隔進(jìn)行了閾值選取實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如圖5所示。
圖5 評分閾值選取實(shí)驗(yàn)結(jié)果
由圖5可見,在閾值設(shè)置過低時,問答系統(tǒng)會將很多錯誤的答句反饋給用戶,進(jìn)而導(dǎo)致準(zhǔn)確率下降,而當(dāng)閾值設(shè)置過高時,則會過濾掉一些正確答案,因此,系統(tǒng)選擇0.7作為評分的閾值。
該文以自建的服裝電商領(lǐng)域服裝知識和服裝搭配推薦問答語料集進(jìn)行模型訓(xùn)練和驗(yàn)證。數(shù)據(jù)來源為“中國服裝網(wǎng)”中的問答欄目內(nèi)容和與學(xué)校合作電商的問答數(shù)據(jù)記錄,將6 325條數(shù)據(jù)作為訓(xùn)練數(shù)據(jù),2 000條作為驗(yàn)證數(shù)據(jù)。
模型訓(xùn)練硬件環(huán)境為RTX3060及Intel(R) Core(TM) i7-10750H 。軟件環(huán)境為python3.6,tensorflow1.14.0,keras2.2.4,Bert版本為Bert-chinese-base。系統(tǒng)部署于阿里云服務(wù)器,后端框架為SSM。
4.3.1 實(shí)驗(yàn)評測指標(biāo)
實(shí)驗(yàn)評價指標(biāo)選用精確率P。給定輸入問答集Q,對于Q中每條問句q由N個答案組成。則問答精確率的評價指標(biāo)定義如下:
4.3.2 實(shí)驗(yàn)結(jié)果
為驗(yàn)證該問答系統(tǒng)的有效性,以自建的服裝電商領(lǐng)域服裝知識和服裝搭配推薦問答語料集進(jìn)行實(shí)驗(yàn)。將傳統(tǒng)的模板匹配方法(Template Match)、圖譜嵌入方法(TransE、TransR)和語義解析方法(NER+RE、Tree2seq)和文中方法進(jìn)行對比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 問答方法準(zhǔn)確性實(shí)驗(yàn)
由表3可見,基于模板匹配的方法相對于文中方法在準(zhǔn)確率上有所不足,原因是模板匹配方法依賴于模板的制定,而模板的制定需要付出巨大的代價以適應(yīng)各個問答語句。而基于知識圖譜推斷的方法相對傳統(tǒng)方法取得了很好的效果,但基于知識圖譜推斷的方法缺乏可解釋性且在稀疏圖譜中效果不佳。而文中方法通過準(zhǔn)確率較高的實(shí)體識別方法將兩跳以內(nèi)的實(shí)體進(jìn)行搜索,而后通過語義匹配方法進(jìn)行答案生成,這相對于使用實(shí)體識別和關(guān)系抽取先判別意圖和實(shí)體而后搜索的方法具有更高的準(zhǔn)確性。
為驗(yàn)證系統(tǒng)的適用性,該文使用無答案、一跳查找以及兩跳查找的問句進(jìn)行測試,測試結(jié)果如表4所示。
表4 系統(tǒng)響應(yīng)時間實(shí)驗(yàn)結(jié)果
文中方法由于存在命名實(shí)體識別和匹配兩個階段,且使用了Bert預(yù)訓(xùn)練模型,因此系統(tǒng)的響應(yīng)速度相對較慢,但響應(yīng)時間總體符合系統(tǒng)的應(yīng)用環(huán)境。
為了滿足服裝電商領(lǐng)域智能客服問答的需求,設(shè)計(jì)實(shí)現(xiàn)了以服裝知識圖譜為基礎(chǔ)的服裝知識問答系統(tǒng)。該系統(tǒng)基于信息檢索的方式進(jìn)行答句生成,提出的答句生成方法通過在知識庫中檢索目標(biāo)實(shí)體的多跳信息作為答案集合,而后將生成問題轉(zhuǎn)換為匹配問題,并設(shè)計(jì)了以LSTM為結(jié)構(gòu)的學(xué)習(xí)跳轉(zhuǎn)路徑。最后的實(shí)驗(yàn)驗(yàn)證了該問答系統(tǒng)的有效性,可滿足服裝領(lǐng)域智能客服環(huán)境中服裝知識和服裝搭配推薦問答的需求。