越來(lái)越多的人選擇參加算法賽事,為了提升項(xiàng)目實(shí)踐能力,同時(shí)也希望能拿到好的成績(jī)?cè)黾勇臍v的豐富度。期望如此美好,現(xiàn)實(shí)卻是:看完賽題,一點(diǎn)思路都木有。那么,當(dāng)我們拿到一個(gè)算法賽題后,如何破題,如何找到可能的解題思路呢。
本文針對(duì)NLP項(xiàng)目給出了4種常見(jiàn)的解題思路,其中包含1種基于機(jī)器學(xué)習(xí)的思路和3種基于深度學(xué)習(xí)的思路。
一、數(shù)據(jù)及背景
https://tianchi.aliyun.com/competition/entrance/531810/information(阿里天池-零基礎(chǔ)入門NLP賽事)
二、數(shù)據(jù)下載及分析2.1 獲取數(shù)據(jù)
我們直接打開數(shù)據(jù)下載地址,看到的是這樣一個(gè)頁(yè)面:
接著就三步走:注冊(cè)報(bào)名下載數(shù)據(jù),查看數(shù)據(jù)前五行可以看到我們獲得的數(shù)據(jù)如下:
其中左邊的label是數(shù)據(jù)集文本對(duì)應(yīng)的標(biāo)簽,而右邊的text則是編碼后的文本,文本對(duì)應(yīng)的標(biāo)簽列舉如下:
根據(jù)官方描述:賽題以匿名處理后的新聞數(shù)據(jù)為賽題數(shù)據(jù),數(shù)據(jù)集報(bào)名后可見(jiàn)并可下載。賽題數(shù)據(jù)為新聞文本,并按照字符級(jí)別進(jìn)行匿名處理。整合劃分出14個(gè)候選分類類別:財(cái)經(jīng)、彩票、房產(chǎn)、股票、家居、教育、科技、社會(huì)、時(shí)尚、時(shí)政、體育、星座、游戲、娛樂(lè)的文本數(shù)據(jù)。 賽題數(shù)據(jù)由以下幾個(gè)部分構(gòu)成:訓(xùn)練集20w條樣本,測(cè)試集A包括5w條樣本,測(cè)試集B包括5w條樣本。為了預(yù)防選手人工標(biāo)注測(cè)試集的情況,我們將比賽數(shù)據(jù)的文本按照字符級(jí)別進(jìn)行了匿名處理。
同時(shí)我們還應(yīng)該注意到官網(wǎng)有給出結(jié)果評(píng)價(jià)指標(biāo),我們也需要根據(jù)這個(gè)評(píng)價(jià)指標(biāo)衡量我們的驗(yàn)證集數(shù)據(jù)誤差:
既然該拿到的我們都拿到了,我們接下來(lái)就開始構(gòu)思我們都應(yīng)該使用哪些思路來(lái)完成我們的預(yù)測(cè)。
2.2 常見(jiàn)思路
賽題本質(zhì)是一個(gè)文本分類問(wèn)題,需要根據(jù)每句的字符進(jìn)行分類。但賽題給出的數(shù)據(jù)是匿名化的,不能直接使用中文分詞等操作,這個(gè)是賽題的難點(diǎn)。
因此本次賽題的難點(diǎn)是需要對(duì)匿名字符進(jìn)行建模,進(jìn)而完成文本分類的過(guò)程。由于文本數(shù)據(jù)是一種典型的非結(jié)構(gòu)化數(shù)據(jù),因此可能涉及到特征提取和分類模型兩個(gè)部分。為了減低參賽難度,我們提供了一些解題思路供大家參考:
思路1:TF-IDF + 機(jī)器學(xué)習(xí)分類器:直接使用TF-IDF對(duì)文本提取特征,并使用分類器進(jìn)行分類。在分類器的選擇上,可以使用SVM、LR、或者XGBoost。
思路2:FastText:FastText是入門款的詞向量,利用Facebook提供的FastText工具,可以快速構(gòu)建出分類器。
思路3:WordVec + 深度學(xué)習(xí)分類器:WordVec是進(jìn)階款的詞向量,并通過(guò)構(gòu)建深度學(xué)習(xí)分類完成分類。深度學(xué)習(xí)分類的網(wǎng)絡(luò)結(jié)構(gòu)可以選擇TextCNN、TextRNN或者BiLSTM。
思路4:Bert詞向量:Bert是高配款的詞向量,具有強(qiáng)大的建模學(xué)習(xí)能力。
三、基于機(jī)器學(xué)習(xí)的文本分類
3.1 TF-IDF+機(jī)器學(xué)習(xí)分類器(思路1)
3.1.1. 什么是TF-IDF?
TF-IDF(term frequency–inverse document frequency)是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù),常用于挖掘文章中的關(guān)鍵詞,而且算法簡(jiǎn)單高效,常被工業(yè)用于最開始的文本數(shù)據(jù)清洗。 TF-IDF有兩層意思,一層是"詞頻"(Term Frequency,縮寫為TF),另一層是"逆文檔頻率"(Inverse Document Frequency,縮寫為IDF)。
當(dāng)有TF(詞頻)和IDF(逆文檔頻率)后,將這兩個(gè)詞相乘,就能得到一個(gè)詞的TF-IDF的值。某個(gè)詞在文章中的TF-IDF越大,那么一般而言這個(gè)詞在這篇文章的重要性會(huì)越高,所以通過(guò)計(jì)算文章中各個(gè)詞的TF-IDF,由大到小排序,排在最前面的幾個(gè)詞,就是該文章的關(guān)鍵詞。
3.2.2. TF-IDF算法步驟
第一步,計(jì)算詞頻:
考慮到文章有長(zhǎng)短之分,為了便于不同文章的比較,進(jìn)行"詞頻"標(biāo)準(zhǔn)化:
第二步,計(jì)算逆文檔頻率:
這時(shí),需要一個(gè)語(yǔ)料庫(kù)(corpus),用來(lái)模擬語(yǔ)言的使用環(huán)境。
如果一個(gè)詞越常見(jiàn),那么分母就越大,逆文檔頻率就越小越接近0。分母之所以要加1,是為了避免分母為0(即所有文檔都不包含該詞)。log表示對(duì)得到的值取對(duì)數(shù)。
第三步,計(jì)算TF-IDF:
可以看到,TF-IDF與一個(gè)詞在文檔中的出現(xiàn)次數(shù)成正比,與該詞在整個(gè)語(yǔ)言中的出現(xiàn)次數(shù)成反比。所以,自動(dòng)提取關(guān)鍵詞的算法就很清楚了,就是計(jì)算出文檔的每個(gè)詞的TF-IDF值,然后按降序排列,取排在最前面的幾個(gè)詞。
3.3.3. 優(yōu)缺點(diǎn)
TF-IDF的優(yōu)點(diǎn)是簡(jiǎn)單快速,而且容易理解。缺點(diǎn)是有時(shí)候用詞頻來(lái)衡量文章中的一個(gè)詞的重要性不夠全面,有時(shí)候重要的詞出現(xiàn)的可能不夠多,而且這種計(jì)算無(wú)法體現(xiàn)位置信息,無(wú)法體現(xiàn)詞在上下文的重要性。如果要體現(xiàn)詞的上下文結(jié)構(gòu),那么你可能需要使用word2vec算法來(lái)支持。
四、基于深度學(xué)習(xí)的文本分類
4.1 FastText(思路2)
4.1.1 FastText的核心思想
將整篇文檔的詞及n-gram向量疊加平均得到文檔向量,然后使用文檔向量做softmax多分類。這中間涉及到兩個(gè)技巧:字符級(jí)N-gram特征的引入以及分層Softmax分類。
4.1.2字符級(jí)N-gram特征
N-gram是基于語(yǔ)言模型的算法,基本思想是將文本內(nèi)容按照子節(jié)順序進(jìn)行大小為N的窗口滑動(dòng)操作,最終形成窗口為N的字節(jié)片段序列。舉個(gè)例子:
我來(lái)到達(dá)觀數(shù)據(jù)參觀
相應(yīng)的bigram特征為:我來(lái) 來(lái)到 到達(dá) 達(dá)觀 觀數(shù) 數(shù)據(jù) 據(jù)參 參觀
相應(yīng)的trigram特征為:我來(lái)到 來(lái)到達(dá) 到達(dá)觀 達(dá)觀數(shù) 觀數(shù)據(jù) 數(shù)據(jù)參 據(jù)參觀
注意一點(diǎn):n-gram中的gram根據(jù)粒度不同,有不同的含義。它可以是字粒度,也可以是詞粒度的。上面所舉的例子屬于字粒度的n-gram,詞粒度的n-gram看下面例子:
我 來(lái)到 達(dá)觀數(shù)據(jù) 參觀
相應(yīng)的bigram特征為:我/來(lái)到 來(lái)到/達(dá)觀數(shù)據(jù) 達(dá)觀數(shù)據(jù)/參觀
相應(yīng)的trigram特征為:我/來(lái)到/達(dá)觀數(shù)據(jù) 來(lái)到/達(dá)觀數(shù)據(jù)/參觀
n-gram產(chǎn)生的特征只是作為文本特征的候選集,你后面可能會(huì)采用信息熵、卡方統(tǒng)計(jì)、IDF等文本特征選擇方式篩選出比較重要特征。
4.1.3 分層Softmax分類
softmax函數(shù)常在神經(jīng)網(wǎng)絡(luò)輸出層充當(dāng)激活函數(shù),目的就是將輸出層的值歸一化到0-1區(qū)間,將神經(jīng)元輸出構(gòu)造成概率分布,主要就是起到將神經(jīng)元輸出值進(jìn)行歸一化的作用。
下圖是一個(gè)分層Softmax示例:
通過(guò)分層的Softmax,計(jì)算復(fù)雜度一下從|K|降低到log|K|。
4.2Word2Vec+深度學(xué)習(xí)分類器(思路3)
4.2.1 Word2Vec
Word2vec,是一群用來(lái)產(chǎn)生詞向量的相關(guān)模型。這些模型為淺而雙層的神經(jīng)網(wǎng)絡(luò),用來(lái)訓(xùn)練以重新建構(gòu)語(yǔ)言學(xué)之詞文本。網(wǎng)絡(luò)以詞表現(xiàn),并且需猜測(cè)相鄰位置的輸入詞,在word2vec中詞袋模型假設(shè)下,詞的順序是不重要的。訓(xùn)練完成之后,word2vec模型可用來(lái)映射每個(gè)詞到一個(gè)向量,可用來(lái)表示詞對(duì)詞之間的關(guān)系,該向量為神經(jīng)網(wǎng)絡(luò)之隱藏層?!景俣劝倏啤?/p>
Word2vec 是 Word Embedding 的方法之一。他是 2013 年由谷歌的 Mikolov 提出了一套新的詞嵌入方法。
4.2.2 優(yōu)化方法
為了提高速度,Word2vec 經(jīng)常采用 2 種加速方式:
1、Negative Sample(負(fù)采樣)
2、Hierarchical Softmax
4.2.3 優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
由于 Word2vec 會(huì)考慮上下文,跟之前的 Embedding 方法相比,效果要更好(但不如 18 年之后的方法)
比之前的 Embedding方 法維度更少,所以速度更快
通用性很強(qiáng),可以用在各種 NLP 任務(wù)中
缺點(diǎn):
由于詞和向量是一對(duì)一的關(guān)系,所以多義詞的問(wèn)題無(wú)法解決。
Word2vec 是一種靜態(tài)的方式,雖然通用性強(qiáng),但是無(wú)法針對(duì)特定任務(wù)做動(dòng)態(tài)優(yōu)化
4.3Bert詞向量(思路4)
BERT(Bidirectional Encoder Representations from Transformers)詞向量模型,2018年10月在《BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding》這篇論文中被Google提出,在11種不同nlp測(cè)試中創(chuàng)出最佳成績(jī),包括將glue基準(zhǔn)推至80.4%(絕對(duì)改進(jìn)7.6%),multinli準(zhǔn)確度達(dá)到86.7% (絕對(duì)改進(jìn)率5.6%)等。
4.1.1 特征
1、通過(guò)聯(lián)合調(diào)節(jié)所有層中的左右上下文來(lái)預(yù)訓(xùn)練深度雙向表示
2、the first fine-tuning based representation model that achieves state-of-the-art performance on a large suite of sentence-level and token-level tasks, outperforming many systems with task-specific architectures
3、所需計(jì)算量非常大。Jacob 說(shuō):「OpenAI 的 Transformer 有 12 層、768 個(gè)隱藏單元,他們使用 8 塊 P100 在 8 億詞量的數(shù)據(jù)集上訓(xùn)練 40 個(gè) Epoch 需要一個(gè)月,而 BERT-Large 模型有 24 層、2014 個(gè)隱藏單元,它們?cè)谟?33 億詞量的數(shù)據(jù)集上需要訓(xùn)練 40 個(gè) Epoch,因此在 8 塊 P100 上可能需要 1 年?16 Cloud TPU 已經(jīng)是非常大的計(jì)算力了。
4、預(yù)訓(xùn)練的BERT表示可以通過(guò)一個(gè)額外的輸出層進(jìn)行微調(diào),適用于廣泛任務(wù)的state-of-the-art模型的構(gòu)建,比如問(wèn)答任務(wù)和語(yǔ)言推理,無(wú)需針對(duì)具體任務(wù)做大幅架構(gòu)修改。
-
nlp
+關(guān)注
關(guān)注
1文章
491瀏覽量
23050
原文標(biāo)題:【特征提取+分類模型】4種常見(jiàn)的NLP實(shí)踐思路
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語(yǔ)言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
ChatGPT爆火背后,NLP呈爆發(fā)式增長(zhǎng)!
可靠性失效分析常見(jiàn)思路

教學(xué)思路實(shí)踐教程-使用Multisim 10
Altium常見(jiàn)4層板的設(shè)計(jì)思路
NLP的介紹和如何利用機(jī)器學(xué)習(xí)進(jìn)行NLP以及三種NLP技術(shù)的詳細(xì)介紹

網(wǎng)絡(luò)維護(hù)與常見(jiàn)故障的分析與排除詳細(xì)資料分析
金融市場(chǎng)中的NLP 情感分析
幾個(gè)常見(jiàn)的EMI輻射問(wèn)題分析思路資料下載

4種常見(jiàn)DC電源接口的封裝尺寸參數(shù)

2008年精選100例電路設(shè)計(jì)思路和常見(jiàn)設(shè)計(jì)方法
NLP類別不均衡問(wèn)題之loss大集合
NLP類別不均衡問(wèn)題之loss合集

評(píng)論