欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
語(yǔ)義分析的一些方法(中篇) | 數盟

2 文本語(yǔ)義分析

前面講到一些文本基本處理方法。一個(gè)文本串,對其進(jìn)行分詞和重要性打分后(當然還有更多的文本處理任務(wù)),就可以開(kāi)始更高層的語(yǔ)義分析任務(wù)。

2.1 Topic Model

首先介紹主題模型。說(shuō)到主題模型,第一時(shí)間會(huì )想到pLSA,NMF,LDA。關(guān)于這幾個(gè)目前業(yè)界最常用的主題模型,已經(jīng)有相當多的介紹了,譬如文獻[60,64]。在這里,主要想聊一下主題模型的應用以及最新進(jìn)展(考慮到LDA是pLSA的generalization,所以下面只介紹LDA)。

LDA訓練算法簡(jiǎn)單介紹

LDA的推導這里略過(guò)不講,具體請參考文獻[64]。下面我們主要看一下怎么訓練LDA。

在Blei的原始論文中,使用variational inference和EM算法進(jìn)行LDA推斷(與pLSA的推斷過(guò)程類(lèi)似,E-step采用variational inference),但EM算法可能推導出局部最優(yōu)解,且相對復雜。目前常用的方法是基于gibbs sampling來(lái)做[57]。

  • Step1: 隨機初始化每個(gè)詞的topic,并統計兩個(gè)頻率計數矩陣:Doc-Topic 計數矩陣N(t,d),描述每個(gè)文檔中的主題頻率分布;Word-Topic 計數矩陣N(w,t),表示每個(gè)主題下詞的頻率分布。
  • Step2: 遍歷訓練語(yǔ)料,按照概率公式(下圖所示)重新采樣每個(gè)詞所對應的topic, 更新N(t,d)和N(w,t)的計數。
  • Step3: 重復 step2,直到模型收斂。

對文檔d中詞w的主題z進(jìn)行重新采樣的公式有非常明確的物理意義,表示為P(w|z)P(z|d),直觀(guān)的表示為一個(gè)“路徑選擇”的過(guò)程。

圖10. gibbs sampling過(guò)程圖

以上描述過(guò)程具體請參考文獻[65]。

對于LDA模型的更多理論介紹,譬如如何實(shí)現正確性驗證,請參考文獻[68],而關(guān)于LDA模型改進(jìn),請參考Newman團隊的最新文章《Care and Feeding of Topic Models》[12]。

主題模型的應用點(diǎn)
  • 在廣點(diǎn)通內部,主題模型已經(jīng)在很多方面都得到成功應用[65],譬如文本分類(lèi)特征,相關(guān)性計算,ctr預估,精確廣告定向,矩陣分解等。具體來(lái)說(shuō),基于主題模型,可以計算出文本,用戶(hù)的topic分布,將其當作pctr,relevance的特征,還可以將其當作一種矩陣分解的方法,用于降維,推薦等。不過(guò)在我們以往的成功運用中,topic模型比較適合用做某些機器學(xué)習任務(wù)的特征,而不適合作為一種獨立的方法去解決某種特定的問(wèn)題,例如觸發(fā),分類(lèi)。Blei是這樣評價(jià)lda的:it can easily be used as a module in more complicated models for more complicated goals。
  • 為什么topic model不適合作為一種獨立的方法去解決某種特定的問(wèn)題(例如分類(lèi),觸發(fā)等)。
    • 個(gè)人總結,主要原因是lda模型可控性可解釋性相對比較差:對于每個(gè)topic,不能用很明確的語(yǔ)義歸納出這個(gè)topic在講什么;重新訓練一遍lda模型,每個(gè)topic id所對應的語(yǔ)義可能發(fā)生了變化;有些topic的準確性比較好,有些比較差,而對于比較差的topic,沒(méi)有特別好的針對性的方法去優(yōu)化它;
    • 另外一個(gè)就是topic之間的重復,特別是在topic數目比較多的情況,重復幾乎是不可避免的,當時(shí)益總(yiwang)在開(kāi)發(fā)peacock的時(shí)候,deduplicate topic就是一個(gè)很重要的任務(wù)。如果多個(gè)topic描述的意思一致時(shí),用topic id來(lái)做檢索觸發(fā),效果大半是不好的,后來(lái)我們也嘗試用topic word來(lái)做,但依舊不夠理想。
主題模型最新進(jìn)展

