自然語言處理中的多模型深度學習

2021-08-20 11:58:26 字數 3438 閱讀 4914

**:

這裡先分享兩個分享:

乙個是用深度學習(cnn rnn attention)解決大規模文字分類問題 - 綜述和實踐,另乙個是 brightmart 的 text_classification,裡面用 keras 實現了很多文字分類的模型)

以及下面的各種分享:

2017 知乎看山杯從入門到第二

知乎看山杯奪冠記

深度學習與文字分類總結第二篇–大規模多標籤文字分類

2017知乎看山杯總結(多標籤文字分類)

現在,小結一下這裡面涉及到的多模型深度學習的相關:

2017看山杯第二:

參照 brightmart 的 github 開源,我們嘗試了前 5 種模型,分別是fasttext、textcnn、textrnn、rcnn、han

其中,han 的原始**中用的是詞和句子兩層 attention,而資料中是看不出句子的,所以這個方法我只用了一層 word,效果不好。而 rcnn 因為同時用到了 rnn 和 cnn 的思想,所以整個網路的訓練時間很長,且其效果與單獨的 rnn 和 cnn 差不多,因此後期沒有使用此模型。最終用到的模型有:

核心思路

模型融合

模型融合依靠差異性,而我們模型的差異性在前面已經近乎被抹平,所以又另尋他路,用了另外兩個方法:

最終模型主要是 5 個 10 層模型的概率加權融合,分數在 0.43506。

知乎看山杯奪冠記

模型:

textcnn、textrnn、textrcnn、textinception(他們自己提出來的)

訓練方法:

模型融合:

像這種模型比較簡單,資料量相對比較小的比賽,模型融合是比賽獲勝的關鍵。(!!!)

最簡單的模型融合方法—–概率等權重融合。

對於每個樣本,單模型會給出乙個1999維的向量,代表著這個模型屬於1999個話題的概率。融合的方式就是把每乙個模型輸出的向量直接相加,然後選擇概率最大的5個話題提交。

這裡作者提出了一種大模型,很值得一看,或許有啟發。

深度學習與文字分類總結第二篇–大規模多標籤文字分類

在這篇分享中,作者說到下面這一段話:

我感覺比較常用的應該是ranking和br的方法。再反過來看這次知乎的競賽,其實我看了前幾名的解決方案,大都是只用了深度學習模型的堆砌,比如說cnn,rnn然後再加上模型融合和資料增強的一些手段得到了比較好的分數。但是我之前也採訪過知乎機器學習團隊的負責人,他當時也明確的表明現在選手使用的方法還都是比較老派,沒有什麼十分大的創新點出來,而且幾乎沒怎麼利用標籤之間的關係等資訊。

然後提出了自己的一些創新點:(我稍微總結了一下)

2017知乎看山杯第五

(剛開始看到他們的分享,其實覺得他們裝置不錯了)

「所有的比賽都應該一樣, 就是「不擇手段」地達到更好的成績,而要取得較好的成績,不可避免地會用到整合學習,所以你不可能靠一兩個模型就能夠取得很好的結果。在這次比賽中最後獲獎的所有隊伍都用了模型融合,模型數量少的有十幾個,多個兩百多個,我最後提交的結果用了37個模型。所以從一開始,你就應該管理好模型和檔案的命名,這樣才不至於後期命名混亂,因為缺乏經驗,所以我也在這上面吃了不少虧。」

「tensorboard 很好用,通過 tensorboard 檢視損失變化能夠很好地幫助我們進行調參,當然同時也可以看看模型結構有沒有寫錯了」

模型

textcnn,bigru,han(hierarchical attention networks),fasttext,rnn+cnn(區別與rcnn)

融合

作者用了線性加權

一定要從一開始就為最後模型融合做好準備。模型融合的方法有很多,最常見的比如bagging, stacking 等。在這次比賽中,由於資料量太大,而且計算時間非常長,所以對於我來說,基本上沒有辦法做stacking,所以最後使用了線性加權。好而不同,這是模型融合最最關鍵的地方。所以bigru與textcnn融合要比bigru與han效果好很多,因為textcnn與bigru結構相差非常大,而han裡邊就是用了 bigru。所以在訓練不同模型時,一定盡量增加模型之間的差異性。在這個比賽中,使用字向量訓練的模型要比詞向量訓練的模型差很多(1個百分點以上),但是在模型融合中,乙個好的字向量模型帶來的提公升非常大。

下面來看看知乎對這些的總結:獲獎團隊及方法總結

(**都公開了!)

「2017 知乎 · 看山杯機器學習挑戰賽」結束,誰獲獎了?知乎還會做什麼?

這裡寫鏈結內容

我們對 7 支比賽隊伍的方法進行了彙總如下:

《牆裂建議看看知乎對此的總結》

下面我來說說 2023年semeval的 task4 分享

2017深度學習nlp進展與趨勢

模型:

乙個純的dl系統bb_twtr系統(cliche,2017)在5 個子任務中排名第一。

作者將10個cnn和10個雙向lstm結合起來,使用不同的超引數和不同的預訓練策略訓練。

為了訓練這些模型,作者使用了人工標記的推文(子任務a有49,693個),並且構建了乙個包含1億個推文的未標記資料集,通過簡單的標記來提取推特資料集中表示積極的積極表情符號,如:-),反之亦然消極鳴叫。為了對cnn和雙向lstm輸入的詞嵌入進行預訓練,作者使用word2vec,glove和fasttext在未標記的資料集上構建詞嵌入。然後他使用隔離的資料集來新增積極和消極的資訊,然後使用人類標記的資料集再次提煉它們。之前的semeval資料集的實驗表明,使用glove會降低效能。

融合:

然後作者將所有模型與軟投票策略結合起來。由此產生的模型比2023年和2023年的歷史最好的歷史成績更勝一籌。

這項工作表明了將dl模型結合起來,可以在twitter中的情感分析中超越監督學習的方法。*

模型融合依靠差異性。

我看了那篇semeval**中提到,他計算差異性的方法:

我目前就看了這麼些了,建議我自己回去再看看在別的方面的模型以及模型融合。

【待續……】

自然語言處理 n gram模型深度理解

n gram模型是自然語言處理裡面的乙個傳統模型。我們來看看他是怎麼實現的吧!要了解n gram模型,我們先來看看什麼是語言模型!the students opened their 其中可以填寫books laptops exam minds 那麼語言模型就是用來 這個空當中應該填寫什麼單詞。語言模...

基於深度學習的自然語言處理

cbow表示可以通過求單詞表示向量和或者通過將乙個單詞詞袋向量乘 以乙個每一行對應於乙個稠密單詞表示的矩陣 這樣的矩陣也叫作嵌入矩陣 embedd i ng matricy 來得到。網路中每行神經元的值可以看作是乙個向量 全連線層可以看作是從四維到六維 的線性變換。全連線層實現了乙個向量與矩陣的乘法...

機器學習 深度學習 自然語言處理

文字挖掘 文字分類 機器翻譯 客服系統 複雜對話系統 手工特徵耗時耗力,還不易拓展 自動特徵學習快,方便擴充套件 深度學習提供了一種通用的學習框架,可以用來表示世界,視覺和語言學資訊 深度學習可以無監督學習,也可以監督學習 我 今天 下午 打籃球 p s p w1,w2,w3,w4,w5,wn p ...