在前不久InfoQ主辦的Qcon全球軟件開發(fā)大會上,達(dá)觀數(shù)據(jù)創(chuàng)始人陳運(yùn)文博士受邀出席發(fā)表了《文本智能處理的深度學(xué)習(xí)技術(shù)》的演講。深度學(xué)習(xí)在人工智能領(lǐng)域已經(jīng)成為熱門的技術(shù),特別是在圖像和聲音領(lǐng)域相比傳統(tǒng)的算法大大提升了識別率。在文本智能處理中深度學(xué)習(xí)有怎樣的具體實踐方法?以下內(nèi)容根據(jù)陳運(yùn)文博士現(xiàn)場分享整理所得。
人工智能目前的三個主要細(xì)分領(lǐng)域為圖像、語音和文本,老師分享的是達(dá)觀數(shù)據(jù)所專注的文本智能處理領(lǐng)域。文本智能處理,亦即自然語言處理,試圖讓機(jī)器來理解人類的語言,而語言是人類認(rèn)知發(fā)展過程中產(chǎn)生的高層次抽象實體,不像圖像、語音可以直接轉(zhuǎn)化為計算機(jī)可理解的對象,它的主要應(yīng)用主要是在智能問答,機(jī)器翻譯,文本分類,文本摘要,標(biāo)簽提取,情感分析,主題模型等等方面。
自然語言的發(fā)展歷程經(jīng)歷了以下幾個階段。這里值得一提的是,關(guān)于語言模型,早在2000年,百度IDL的徐偉博士提出了使用神經(jīng)網(wǎng)絡(luò)來訓(xùn)練二元語言模型,隨后Bengio等人在2001年發(fā)表在NIPS上的文章《A Neural Probabilistic Language Model》,正式提出神經(jīng)網(wǎng)絡(luò)語言模型(NNLM),在訓(xùn)練模型的過程中也能得到詞向量。2007年,Mnih和Hinton在神經(jīng)網(wǎng)絡(luò)語言模型(NNLM)的基礎(chǔ)上提出了log雙線性語言模型(Log-Bilinear Language Model,LBL),同時,Hinton在2007年發(fā)表在 ICML 上的《Three new graphical models for statistical language modelling》初見其將深度學(xué)習(xí)搬入NLP的決心。2008年,Ronan Collobert等人 在ICML 上發(fā)表了《A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning》,其中的模型名字叫C&W模型,這是第一個直接以生成詞向量為目標(biāo)的模型。LBL與NNLM的區(qū)別正如它們的名字所示,LBL的模型結(jié)構(gòu)是一個log雙線性結(jié)構(gòu);而NNLM的模型結(jié)構(gòu)為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。這些積淀也成就了Mikolov創(chuàng)造了實用高效的Word2Vec工具,起初,他用循環(huán)神經(jīng)網(wǎng)絡(luò)RNNLM來做語言模型,發(fā)表paper《Recurrent neural network based language model》,之后就是各種改進(jìn),博士論文研究的也是用循環(huán)神經(jīng)網(wǎng)絡(luò)來做語言模型,《Statistical Language Models based on Neural Networks》。2013年,Mikolov等人同時提出了CBOW和Skip-gram模型。使用了Hierarchial Softmax和Negative Sampling兩種trick來高效獲取詞向量。當(dāng)然這個模型不是一蹴而就的,而是對于前人在NNLM、RNNLM和C&W模型上的經(jīng)驗,簡化現(xiàn)有模型,保留核心部分而得到的。同時開源了Word2Vec詞向量生成工具,深度學(xué)習(xí)才在NLP領(lǐng)域遍地開花結(jié)果。
一般地,文本挖掘各種類型應(yīng)用的處理框架如下所示:
文本數(shù)據(jù)經(jīng)過清洗、分詞等預(yù)處理之后,傳統(tǒng)方法通過提取諸如詞頻、TF-IDF、互信息、信息增益等特征形成高維稀疏的特征集合,而現(xiàn)在則基本對詞進(jìn)行embedding形成低維稠密的詞向量,作為深度學(xué)習(xí)模型的輸入,這樣的框架可用于文本分類、情感分析、機(jī)器翻譯等等應(yīng)用場景,直接端到端的解決問題,也無需大量的特征工程,無監(jiān)督訓(xùn)練詞向量作為輸入可帶來效果的極大提升。
文本分類
對于文本分類,以下列出了幾種典型的深度學(xué)習(xí)模型:
序列標(biāo)注
序列標(biāo)注的任務(wù)就是給每個漢字打上一個標(biāo)簽,對于分詞任務(wù)來說,我們可以定義標(biāo)簽集合為:<nobr aria-hidden="true">LabelSet={B,M,E,S}</nobr>
。B代表這個漢字是詞匯的開始字符,M代表這個漢字是詞匯的中間字符,E代表這個漢字是詞匯的結(jié)束字符,而S代表單字詞。下圖為中文分詞序列標(biāo)注過程:
中文分詞轉(zhuǎn)換為對漢字的序列標(biāo)注問題,假設(shè)我們已經(jīng)訓(xùn)練好了序列標(biāo)注模型,那么分別給每個漢字打上標(biāo)簽集合中的某個標(biāo)簽,這就算是分詞結(jié)束了,因為這種形式不方便人來查看,所以可以增加一個后處理步驟,把B開頭,后面跟著M的漢字拼接在一起,直到碰見E標(biāo)簽為止,這樣就等于分出了一個單詞,而打上S標(biāo)簽的漢字就可以看做是一個單字詞。于是我們的例子就通過序列標(biāo)注,被分詞成如下形式:{跟著 Tfboys 學(xué) 左手 右手 一個 慢動作}
對于序列標(biāo)注,傳統(tǒng)的方法基本是使用大量的特征工程,進(jìn)入CRF模型,但不同的領(lǐng)域需要進(jìn)行相應(yīng)的調(diào)整,無法做到通用。而深度學(xué)習(xí)模型,例如Bi-LSTM+CRF則避免了這樣的情況,可以通用于不同的領(lǐng)域,且直接采用詞向量作為輸入,提高了泛化能力,使用LSTM和GRU等循環(huán)神經(jīng)網(wǎng)絡(luò)還可以學(xué)習(xí)到一些較遠(yuǎn)的上下文特征和一些非線性特征。
經(jīng)典的Bi-LSTM+CRF模型如下所示:
生成式摘要
對于生成式摘要,采用Encode-Decoder模型結(jié)構(gòu),兩者都為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),輸入原文經(jīng)過編碼器編碼為向量,解碼器從向量中提取關(guān)鍵信息,組合成生成式摘要。當(dāng)然,還會在解碼器中引入注意力機(jī)制,以解決在長序列摘要的生成時,個別字詞重復(fù)出現(xiàn)的問題。
此外,在生成式摘要中,采用強(qiáng)化學(xué)習(xí)與深度學(xué)習(xí)相結(jié)合的學(xué)習(xí)方式,通過最優(yōu)化詞的聯(lián)合概率分布,即MLE(最大似然),有監(jiān)督進(jìn)行學(xué)習(xí),在這里生成候選的摘要集。模型圖如下:
模型圖中的ROUGE指標(biāo)評價是不可導(dǎo)的,所以無法采用梯度下降的方式訓(xùn)練,這樣我們就考慮強(qiáng)化學(xué)習(xí),鼓勵reward高的模型,通過給予反饋來更新模型。最終訓(xùn)練得到表現(xiàn)最好的模型。
知識圖譜關(guān)系抽取
對于知識圖譜的關(guān)系抽取,主要有兩種方法,一個是基于參數(shù)共享的方法,對于輸入句子通過共用的 word embedding 層,然后接雙向的 LSTM 層來對輸入進(jìn)行編碼。然后分別使用一個 LSTM 來進(jìn)行命名實體識別 (NER)和一個 CNN 來進(jìn)行關(guān)系分類(RC);另一個是基于聯(lián)合標(biāo)注的方法,把原來涉及到序列標(biāo)注任務(wù)和分類任務(wù)的關(guān)系抽取完全變成了一個序列標(biāo)注問題。然后通過一個端對端的神經(jīng)網(wǎng)絡(luò)模型直接得到關(guān)系實體三元組。
如下圖所示,我們有三類標(biāo)簽,分別是 ①單詞在實體中的位置{B(begin),I(inside),E(end),S(single)}、②關(guān)系類型{CF,CP,…}和③關(guān)系角色{1(entity1),2(entity2)},根據(jù)標(biāo)簽序列,將同樣關(guān)系類型的實體合并成一個三元組作為最后的結(jié)果,如果一個句子包含一個以上同一類型的關(guān)系,那么就采用就近原則來進(jìn)行配對。
總結(jié)--深度學(xué)習(xí)用于文本挖掘的優(yōu)缺點
優(yōu)點:
1. 可以使用非監(jiān)督數(shù)據(jù)訓(xùn)練字詞向量,提升泛化能力
2. 端到端,提供新思路
3. 一些模型結(jié)構(gòu)能夠克服傳統(tǒng)模型缺點
缺點:
1. 小數(shù)據(jù)量效果不一定好
2. 調(diào)參工作量有時不亞于特征工程
3. 客戶部署硬件環(huán)境限制
--原文鏈接--