首先主題模型自PLSA, LDA后,又提出了很多變體,譬如HDP。LDA的topic number是預先設定的,而HDP的topic number是不固定,而是從訓練數據中學(xué)習得到的,這在很多場(chǎng)景是有用的,具體參考hdp vs lda。想了解更多LDA模型的升級,請參考文獻[73,74]。

深度學(xué)習方面,Geoff Hinton及其學(xué)生用Deep Boltzmann Machine研究出了類(lèi)似LDA的隱變量文本模型[82],文章稱(chēng)其抽取的特征在文本檢索與文本分類(lèi)上的結果比LDA好。heavenfireray在其微博評論道:lda結構是word-hidden topic。類(lèi)lda結構假設在topic下產(chǎn)生每個(gè)word是條件獨立而且參數相同。這種假設導致參數更匹配長(cháng)文而非短文。該文章提出word-hidden topic-hidden word,其實(shí)是(word,hidden word)-hidden topic,增加的hidden word平衡了參數對短文的適配,在分類(lèi)文章數量的度量上更好很自然。

其次,隨著(zhù)目前互聯(lián)網(wǎng)的數據規模的逐漸增加,大規模并行PLSA,LDA訓練將是主旋律。大規模主題模型訓練,除了從系統架構上進(jìn)行優(yōu)化外,更關(guān)鍵的,還需要在算法本身上做升級。variational方法不太適合并行化,且速度相對也比較慢,這里我們著(zhù)重看sampling-base inference。

  • collapsed Gibbs sampler[57]:O(K)復雜度,K表示topic的總個(gè)數。
  • SparseLDA[66]:算法復雜度為O(Kd + Kw),Kd表示文檔d所包含的topic個(gè)數,Kw表示詞w所屬的topic個(gè)數,考慮到一個(gè)文檔所包含的topic和一個(gè)詞所屬的topic個(gè)數是有限的,肯定遠小于K,所以相比于collapsed Gibbs,復雜度已有較大的下降。
  • AliasLDA[56]:利用alias table和Metropolis-Hastings,將詞這個(gè)維度的采樣復雜度降至O(1)。所以算法總復雜度為O(Kd)。
  • Metropolis-Hastings sampler[13]:復雜度降至O(1)。這里不做分析了,具體請參考文獻[13]
主題模型并行化

在文獻[67]中,Newman團隊提出了LDA算法的并行化版本Approximate distributed-LDA,如下圖所示:

圖11. AD-LDA算法

在原始gibbs sampling算法里,N(w,t)這個(gè)矩陣的更新是串行的,但是研究發(fā)現,考慮到N(w,t)矩陣在迭代過(guò)程中,相對變化較小,多個(gè)worker獨立更新N(w,t),在一輪迭代結束后再根據多個(gè)worker的本地更新合并到全局更新N(w,t),算法依舊可以收斂[67]。

那么,主題模型的并行化(不僅僅是主題模型,其實(shí)是絕大部分機器學(xué)習算法),主要可以從兩個(gè)角度來(lái)說(shuō)明:數據并行和模型并行。

  • 數據并行。這個(gè)角度相對比較直觀(guān),譬如對于LDA模型,可以將訓練數據按照worker數目切分為M片(M為worker數),每個(gè)worker保存一份全局的N(w,t)矩陣,在一輪迭代里,各個(gè)worker獨立計算,迭代結束后,合并各個(gè)worker的本地更新。這個(gè)思路可以借用目前通用的并行計算框架,譬如Spark,Hadoop,Graphlab等來(lái)實(shí)現。
  • 模型并行??紤]到矩陣N(w,t)在大規模主題模型中相當巨大,單機內存不可能存下。所以直觀(guān)的想法,可以將N(w,t)也切分成多個(gè)分片。N(w,t)可以考慮使用全局的parameter server來(lái)存儲,也可以考慮存儲在不同worker上,利用MPI AllReduce來(lái)通信。

數據與模型并行,可以形象的描述為一個(gè)棋盤(pán)。棋盤(pán)的行按照數據劃分,棋盤(pán)的列按照模型劃分。LDA的并行化,就是通過(guò)這樣的切分,將原本巨大的,不可能在單機存儲的矩陣切分到不同的機器,使每臺機器都能夠將參數存儲在內存。再接著(zhù),各個(gè)worker相對獨立計算,計算的過(guò)程中不時(shí)按照某些策略同步模型數據。

