轉(zhuǎn)帖|實(shí)施案例|編輯:龔雪|2017-03-27 16:56:54.000|閱讀 847 次
概述:用深度學(xué)習(xí)(CNN RNN Attention)解決大規(guī)模文本分類問題 - 綜述和實(shí)踐
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
業(yè)務(wù)問題描述:
淘寶商品的一個(gè)典型的例子見下圖,圖中商品的標(biāo)題是“夏裝雪紡條紋短袖t恤女春半袖衣服夏天中長款大碼胖mm顯瘦上衣夏”。淘寶網(wǎng)后臺(tái)是通過樹形的多層的類目體系管理商品的,覆蓋葉子類目數(shù)量達(dá)上萬個(gè),商品量也是10億量級,我們是任務(wù)是根據(jù)商品標(biāo)題預(yù)測其所在葉子類目,示例中商品歸屬的類目為“女裝/女士精品>>蕾絲衫/雪紡衫”。很顯然,這是一個(gè)非常典型的短文本多分類問題。接下來分別會(huì)介紹下文本分類傳統(tǒng)和深度學(xué)習(xí)的做法,最后簡單梳理下實(shí)踐的經(jīng)驗(yàn)。
文本分類問題算是自然語言處理領(lǐng)域中一個(gè)非常經(jīng)典的問題了,相關(guān)研究最早可以追溯到上世紀(jì)50年代,當(dāng)時(shí)是通過專家規(guī)則(Pattern)進(jìn)行分類,甚至在80年代初一度發(fā)展到利用知識工程建立專家系統(tǒng),這樣做的好處是短平快的解決top問題,但顯然天花板非常低,不僅費(fèi)時(shí)費(fèi)力,覆蓋的范圍和準(zhǔn)確率都非常有限。 后來伴隨著統(tǒng)計(jì)學(xué)習(xí)方法的發(fā)展,特別是90年代后互聯(lián)網(wǎng)在線文本數(shù)量增長和機(jī)器學(xué)習(xí)學(xué)科的興起,逐漸形成了一套解決大規(guī)模文本分類問題的經(jīng)典玩法,這個(gè)階段的主要套路是人工特征工程+淺層分類模型。訓(xùn)練文本分類器過程見下圖:
整個(gè)文本分類問題就拆分成了特征工程和分類器兩部分,玩機(jī)器學(xué)習(xí)的同學(xué)對此自然再熟悉不過了。
特征工程在機(jī)器學(xué)習(xí)中往往是最耗時(shí)耗力的,但卻極其的重要。抽象來講,機(jī)器學(xué)習(xí)問題是把數(shù)據(jù)轉(zhuǎn)換成信息再提煉到知識的過程,特征是“數(shù)據(jù)–>信息”的過程,決定了結(jié)果的上限,而分類器是“信息–>知識”的過程,則是去逼近這個(gè)上限。然而特征工程不同于分類器模型,不具備很強(qiáng)的通用性,往往需要結(jié)合對特征任務(wù)的理解。
文本分類問題所在的自然語言領(lǐng)域自然也有其特有的特征處理邏輯,傳統(tǒng)分本分類任務(wù)大部分工作也在此處。文本特征工程分位文本預(yù)處理、特征提取、文本表示三個(gè)部分,最終目的是把文本轉(zhuǎn)換成計(jì)算機(jī)可理解的格式,并封裝足夠用于分類的信息,即很強(qiáng)的特征表達(dá)能力。
文本預(yù)處理
文本預(yù)處理過程是在文本中提取關(guān)鍵詞表示文本的過程,中文文本處理中主要包括文本分詞和去停用詞兩個(gè)階段。之所以進(jìn)行分詞,是因?yàn)楹芏嘌芯勘砻魈卣髁6葹樵~粒度遠(yuǎn)好于字粒度,其實(shí)很好理解,因?yàn)榇蟛糠址诸愃惴ú?考慮詞序信息,基于字粒度顯然損失了過多“n-gram”信息。
具體到中文分詞,不同于英文有天然的空格間隔,需要設(shè)計(jì)復(fù)雜的分詞算法。傳統(tǒng)算法主要有基于字符串匹配的正向/逆向/雙向最大匹配;基于理解的句法和語義分析消歧;基于統(tǒng)計(jì)的互信息/CRF方法。近年來隨著深度學(xué)習(xí)的應(yīng)用,WordEmbedding + Bi-LSTM+CRF方法逐漸成為主流,本文重點(diǎn)在文本分類,就不展開了。而停止詞是文本中一些高頻的代詞連詞介詞等對文本分類無意義的詞,通常維護(hù)一個(gè)停用詞表,特征提取過程中刪除停用表中出現(xiàn)的詞,本質(zhì)上屬于特征選擇的一部分。
經(jīng)過文本分詞和去停止詞之后淘寶商品示例標(biāo)題變成了下圖“ / ”分割的一個(gè)個(gè)關(guān)鍵詞的形式:
夏裝 / 雪紡 / 條紋 / 短袖 / t恤 / 女 / 春 / 半袖 / 衣服 / 夏天 / 中長款 / 大碼 / 胖mm / 顯瘦 / 上衣 / 夏
文本表示和特征提取
文本表示:
文本表示的目的是把文本預(yù)處理后的轉(zhuǎn)換成計(jì)算機(jī)可理解的方式,是決定文本分類質(zhì)量最重要的部分。傳統(tǒng)做法常用詞袋模型(BOW, Bag Of Words)或向量空間模型(Vector Space Model),最大的不足是忽略文本上下文關(guān)系,每個(gè)詞之間彼此獨(dú)立,并且無法表征語義信息。詞袋模型的示例如下:
( 0, 0, 0, 0, .... , 1, ... 0, 0, 0, 0)
一般來說詞庫量至少都是百萬級別,因此詞袋模型有個(gè)兩個(gè)最大的問題:高緯度、高稀疏性。詞袋模型是向量空間模型的基礎(chǔ),因此向量空間模型通過特征項(xiàng)選擇降低維度,通過特征權(quán)重計(jì)算增加稠密性。
特征提取:
向量空間模型的文本表示方法的特征提取對應(yīng)特征項(xiàng)的選擇和特征權(quán)重計(jì)算兩部分。特征選擇的基本思路是根據(jù)某個(gè)評價(jià)指標(biāo)獨(dú)立的對原始特征項(xiàng)(詞項(xiàng))進(jìn)行評分排序,從中選擇得分最高的一些特征項(xiàng),過濾掉其余的特征項(xiàng)。常用的評價(jià)有文檔頻率、互信息、信息增益、χ²統(tǒng)計(jì)量等。
特征權(quán)重主要是經(jīng)典的TF-IDF方法及其擴(kuò)展方法,主要思路是一個(gè)詞的重要度與在類別內(nèi)的詞頻成正比,與所有類別出現(xiàn)的次數(shù)成反比。
基于語義的文本表示
傳統(tǒng)做法在文本表示方面除了向量空間模型,還有基于語義的文本表示方法,比如LDA主題模型、LSI/PLSI概率潛在語義索引等方法,一般認(rèn)為這些方法得到的文本表示可以認(rèn)為文檔的深層表示,而word embedding文本分布式表示方法則是深度學(xué)習(xí)方法的重要基礎(chǔ),下文會(huì)展現(xiàn)。
分類器基本都是統(tǒng)計(jì)分類方法了,基本上大部分機(jī)器學(xué)習(xí)方法都在文本分類領(lǐng)域有所應(yīng)用,比如樸素貝葉斯分類算法(Naïve Bayes)、KNN、SVM、最大熵和神經(jīng)網(wǎng)絡(luò)等等,傳統(tǒng)分類模型不是本文重點(diǎn),在這里就不展開了。
上文介紹了傳統(tǒng)的文本分類做法,傳統(tǒng)做法主要問題的文本表示是高緯度高稀疏的,特征表達(dá)能力很弱,而且神經(jīng)網(wǎng)絡(luò)很不擅長對此類數(shù)據(jù)的處理;此外需要人工進(jìn)行特征工程,成本很高。而深度學(xué)習(xí)最初在之所以圖像和語音取得巨大成功,一個(gè)很重要的原因是圖像和語音原始數(shù)據(jù)是連續(xù)和稠密的,有局部相關(guān)性,。應(yīng)用深度學(xué)習(xí)解決大規(guī)模文本分類問題最重要的是解決文本表示,再利用CNN/RNN等網(wǎng)絡(luò)結(jié)構(gòu)自動(dòng)獲取特征表達(dá)能力,去掉繁雜的人工特征工程,端到端的解決問題。接下來會(huì)分別介紹:
分布式表示(Distributed Representation)其實(shí)Hinton 最早在1986年就提出了,基本思想是將每個(gè)詞表達(dá)成 n 維稠密、連續(xù)的實(shí)數(shù)向量,與之相對的one-hot encoding向量空間只有一個(gè)維度是1,其余都是0。分布式表示最大的優(yōu)點(diǎn)是具備非常powerful的特征表達(dá)能力,比如 n 維向量每維 k 個(gè)值,可以表征 kn 個(gè)概念。事實(shí)上,不管是神經(jīng)網(wǎng)絡(luò)的隱層,還是多個(gè)潛在變量的概率主題模型,都是應(yīng)用分布式表示。下圖是03年Bengio在 A Neural Probabilistic Language Model 的網(wǎng)絡(luò)結(jié)構(gòu):
這篇文章提出的神經(jīng)網(wǎng)絡(luò)語言模型(NNLM,Neural Probabilistic Language Model)采用的是文本分布式表示,即每個(gè)詞表示為稠密的實(shí)數(shù)向量。NNLM模型的目標(biāo)是構(gòu)建語言模型:
詞的分布式表示即詞向量(word embedding)是訓(xùn)練語言模型的一個(gè)附加產(chǎn)物,即圖中的Matrix C。
盡管Hinton 86年就提出了詞的分布式表示,Bengio 03年便提出了NNLM,詞向量真正火起來是google Mikolov 13年發(fā)表的兩篇word2vec的文章 Efficient Estimation of Word Representations in Vector Space 和 Distributed Representations of Words and Phrases and their Compositionality,更重要的是發(fā)布了簡單好用的word2vec工具包,在語義維度上得到了很好的驗(yàn)證,極大的推進(jìn)了文本分析的進(jìn)程。下圖是文中提出的CBOW 和 Skip-Gram兩個(gè)模型的結(jié)構(gòu),基本類似于NNLM,不同的是模型去掉了非線性隱層,預(yù)測目標(biāo)不同,CBOW是上下文詞預(yù)測當(dāng)前詞,Skip-Gram則相反。
除此之外,提出了Hierarchical Softmax 和 Negative Sample兩個(gè)方法,很好的解決了計(jì)算有效性,事實(shí)上這兩個(gè)方法都沒有嚴(yán)格的理論證明,有些trick之處,非常的實(shí)用主義。詳細(xì)的過程不再闡述了,有興趣深入理解word2vec的,推薦讀讀這篇很不錯(cuò)的paper:word2vec Parameter Learning Explained。額外多提一點(diǎn),實(shí)際上word2vec學(xué)習(xí)的向量和真正語義還有差距,更多學(xué)到的是具備相似上下文的詞,比如“good”“bad”相似度也很高,反而是文本分類任務(wù)輸入有監(jiān)督的語義能夠?qū)W到更好的語義表示,有機(jī)會(huì)后續(xù)系統(tǒng)分享下。
至此,文本的表示通過詞向量的表示方式,把文本數(shù)據(jù)從高緯度高稀疏的神經(jīng)網(wǎng)絡(luò)難處理的方式,變成了類似圖像、語音的的連續(xù)稠密數(shù)據(jù)。深度學(xué)習(xí)算法本身有很強(qiáng)的數(shù)據(jù)遷移性,很多之前在圖像領(lǐng)域很適用的深度學(xué)習(xí)算法比如CNN等也可以很好的遷移到文本領(lǐng)域了,下一小節(jié)具體闡述下文本分類領(lǐng)域深度學(xué)習(xí)的方法。
未完待續(xù)......
更多行業(yè)資訊,更新鮮的技術(shù)動(dòng)態(tài),盡在。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn