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