最近幾年里,關(guān)于LDA并行化已有相當多的開(kāi)源實(shí)現,譬如:

最近的并行LDA實(shí)現Peacock[70,65]和LigthLda[13]沒(méi)有開(kāi)源,但我們可以從其論文一窺究竟,總體來(lái)說(shuō),并行化的大體思路是一致的。譬如LightLDA[13],下圖是實(shí)現架構框圖,它將訓練數據切分成多個(gè)Block,模型通過(guò)parameter server來(lái)同步,每個(gè)data block,類(lèi)似于sliding windows,在計算完V1的采樣后,才會(huì )去計算V2的采樣(下圖中V1,V2,V3表示word空間的劃分,即模型的劃分)。

圖12. LightLda并行結構圖

2.2 詞向量,句向量

詞向量是什么

在文本分析的vector space model中,是用向量來(lái)描述一個(gè)詞的,譬如最常見(jiàn)的One-hot representation。One-hot representation方法的一個(gè)明顯的缺點(diǎn)是,詞與詞之間沒(méi)有建立關(guān)聯(lián)。在深度學(xué)習中,一般用Distributed Representation來(lái)描述一個(gè)詞,常被稱(chēng)為“Word Representation”或“Word Embedding”,也就是我們俗稱(chēng)的“詞向量”。

詞向量起源于hinton在1986年的論文[11],后來(lái)在Bengio的ffnnlm論文[3]中,被發(fā)揚光大,但它真正被我們所熟知,應該是word2vec[14]的開(kāi)源。在ffnnlm中,詞向量是訓練語(yǔ)言模型的一個(gè)副產(chǎn)品,不過(guò)在word2vec里,是專(zhuān)門(mén)來(lái)訓練詞向量,所以word2vec相比于ffnnlm的區別主要體現在:

  • 模型更加簡(jiǎn)單,去掉了ffnnlm中的隱藏層,并去掉了輸入層跳過(guò)隱藏層直接到輸出層的連接。
  • 訓練語(yǔ)言模型是利用第m個(gè)詞的前n個(gè)詞預測第m個(gè)詞,而訓練詞向量是用其前后各n個(gè)詞來(lái)預測第m個(gè)詞,這樣做真正利用了上下文來(lái)預測,如下圖所示。

圖13. word2vec的訓練算法

上圖是word2vec的兩種訓練算法:CBOW(continuous bag-of-words)和Skip-gram。在cbow方法里,訓練目標是給定一個(gè)word的context,預測word的概率;在skip-gram方法里,訓練目標則是給定一個(gè)word,預測word的context的概率。

關(guān)于word2vec,在算法上還有較多可以學(xué)習的地方,例如利用huffman編碼做層次softmax,negative sampling,工程上也有很多trick,具體請參考文章[16][17]。

詞向量的應用

詞向量的應用點(diǎn):

  • 可以挖掘詞之間的關(guān)系,譬如同義詞。
  • 可以將詞向量作為特征應用到其他機器學(xué)習任務(wù)中,例如作為文本分類(lèi)的feature,Ronan collobert在Senna[37]中將詞向量用于POS, CHK, NER等任務(wù)。
  • 用于機器翻譯[28]。分別訓練兩種語(yǔ)言的詞向量,再通過(guò)詞向量空間中的矩陣變換,將一種語(yǔ)言轉變成另一種語(yǔ)言。
  • word analogy,即已知a之于b猶如c之于d,現在給出 a、b、c,C(a)-C(b)+C(c)約等于C(d),C(*)表示詞向量??梢岳眠@個(gè)特性,提取詞語(yǔ)之間的層次關(guān)系。
  • Connecting Images and Sentences,image understanding。例如文獻,DeViSE: A deep visual-semantic em-bedding model。
  • Entity completion in Incomplete Knowledge bases or ontologies,即relational extraction。Reasoning with neural tensor net- works for knowledge base completion。
  • more word2vec applications,點(diǎn)擊link1,link2

除了產(chǎn)生詞向量,word2vec還有很多其他應用領(lǐng)域,對此我們需要把握兩個(gè)概念:doc和word。在詞向量訓練中,doc指的是一篇篇文章,word就是文章中的詞。

  • 假設我們將一簇簇相似的用戶(hù)作為doc(譬如QQ群),將單個(gè)用戶(hù)作為word,我們則可以訓練user distributed representation,可以借此挖掘相似用戶(hù)。
  • 假設我們將一個(gè)個(gè)query session作為doc,將query作為word,我們則可以訓練query distributed representation,挖掘相似query。
