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