摘? 要:隨著機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法在各個(gè)領(lǐng)域的發(fā)展和運(yùn)用,越來(lái)越多的行業(yè)開(kāi)始探索本行業(yè)的智能化發(fā)展之路,利用海量的數(shù)據(jù),結(jié)合人工智能的優(yōu)勢(shì),優(yōu)化業(yè)務(wù),如何使用海量的數(shù)據(jù)是智能化的關(guān)鍵。在海量的數(shù)據(jù)中,文本是一個(gè)龐大群體,不同類(lèi)型的文本由于其本身結(jié)構(gòu)的不同,在處理方面也有不同的策略。因此,針對(duì)移動(dòng)客服對(duì)話(huà)文本的特點(diǎn),文章提出了一種考慮句子結(jié)構(gòu)的文本建模方法。
關(guān)鍵詞:海量數(shù)據(jù);智能化;建模方法
中圖分類(lèi)號(hào):TP391.1? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2096-4706(2020)03-0033-03
Abstract:With the development and application of machine learning and deep learning methods in various fields,more and more industries begin to explore the intelligent development of the industry,using massive data,combining the advantages of artificial intelligence,optimizing business,how to use massive data is the key to intelligent. In the massive data,text is a huge group. Different types of text have different strategies in processing because of their own structure. Therefore,according to the characteristics of mobile customer service dialogue text,this paper proposes a text modeling method considering sentence structure.
Keywords:massive data;intelligence;modeling methods
0? 引? 言
現(xiàn)在的大數(shù)據(jù)主要是指圖形圖像數(shù)據(jù)和文本數(shù)據(jù),而對(duì)文本數(shù)據(jù)的建模遠(yuǎn)比圖形圖像數(shù)據(jù)要困難。一方面,圖形圖像數(shù)據(jù)本身便是數(shù)值化的數(shù)字,數(shù)字即代表了顏色,而文本數(shù)據(jù)是非數(shù)值化數(shù)據(jù);另一方面,圖形圖像本身具有空間結(jié)構(gòu),這樣的結(jié)構(gòu)也體現(xiàn)在了像素點(diǎn)的位置分布中,但是文本數(shù)據(jù)則沒(méi)有清晰的結(jié)構(gòu),如何建模文本數(shù)據(jù)中的結(jié)構(gòu)也是自然語(yǔ)言處理中的一個(gè)難點(diǎn)。
1? 傳統(tǒng)文本建模方法
在自然語(yǔ)言處理的眾多任務(wù)中,文本分類(lèi)一直是比較熱門(mén)的研究領(lǐng)域,具有很廣的應(yīng)用場(chǎng)景,如情感分類(lèi)、醫(yī)療數(shù)據(jù)分類(lèi)。在深度學(xué)習(xí)方面,我們對(duì)文本數(shù)據(jù)的建模通常都是基于文本本身,即僅僅使用文檔數(shù)據(jù)本身的字信息或詞信息,通過(guò)字向量或詞向量的組合,將文本表示為二維張量。這樣的建模方法因其通俗易懂、實(shí)現(xiàn)簡(jiǎn)單成為最常見(jiàn)的建模方法。但是這種建模方法有一個(gè)顯著的缺點(diǎn),那就是忽略了文本本身的結(jié)構(gòu)信息,它將每個(gè)句子對(duì)文本特征提取以及對(duì)文本分類(lèi)或其他任務(wù)的貢獻(xiàn)都看作是一樣的。如果文本的句子間確實(shí)沒(méi)有明顯的結(jié)構(gòu)關(guān)系,這樣的方法是合適的,因?yàn)檫@些句子在文本中是等價(jià)的。但是如果文本中的句子間存在明顯的結(jié)構(gòu)關(guān)系,不同句子在文本中的地位不一樣時(shí),不考慮句子結(jié)構(gòu),直接使用文檔粒度的方法對(duì)文本進(jìn)行建模顯然是不合理的。在移動(dòng)客服對(duì)話(huà)文本中,由于文本數(shù)據(jù)具有“問(wèn)答式”的句式特點(diǎn),因此沒(méi)有采用上述常用的文本建模方法。針對(duì)移動(dòng)客服文本數(shù)據(jù),我們提出了一種考慮句子結(jié)構(gòu)的文檔建模方法。
從文本的數(shù)據(jù)特點(diǎn)來(lái)看,由于數(shù)據(jù)是由客服對(duì)話(huà)錄音翻譯而來(lái),因此數(shù)據(jù)本身具有很強(qiáng)的結(jié)構(gòu)信息。我們將一次客服錄音的文本當(dāng)作一篇文檔,其中每篇文檔都由多個(gè)“問(wèn)句,答句”的句子對(duì)構(gòu)成。通常情況下,問(wèn)句大多由客服代表提出,根據(jù)問(wèn)句的內(nèi)容,消費(fèi)者會(huì)進(jìn)行相應(yīng)的回答,我們把客服代表兩個(gè)問(wèn)題之間的所有文本當(dāng)作消費(fèi)者對(duì)前一個(gè)問(wèn)題的回答。用A代表客服代表的問(wèn)句,B代表消費(fèi)者的答句,文本數(shù)據(jù)格式即形如AiBjAi+1的對(duì)話(huà)記錄,我們將Bj看作對(duì)Ai的回答,與Ai+1無(wú)關(guān)??头淼膯?wèn)句A大多具有一定的行業(yè)規(guī)范性和順序性,問(wèn)句中包含的許多信息是不可以忽略的,這些信息包含了消費(fèi)者可能會(huì)關(guān)心的問(wèn)題,如“網(wǎng)絡(luò)信號(hào)如何”“網(wǎng)絡(luò)速度如何”“流量使用情況如何”等等。而在消費(fèi)者的答句B中,通常都有一些蘊(yùn)含答案的詞匯,如“網(wǎng)速太慢”“沒(méi)有信號(hào)”“網(wǎng)絡(luò)太差”“服務(wù)太差”“換號(hào)轉(zhuǎn)網(wǎng)”等等。因此,在對(duì)消費(fèi)者情緒及行為進(jìn)行分析的任務(wù)中,問(wèn)句A雖然沒(méi)有答句B重要,但是也同樣不可忽略。建模句子的結(jié)構(gòu)信息尤其必要。
其實(shí)在自然語(yǔ)言處理問(wèn)題中,這樣記錄字、詞或句子結(jié)構(gòu)信息也是一種常用的做法,比如谷歌在2018年10月發(fā)布的模型BERT[3]中,就是用到了字的位置信息,這樣的位置信息對(duì)其任務(wù)效果的提升也起到的一定的作用。常用位置信息的建模也大多和BERT模型中的方法一樣,但是這個(gè)方法對(duì)句子建模則不適用。一方面,結(jié)構(gòu)信息只有兩種:“問(wèn)句”和“答句”,在建模文本中,這兩個(gè)信息值在不斷地重復(fù);另一方面,結(jié)構(gòu)信息不像傳統(tǒng)的位置信息關(guān)注字句的順序,而是關(guān)注句子的性質(zhì)。因此無(wú)法使用類(lèi)似BERT上傳統(tǒng)的position embedding方法來(lái)建模移動(dòng)客服對(duì)話(huà)文本,但是基于這樣的建模思想,我們提出了針對(duì)對(duì)話(huà)序列的句子建模方法。
傳統(tǒng)的文本建模通常包含以下步驟:(1)文本序列化,即將文本轉(zhuǎn)化為數(shù)值;(2)文本向量化,即文本的embedding進(jìn)行表示,將文本表示為一個(gè)多維的張量,以此豐富文本的信息;(3)將文本張量放入模型中,進(jìn)行文本特征學(xué)習(xí)以及下游任務(wù),如分類(lèi)。我們提出的建模方法的主要貢獻(xiàn)就在于在文本向量化的過(guò)程中,不僅僅將字或詞進(jìn)行向量化,還編碼了每個(gè)字或詞的屬性信息,即對(duì)該句是問(wèn)句還是答句也進(jìn)行了區(qū)分。這樣保留了文本的結(jié)構(gòu)信息,這樣的信息體現(xiàn)了整篇對(duì)話(huà)文檔中不同句子的重要性。相對(duì)于將問(wèn)句和答句平等對(duì)待的文檔粒度的文本建模方法,我們提出的建模方法是基于句子粒度的,符合常識(shí),更加符合文本數(shù)據(jù)的特點(diǎn)。以單篇文檔為例,我們的建模方法過(guò)程如圖1所示。
基于圖1,我將從以下幾個(gè)方面介紹我們提出的建模方法:文本序列化、segment信息提取、句子embedding表示、segment embedding表示、文本embedding表示。
2? 文本序列化
文本序列化是所有機(jī)器學(xué)習(xí)以及深度學(xué)習(xí)方法的第一步,序列化即使用多維的向量來(lái)表示某個(gè)字或詞,這個(gè)向量或其變換后的向量最終作為模型的輸入。這個(gè)序列化的向量即代表了這個(gè)文本的所有信息,所以如何得到更好的向量表示是十分關(guān)鍵的問(wèn)題,這也是眾多學(xué)者的研究領(lǐng)域。傳統(tǒng)的文本表示方法,如基于詞表的one-hot表示、基于統(tǒng)計(jì)信息的tf-idf表示都是很常用的序列化方法。one-hot表示由于其向量大小等于詞表大小,詞表大小通常較大,造成了表示向量的稀疏性,而tf-idf表示由于基于統(tǒng)計(jì)信息,所以未考慮句子的上下文信息。在深度學(xué)習(xí)領(lǐng)域,word2vec[1]、paragraph2vec[2]、doc2vec[2]都是較常用且效果不錯(cuò)的方法,尤其是word2vec。針對(duì)移動(dòng)文本數(shù)據(jù),由于數(shù)據(jù)不具有段落結(jié)構(gòu),所以不采用paragraph2vec方法。另外,我們的建模方法需要考慮句子結(jié)構(gòu),而doc2vec方法是不考慮文檔間句子結(jié)構(gòu)的,因此也不使用這個(gè)方法來(lái)建模,最終我們選取word2vec來(lái)建模句子,與使用預(yù)訓(xùn)練的詞向量不同,隨機(jī)初始化詞向量。主要步驟:(1)使用jieba分詞工具對(duì)每個(gè)問(wèn)句、答句進(jìn)行分詞;(2)對(duì)分詞后的句子進(jìn)行padding對(duì)齊,使每句文本長(zhǎng)度相等;(3)隨機(jī)初始化每個(gè)詞的向量表示,指定向量維度即可。這樣便完成了文本的序列化表示,每個(gè)詞都有一個(gè)特定維度的向量。
3? segment信息提取
segment信息即指每篇移動(dòng)客服文本中,哪些是問(wèn)句,哪些是答句。在建模過(guò)程中,使用數(shù)字1代表問(wèn)句,數(shù)字2代表答句。那么一篇文本的segment信息即為一個(gè)二值向量,向量長(zhǎng)度為文檔中句子的總數(shù)。直接按行讀取文本中的句子,依次標(biāo)注為1或2,即可得到該文本對(duì)應(yīng)的segment二值向量。
4? 句子embedding表示
在文本序列化中,我們介紹了字或詞的向量化,此時(shí)每句話(huà)都是由一個(gè)二維張量表示的,在深度學(xué)習(xí)中,還需要繼續(xù)對(duì)該二維張量進(jìn)行特征提取,形成一個(gè)特征向量,該特征向量代表這個(gè)句子的表示。如何將詞向量整合成句子向量也有很多方式,比如加權(quán)平均、求和等。在本次建模中,我們采用對(duì)所有字、詞向量求平均的方式作為句子embedding表示。使用字、詞表示的值表示句子也是目前較為常用的特征提取方式之一。
5? segment embedding表示
在segment信息步驟中,我們構(gòu)建了句子的結(jié)構(gòu)信息,每篇文檔都有對(duì)應(yīng)的結(jié)構(gòu)信息向量,由一個(gè)二值向量存儲(chǔ)。雖然句子的結(jié)構(gòu)信息已經(jīng)是數(shù)值類(lèi)型(1、2表示),但是單個(gè)數(shù)值表示的特征容易在后續(xù)的提取中失去作用,所以為了保證結(jié)構(gòu)信息這個(gè)特征在后續(xù)特征提取中仍然發(fā)揮作用,我們使用多維向量來(lái)表示它們,而不是單純的一個(gè)整數(shù)值。我們使用序列化文本字和詞的word2vec方法,把句子的結(jié)構(gòu)信息值1、2也隨機(jī)初始化成多維向量。這樣每個(gè)句子的結(jié)構(gòu)信息便是一個(gè)由浮點(diǎn)數(shù)組成的向量,在后續(xù)的特征提取中,多維的結(jié)構(gòu)信息得以保留。
6? 文本embedding表示
通過(guò)上述方法,我們得到了一篇對(duì)話(huà)記錄的每個(gè)句子的向量表示,以及這個(gè)句子對(duì)應(yīng)的結(jié)構(gòu)信息的向量表示。假設(shè)文本D含有k個(gè)句子,詞向量的維度為dim1,結(jié)構(gòu)信息向量的維度為dim2,則對(duì)于D文本,有k*dim1大小的文本信息矩陣以及k*dim2的結(jié)構(gòu)信息矩陣。為了得到D的表示,可以采用以下的策略:(1)將句子的文本信息以及結(jié)構(gòu)信息對(duì)應(yīng)的句子信息拼接在一起,得到大小為k*(dim1+dim2)的矩陣,這個(gè)矩陣即表示文本D;(2)如果dim1=dim2=dim,可以采取信息相加的方式,即得到k*dim大小的矩陣,矩陣對(duì)應(yīng)位置的值即為文本信息矩陣和結(jié)構(gòu)信息矩陣值之和,這樣便得到了一篇文檔D的向量表示。
使用同樣的方法,對(duì)其他文檔進(jìn)行建模以及表示,最終得到訓(xùn)練數(shù)據(jù),即多個(gè)三維張量。假設(shè)其中一個(gè)張量大小為N*L*E,其中N代表文檔數(shù)量,L代表詞向量個(gè)數(shù),E代表embedding的維度,即dim1+dim2或dim(dim1=dim2時(shí))。
完成文本數(shù)據(jù)的建模后,可以將數(shù)據(jù)張量作為各種不同的深度模型的輸入,在經(jīng)過(guò)深度模型的特征提取之后,得到最終用來(lái)分類(lèi)的特征矩陣,再經(jīng)過(guò)最后模型的輸出層,便得到了分類(lèi)結(jié)果。
7? 結(jié)? 論
針對(duì)移動(dòng)數(shù)據(jù)文本,由于文本結(jié)構(gòu)的特殊性,使用傳統(tǒng)的文本建模方式會(huì)直接忽略這種結(jié)構(gòu)特征,忽略這一文本中普遍存在的特征明顯是不合理的,因此,針對(duì)數(shù)據(jù)的結(jié)構(gòu)特點(diǎn),我們提出了一種新的建模方法。這種建模方法有效地考慮了移動(dòng)客服對(duì)話(huà)文本中問(wèn)句與答句的結(jié)構(gòu)特點(diǎn),使得我們可以將文本的結(jié)構(gòu)特征與文本本身的含義結(jié)合在一起,由此可以更加合理地構(gòu)建移動(dòng)客服對(duì)話(huà)文本。
參考文獻(xiàn):
[1] MIKOLOV T,SUTSKEVER I,CHEN K,et al. Distributed representations of words and phrases and their compositionality [C]//Advances in neural information processing systems,2013:3111-3119.
[2] LE Q,MIKOLOV T.Distributed representations of sentences and documents [C]//International conference on machine learning,2014:1188-1196.
[3] DEVLIN J,CHANG M W,LEE K,et al. Bert:Pre-training of deep bidirectional transformers for language understanding [J].arXiv preprint arXiv:1810.04805,2018.
作者簡(jiǎn)介:鐘建(1969-),男,漢族,四川成都人,高級(jí)工程師,碩士研究生,研究方向:移動(dòng)網(wǎng)絡(luò)的建設(shè)維護(hù)和優(yōu)化。