句向量

分析完word distributed representation,我們也許會(huì )問(wèn),phrase,sentence是否也有其distributed representation。最直觀(guān)的思路,對于phrase和sentence,我們將組成它們的所有word對應的詞向量加起來(lái),作為短語(yǔ)向量,句向量。在參考文獻[34]中,驗證了將詞向量加起來(lái)的確是一個(gè)有效的方法,但事實(shí)上還有更好的做法。

Le和Mikolov在文章《Distributed Representations of Sentences and Documents》[20]里介紹了sentence vector,這里我們也做下簡(jiǎn)要分析。

先看c-bow方法,相比于word2vec的c-bow模型,區別點(diǎn)有:

  • 訓練過(guò)程中新增了paragraph id,即訓練語(yǔ)料中每個(gè)句子都有一個(gè)唯一的id。paragraph id和普通的word一樣,也是先映射成一個(gè)向量,即paragraph vector。paragraph vector與word vector的維數雖一樣,但是來(lái)自于兩個(gè)不同的向量空間。在之后的計算里,paragraph vector和word vector累加或者連接起來(lái),作為輸出層softmax的輸入。在一個(gè)句子或者文檔的訓練過(guò)程中,paragraph id保持不變,共享著(zhù)同一個(gè)paragraph vector,相當于每次在預測單詞的概率時(shí),都利用了整個(gè)句子的語(yǔ)義。
  • 在預測階段,給待預測的句子新分配一個(gè)paragraph id,詞向量和輸出層softmax的參數保持訓練階段得到的參數不變,重新利用梯度下降訓練待預測的句子。待收斂后,即得到待預測句子的paragraph vector。

圖14. sentence2vec cBow算法

sentence2vec相比于word2vec的skip-gram模型,區別點(diǎn)為:在sentence2vec里,輸入都是paragraph vector,輸出是該paragraph中隨機抽樣的詞。

圖15. sentence2vec Skip-gram算法

下面是sentence2vec的結果示例。先利用中文sentence語(yǔ)料訓練句向量,然后通過(guò)計算句向量之間的cosine值,得到最相似的句子??梢钥吹骄湎蛄吭趯渥拥恼Z(yǔ)義表征上還是相當驚嘆的。

圖16. sentence2vec 結果示例

詞向量的改進(jìn)
  • 學(xué)習詞向量的方法主要分為:Global matrix factorization和Shallow Window-Based。Global matrix factorization方法主要利用了全局詞共現,例如LSA;Shallow Window-Based方法則主要基于local context window,即局部詞共現,word2vec是其中的代表;Jeffrey Pennington在word2vec之后提出了GloVe,它聲稱(chēng)結合了上述兩種方法,提升了詞向量的學(xué)習效果。它與word2vec的更多對比請點(diǎn)擊GloVe vs word2vec,GloVe & word2vec評測。
  • 目前通過(guò)詞向量可以充分發(fā)掘出“一義多詞”的情況,譬如“快遞”與“速遞”;但對于“一詞多義”,束手無(wú)策,譬如“蘋(píng)果”(既可以表示蘋(píng)果手機、電腦,又可以表示水果),此時(shí)我們需要用多個(gè)詞向量來(lái)表示多義詞。

2.3 卷積神經(jīng)網(wǎng)絡(luò )

卷積

介紹卷積神經(jīng)網(wǎng)絡(luò )(convolutional neural network,簡(jiǎn)記cnn)之前,我們先看下卷積。

在一維信號中,卷積的運算,請參考wiki,其中的圖示很清楚。在圖像處理中,對圖像用一個(gè)卷積核進(jìn)行卷積運算,實(shí)際上是一個(gè)濾波的過(guò)程。下面是卷積的數學(xué)表示:

f(x,y)是圖像上點(diǎn)(x,y)的灰度值,w(x,y)則是卷積核,也叫濾波器。卷積實(shí)際上是提供了一個(gè)權重模板,這個(gè)模板在圖像上滑動(dòng),并將中心依次與圖像中每一個(gè)像素對齊,然后對這個(gè)模板覆蓋的所有像素進(jìn)行加權,并將結果作為這個(gè)卷積核在圖像上該點(diǎn)的響應。如下圖所示,卷積操作可以用來(lái)對圖像做邊緣檢測,銳化,模糊等。

圖17. 卷積操作示例

什么是卷積神經(jīng)網(wǎng)絡(luò )

卷積神經(jīng)網(wǎng)絡(luò )是一種特殊的、簡(jiǎn)化的深層神經(jīng)網(wǎng)絡(luò )模型,它的每個(gè)卷積層都是由多個(gè)卷積濾波器組成。它最先由lecun在LeNet[40]中提出,網(wǎng)絡(luò )結構如下圖所示。在cnn中,圖像的一小部分(局部感受區域)作為層級結構的最低層的輸入,信息再依次傳輸到不同的層,每層通過(guò)多個(gè)卷積濾波器去獲得觀(guān)測數據的最顯著(zhù)的特征。

圖18. Lenet5網(wǎng)絡(luò )結構圖

卷積神經(jīng)網(wǎng)絡(luò )中的每一個(gè)特征提取層(卷積層)都緊跟著(zhù)一個(gè)用來(lái)求局部平均與二次提取的計算層(pooling層),這種特有的兩次特征提取結構使網(wǎng)絡(luò )在識別時(shí)對輸入樣本有較高的畸變容忍能力。如下圖所示,就是一個(gè)完整的卷積過(guò)程[21]。

圖19. 一次完整的卷積過(guò)程

它的特殊性體現在兩點(diǎn):(1)局部感受野(receptive field),cnn的神經(jīng)元間的連接是非全連接的;(2)同一層中同一個(gè)卷積濾波器的權重是共享的(即相同的)。局部感受野和權重共享這兩個(gè)特點(diǎn),使cnn網(wǎng)絡(luò )結構更類(lèi)似于生物神經(jīng)網(wǎng)絡(luò ),降低了網(wǎng)絡(luò )模型的復雜度,減少了神經(jīng)網(wǎng)絡(luò )需要訓練的參數的個(gè)數。

卷積神經(jīng)網(wǎng)絡(luò )的一些細節

接下來(lái)結合文獻[25],再講講卷積神經(jīng)網(wǎng)絡(luò )的一些注意點(diǎn)和問(wèn)題。

  • 激勵函數,要選擇非線(xiàn)性函數,譬如tang,sigmoid,rectified liner。在CNN里,relu用得比較多,原因在于:(1)簡(jiǎn)化BP計算;(2)使學(xué)習更快。(3)避免飽和問(wèn)題(saturation issues)
  • Pooling:其作用在于(1)對一些小的形態(tài)改變保持不變性,Invariance to small transformations;(2)擁有更大的感受域,Larger receptive fields。pooling的方式有sum or max。
  • Normalization:Equalizes the features maps。它的作用有:(1) Introduces local competition between features;(2)Also helps to scale activations at each layer better for learning;(3)Empirically, seems to help a bit (1–2%) on ImageNet
  • 訓練CNN:back-propagation;stochastic gradient descent;Momentum;Classification loss,cross-entropy;Gpu實(shí)現。
  • 預處理:Mean removal;Whitening(ZCA)
  • 增強泛化能力:Data augmentation;Weight正則化;在網(wǎng)絡(luò )里加入噪聲,包括DropOut,DropConnect,Stochastic pooling。
    • DropOut:只在全連接層使用,隨機的將全連接層的某些神經(jīng)元的輸出置為0。
    • DropConnect:也只在全連接層使用,Random binary mask on weights
    • Stochastic Pooling:卷積層使用。Sample location from multinomial。
  • 模型不work,怎么辦?結合我自身的經(jīng)驗,learning rate初始值設置得太大,開(kāi)始設置為0.01,以為很小了,但實(shí)際上0.001更合適。
卷積神經(jīng)網(wǎng)絡(luò )在文本上的應用

卷積神經(jīng)網(wǎng)絡(luò )在image classify和image detect上得到諸多成功的應用,后文將再詳細闡述。但除了圖片外,它在文本分析上也取得一些成功的應用。

基于CNN,可以用來(lái)做文本分類(lèi),情感分析,本體分類(lèi)等[36,41,84]。傳統文本分類(lèi)等任務(wù),一般基于bag of words或者基于word的特征提取,此類(lèi)方法一般需要領(lǐng)域知識和人工特征。利用CNN做,方法也類(lèi)似,但一般都是基于raw text,CNN模型的輸入可以是word series,可以是word vector,還可以是單純的字符。比起傳統方法,CNN不需要過(guò)多的人工特征。

  • 將word series作為輸入,利用CNN做文本分類(lèi)。如下圖所示[36],該CNN很簡(jiǎn)單,共分四層,第一層是詞向量層,doc中的每個(gè)詞,都將其映射到詞向量空間,假設詞向量為k維,則n個(gè)詞映射后,相當于生成一張n*k維的圖像;第二層是卷積層,多個(gè)濾波器作用于詞向量層,不同濾波器生成不同的feature map;第三層是pooling層,取每個(gè)feature map的最大值,這樣操作可以處理變長(cháng)文檔,因為第三層輸出只依賴(lài)于濾波器的個(gè)數;第四層是一個(gè)全連接的softmax層,輸出是每個(gè)類(lèi)目的概率。除此之外,輸入層可以有兩個(gè)channel,其中一個(gè)channel采用預先利用word2vec訓練好的詞向量,另一個(gè)channel的詞向量可以通過(guò)backpropagation在訓練過(guò)程中調整。這樣做的結果是:在目前通用的7個(gè)分類(lèi)評測任務(wù)中,有4個(gè)取得了state-of-the-art的結果,另外3個(gè)表現接近最好水平。

    圖20.基于CNN的文本分類(lèi)

    利用cnn做文本分類(lèi),還可以考慮到詞的順序。利用傳統的”bag-of-words + maxent/svm”方法,是沒(méi)有考慮詞之間的順序的。文獻[41]中提出兩種cnn模型:seq-cnn, bow-cnn,利用這兩種cnn模型,均取得state-of-the-art結果。

  • 將doc character作為輸入,利用CNN做文本分類(lèi)。文獻[86]介紹了一種方法,不利用word,也不利用word vector,直接將字符系列作為模型輸入,這樣輸入維度大大下降(相比于word),有利于訓練更復雜的卷積網(wǎng)絡(luò )。對于中文,可以將漢字的拼音系列作為輸入。

2.4 文本分類(lèi)

文本分類(lèi)應該是最常見(jiàn)的文本語(yǔ)義分析任務(wù)了。首先它是簡(jiǎn)單的,幾乎每一個(gè)接觸過(guò)nlp的同學(xué)都做過(guò)文本分類(lèi),但它又是復雜的,對一個(gè)類(lèi)目標簽達幾百個(gè)的文本分類(lèi)任務(wù),90%以上的準確率召回率依舊是一個(gè)很困難的事情。這里說(shuō)的文本分類(lèi),指的是泛文本分類(lèi),包括query分類(lèi),廣告分類(lèi),page分類(lèi),用戶(hù)分類(lèi)等,因為即使是用戶(hù)分類(lèi),實(shí)際上也是對用戶(hù)所屬的文本標簽,用戶(hù)訪(fǎng)問(wèn)的文本網(wǎng)頁(yè)做分類(lèi)。

幾乎所有的機器學(xué)習方法都可以用來(lái)做文本分類(lèi),常用的主要有:lr,maxent,svm等,下面介紹一下文本分類(lèi)的pipeline以及注意點(diǎn)。

  • 建立分類(lèi)體系。
    • 分類(lèi)相比于topic model或者聚類(lèi),一個(gè)顯著(zhù)的特點(diǎn)是:類(lèi)目體系是確定的。而不像在聚類(lèi)和LDA里,一個(gè)類(lèi)被聚出來(lái)后,但這個(gè)類(lèi)到底是描述什么的,或者這個(gè)類(lèi)與另外的類(lèi)是什么關(guān)系,這些是不確定的,這樣會(huì )帶來(lái)使用和優(yōu)化上的困難。
    • 一般而言,類(lèi)目體系是由人工設定的。而類(lèi)目體系的建立往往需要耗費很多人工研究討論,一方面由于知識面的限制,人工建立的類(lèi)目體系可能不能覆蓋所有情況;另一方面,還可能存在類(lèi)目之間instance數的不平衡。比較好的方法,是基于目前已有的類(lèi)目體系再做一些加工,譬如ODP,FreeBase等。
    • 還可以先用某種無(wú)監督的聚類(lèi)方法,將訓練文本劃分到某些clusters,建立這些clusters與ODP類(lèi)目體系的對應關(guān)系,然后人工review這些clusters,切分或者合并cluster,提煉name,再然后根據知識體系,建立層級的taxonomy。
    • 如果類(lèi)目標簽數目很多的話(huà),我們一般會(huì )將類(lèi)目標簽按照一定的層次關(guān)系,建立類(lèi)目樹(shù),如下圖所示。那么接下來(lái)就可以利用層次分類(lèi)器來(lái)做分類(lèi),先對第一層節點(diǎn)訓練一個(gè)分類(lèi)器,再對第二層訓練n個(gè)分類(lèi)器(n為第一層的節點(diǎn)個(gè)數),依次類(lèi)推。利用層次類(lèi)目樹(shù),一方面單個(gè)模型更簡(jiǎn)單也更準確,另一方面可以避免類(lèi)目標簽之間的交叉影響,但如果上層分類(lèi)有誤差,誤差將會(huì )向下傳導。

       

      圖21. 層次類(lèi)目體系

  • 獲取訓練數據
    • 一般需要人工標注訓練數據。人工標注,準確率高,但標注工作量大,耗費人力。
    • 為了減少標注代價(jià),利用無(wú)標記的樣本,提出了半監督學(xué)習(Semi-supervised Learning),主要考慮如何利用少量的標注樣本和大量的未標注樣本進(jìn)行訓練和分類(lèi)的問(wèn)題。這里介紹兩種常見(jiàn)的半監督算法,希望了解更多請參考文獻[49]。
      • Self-learning:兩個(gè)樣本集合,Labeled,Unlabeled。執行算法如下:
        • 用Labeled樣本集合,生成分類(lèi)策略F
        • 用F分類(lèi)Unlabeled樣本,計算誤差
        • 選取Unlabeled中誤差小的子集u,加入到Labeled集合。

        接著(zhù)重復上述步驟。

        舉一個(gè)例子:以前在做page分類(lèi)器時(shí),先對每一個(gè)類(lèi)人工篩選一些特征詞,然后根據這些特征詞對億級文本網(wǎng)頁(yè)分類(lèi),再然后對每一個(gè)明確屬于該類(lèi)的網(wǎng)頁(yè)提取更多的特征詞,加入原有的特征詞詞表,再去做分類(lèi);中間再輔以一定的人工校驗,這種方法做下來(lái),效果還是不錯的,更關(guān)鍵的是,如果發(fā)現那個(gè)類(lèi)有badcase,可以人工根據badcase調整某個(gè)特征詞的權重,簡(jiǎn)單粗暴又有效。

      • Co-training:其主要思想是:每次循環(huán),從Labeled數據中訓練出兩個(gè)不同的分類(lèi)器,然后用這兩個(gè)分類(lèi)器對Unlabeled中數據進(jìn)行分類(lèi),把可信度最高的數據加入到Labeled中,繼續循環(huán)直到U中沒(méi)有數據或者達到循環(huán)最大次數。
      • 協(xié)同訓練,例如Tri-train算法:使用三個(gè)分類(lèi)器.對于一個(gè)無(wú)標簽樣本,如果其中兩個(gè)分類(lèi)器的判別一致,則將該樣本進(jìn)行標記,并將其納入另一個(gè)分類(lèi)器的訓練樣本;如此重復迭代,直至所有訓練樣本都被標記或者三個(gè)分類(lèi)器不再有變化。
    • 半監督學(xué)習,隨著(zhù)訓練不斷進(jìn)行,自動(dòng)標記的示例中的噪音會(huì )不斷積累,其負作用會(huì )越來(lái)越大。所以如term weighting工作里所述,還可以從其他用戶(hù)反饋環(huán)節提取訓練數據,類(lèi)似于推薦中的隱式反饋。
    • 我們看一個(gè)具體的例子,在文獻[45]中,twitter利用了三種方法,user-level priors(發(fā)布tweet的用戶(hù)屬于的領(lǐng)域),entity-level priors(話(huà)題,類(lèi)似于微博中的#*#),url-level priors(tweet中的url)。利用上面三種數據基于一定規則獲取到基本的訓練數據,再通過(guò)Co-Training獲取更多高質(zhì)量的訓練數據。上述獲取到的都是正例數據,還需要負例樣本。按照常見(jiàn)的方法,從非正例樣本里隨機抽取作為負例的方法,效果并不是好,文中用到了Pu-learning去獲取高質(zhì)量的負例樣本,具體請參考文獻[58]。

      圖22.文獻[45]訓練數據獲取流程圖

  • 特征提取
    • 對于每條instance,運用多種文本分析方法提取特征。常見(jiàn)特征有:
      • 分詞 or 字的ngram,對詞的權重打分,計算詞的一些領(lǐng)域特征,又或者計算詞向量,詞的topic分布。
      • 文本串的特征,譬如sentence vector,sentence topic等。
    • 提取的特征,從取值類(lèi)型看,有二值特征,浮點(diǎn)數特征,離線(xiàn)值特征。
    • 特征的預處理包括:
      • 一般來(lái)說(shuō),我們希望instance各維特征的均值為0,方差為1或者某個(gè)有邊界的值。如果不是,最好將該維度上的取值做一個(gè)變換。
      • 特征缺失值和異常值的處理也需要額外注意。
    • 特征選擇,下面這些指標都可以用作篩選區分度高的特征。
      • Gini-index: 一個(gè)特征的Gini-index越大,特征區分度越高。
      • 信息增益(Information Gain)
      • 互信息(Mutual Information)
      • 相關(guān)系數(Correlation)
      • 假設檢驗(Hypothesis Testing)
  • 模型訓練
    • 模型選擇:通常來(lái)說(shuō),常用的有監督模型已經(jīng)足夠了,譬如lr, svm, maxent, naive-bayes,決策樹(shù)等。這些基本模型之間的效果差異不大,選擇合適的即可。上一小節講到cnn時(shí),提到深度神經(jīng)網(wǎng)絡(luò )也可以用來(lái)做文本分類(lèi)。深度神經(jīng)網(wǎng)絡(luò )相比較于傳統方法,特征表示能力更強,還可以自學(xué)習特征。
    • 模型的正則化:一般來(lái)說(shuō),L1正則化有特征篩選的作用,用得相對較多,除此外,L2正則化,ElasticNet regularization(L1和L2的組合)也很常用。
    • 對于多分類(lèi)問(wèn)題,可以選擇one-vs-all方法,也可以選擇multinomial方法。兩種選擇各有各的優(yōu)點(diǎn),主要考慮有:并行訓練multiple class model更復雜;不能重新訓練 a subset of topics。
    • model fine-tuning。借鑒文獻[72]的思路(訓練深度神經(jīng)網(wǎng)絡(luò )時(shí),先無(wú)監督逐層訓練參數,再有監督調優(yōu)),對于文本分類(lèi)也可以采用類(lèi)似思路,譬如可以先基于自提取的大規模訓練數據訓練一個(gè)分類(lèi)模型,再利用少量的有標注訓練數據對原模型做調優(yōu)。下面這個(gè)式子是新的loss function,w是新模型參數,w0是原模型參數,l(w,b|xi,yi)是新模型的likelihood,優(yōu)化目標就是最小化“新模型參數與原模型參數的差 + 新模型的最大似然函數的負數 + 正則化項”。
    minw,bδ2||w?w0||22–1?δn∑i=1nl(w,b|xi,yi)+λ(α||w||1+1?α2||w||22)
    • model ensemble:也稱(chēng)“Multi-Model System”,ensemble是提升機器學(xué)習精度的有效手段,各種競賽的冠軍隊伍的是必用手段。它的基本思想,充分利用不同模型的優(yōu)勢,取長(cháng)補短,最后綜合多個(gè)模型的結果。Ensemble可以設定一個(gè)目標函數(組合多個(gè)模型),通過(guò)訓練得到多個(gè)模型的組合參數(而不是簡(jiǎn)單的累加或者多數)。譬如在做廣告分類(lèi)時(shí),可以利用maxent和決策樹(shù),分別基于廣告title和描述,基于廣告的landing page,基于廣告圖片訓練6個(gè)分類(lèi)模型。預測時(shí)可以通過(guò)ensemble的方法組合這6個(gè)模型的輸出結果。
  • 評測
    • 評測分類(lèi)任務(wù)一般參考Accuracy,recall, precision,F1-measure,micro-recall/precision,macro-recall/precision等指標。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
文本相似度計算(1)-文本向量化
詞嵌入技術(shù)(Word Embedding)的發(fā)展歷程及應用
【NLP-語(yǔ)義匹配】詳解深度語(yǔ)義匹配模型DSSM
實(shí)戰必備!文本分類(lèi)中的一些經(jīng)驗和 tricks
用機器學(xué)習來(lái)計算工作技能的匹配度
機器學(xué)習中的特征空間
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久