幽默度識(shí)別第一名解決方案代碼及說(shuō)明

向AI轉(zhuǎn)型的程序員都關(guān)注了這個(gè)號(hào)??????
機(jī)器學(xué)習(xí)AI算法工程 公眾號(hào):datayx
幽默是一種特殊的語(yǔ)言表達(dá)方式,在日常生活中扮演著化解尷尬、活躍氣氛、促進(jìn)交流的重要角色。
而幽默計(jì)算是近年來(lái)自然語(yǔ)言處理領(lǐng)域的新興熱點(diǎn)之一,其主要研究如何基于計(jì)算機(jī)技術(shù)對(duì)幽默進(jìn)行識(shí)別、分類與生成,具有重要的理論和應(yīng)用價(jià)值。

子任務(wù)一:生成幽默識(shí)別 **F1**
該子任務(wù)是二分類任務(wù),標(biāo)簽有:生成幽默(label=0)、非生成幽默(label=1)。任務(wù)采用F1值進(jìn)行評(píng)價(jià)
子任務(wù)二:中文幽默等級(jí)劃分 **MacroF**
該子任務(wù)是三分類任務(wù),標(biāo)簽有:弱幽默(label=1)、普通幽默(label=3)、強(qiáng)幽默(label=5)。任務(wù)采用宏平均(Macro-Average)進(jìn)行評(píng)價(jià)。宏平均首先對(duì)每一個(gè)類統(tǒng)計(jì)評(píng)價(jià)指標(biāo)值
隊(duì)伍最終的得分由兩個(gè)子任務(wù)的得分綜合決定,即:
Score=0.6*子任務(wù)一得分+0.4*子任務(wù)二得分
劃分內(nèi)容的幽默程度,不僅可以幫助我們判定聊天機(jī)器人是不是真的幽默,還可以幫助聊天機(jī)器人,對(duì)與之聊天的人進(jìn)行情緒強(qiáng)度的劃分,有的人只是想簡(jiǎn)單幽默一下,而有的人則隱含較強(qiáng)的幽默意味,掌握這些,聊天機(jī)器人就能因人而異選擇更適宜的方式服務(wù)人類。
兩個(gè)子任務(wù)均是分類任務(wù),按照傳統(tǒng)的思想,按照以下步驟進(jìn)行
1.預(yù)訓(xùn)練
2.傳統(tǒng)模型/BERT等模型訓(xùn)練與調(diào)試
3.local CV 驗(yàn)證
4.模型向下接網(wǎng)絡(luò)層
5.模型融合
6.其他trick
*對(duì)于本題,task1區(qū)分度較task2大,任務(wù)得分權(quán)重較大0.6,task2*0.4,針對(duì)任務(wù),應(yīng)該優(yōu)先優(yōu)化task1
*本團(tuán)隊(duì)在任務(wù)進(jìn)行當(dāng)中,發(fā)現(xiàn)兩個(gè)任務(wù)存在上下游的關(guān)系,嘗試使用多任務(wù)聯(lián)合學(xué)習(xí),并使用任務(wù)二的數(shù)據(jù)對(duì)任務(wù)一進(jìn)行數(shù)據(jù)擴(kuò)充,取得了明顯的效果。
視頻講解
https://www.bilibili.com/video/av415140402
項(xiàng)目 代碼 和 數(shù)據(jù)集 獲取方式:
長(zhǎng)按圖片,識(shí)別下面二維碼 關(guān)注微信公眾號(hào) datanlp 然后回復(fù) 幽默 即可獲取。
搜索公眾號(hào)關(guān)注: datanlp
長(zhǎng)按圖片,識(shí)別二維碼
further pre-train BERT or other models on within-task training data and in-domain data
在pretrain下生成預(yù)訓(xùn)練模型
1.通過(guò)datapro.py對(duì)數(shù)據(jù)進(jìn)行處理,每段話從中間斷開分成兩句話,每段話之間用空白行隔開,針對(duì)ccl2019幽默度比賽task1和task2,生成了
cclhumortask12_bert.txt,以及加上去年ccl幽默度得比賽數(shù)據(jù)和我們自行對(duì)task1數(shù)據(jù)翻譯生成得到得數(shù)據(jù),生成了cclhumortaskalldata_bert.txt
2.通過(guò)運(yùn)行prepocess.py對(duì)cclhumortask12_bert.txt和cclhumortaskalldata_bert.txt這兩份數(shù)據(jù)分別在chinese_L-12_H-768_A-12、bert_wwm、bert_wwm_ex
、roberta四個(gè)中文預(yù)訓(xùn)練模型處理得到了8個(gè)文件夾
pytorchmodeltask12_bert_1005
pytorchmodeltask12_roerta_1005
pytorchmodeltask12_wwm_1005
pytorchmodeltask12_wwm_ex_1005
pytorchmodeltaskalldata_bert_1005
pytorchmodeltaskalldata_roerta_1006
pytorchmodeltaskalldata_wwm_1005
pytorchmodeltaskalldata_wwm_ex_1005
3.運(yùn)行finetune_on_pretrain.py針對(duì)上述生成得8個(gè)文件夾分別進(jìn)行預(yù)訓(xùn)練,為了不產(chǎn)生太多的文件夾最終生成的pytorch預(yù)訓(xùn)練模型

fine-tune
用bert等事先訓(xùn)練好的預(yù)訓(xùn)練模型,采用輸出的[CLS]token的向量作為特征,向下接線性分類層。
融合策略
對(duì)于cv內(nèi)的每個(gè)模型,分別在其預(yù)留驗(yàn)證集上對(duì)結(jié)果進(jìn)行微調(diào),找到最佳的分類閾值,并用在測(cè)試集的預(yù)測(cè)結(jié)果。綜合所有模型的微調(diào)結(jié)果

Multi-task learning(實(shí)驗(yàn)中)
為什么多任務(wù)學(xué)習(xí)有效
定義兩個(gè)任務(wù)A和B, 兩者的共享隱藏層用F表示。
隱式數(shù)據(jù)增加機(jī)制. 多任務(wù)學(xué)習(xí)有效的增加了訓(xùn)練實(shí)例的數(shù)目. 由于所有任務(wù)都或多或少存在一些噪音, 同時(shí)學(xué)習(xí)到兩個(gè)任務(wù)可以得到一個(gè)更為泛化的表示. 如果只學(xué)習(xí)任務(wù)A要承擔(dān)對(duì)任務(wù)A過(guò)擬合的風(fēng)險(xiǎn), 然而同時(shí)學(xué)習(xí)任務(wù)A與任務(wù)B對(duì)噪音模式進(jìn)行平均, 可以使得模型獲得更好表示F;
注意力集中機(jī)制. 若任務(wù)噪音嚴(yán)重, 數(shù)據(jù)量小, 數(shù)據(jù)維度高, 則對(duì)于模型來(lái)說(shuō)區(qū)分相關(guān)與不相關(guān)特征變得困難. 多任務(wù)有助于將模型注意力集中在確實(shí)有影響的那些特征上, 是因?yàn)槠渌蝿?wù)可以為特征的相關(guān)與不相關(guān)性提供額外的證據(jù);
竊聽(tīng)機(jī)制. 對(duì)于任務(wù)B來(lái)說(shuō)很容易學(xué)習(xí)到某些特征G, 而這些特征對(duì)于任務(wù)A來(lái)說(shuō)很難學(xué)到. 這可能是因?yàn)槿蝿?wù)A與特征G的交互方式更復(fù)雜, 或者因?yàn)槠渌卣髯璧K了特征G的學(xué)習(xí). 通過(guò)多任務(wù)學(xué)習(xí), 我們?cè)试S模型竊聽(tīng), 即任務(wù)A使用任務(wù)B來(lái)學(xué)習(xí)特征G;
表示偏置機(jī)制. 多任務(wù)學(xué)習(xí)更傾向于學(xué)習(xí)到一類模型, 這類模型更強(qiáng)調(diào)與其他任務(wù)也強(qiáng)調(diào)的那部分表示. 由于一個(gè)對(duì)足夠多的訓(xùn)練任務(wù)都表現(xiàn)很好的假設(shè)空間, 對(duì)來(lái)自于同一環(huán)境的新任務(wù)也會(huì)表現(xiàn)很好, 所以這樣有助于模型展示出對(duì)新任務(wù)的泛化能力;
正則化機(jī)制. 多任務(wù)學(xué)習(xí)通過(guò)引入歸納偏置起到與正則化相同的作用, 它減小了模型過(guò)擬合的風(fēng)險(xiǎn), 降低了擬合隨機(jī)噪聲的能力。
提升細(xì)節(jié):
task1:
加入任務(wù)二數(shù)據(jù) +0.04
調(diào)整各類損失權(quán)重 +0.02
融合模型時(shí)學(xué)習(xí)最佳分類閾值 +0.02
task2:
調(diào)整各類損失權(quán)重 +0.01
融合模型時(shí)學(xué)習(xí)最佳分類閾值 +0.01
不同batch_size訓(xùn)練模型融合 +0.02
結(jié)果對(duì)比

機(jī)器學(xué)習(xí)算法AI大數(shù)據(jù)技術(shù)
搜索公眾號(hào)添加: datanlp
長(zhǎng)按圖片,識(shí)別二維碼
閱讀過(guò)本文的人還看了以下文章:
TensorFlow 2.0深度學(xué)習(xí)案例實(shí)戰(zhàn)
基于40萬(wàn)表格數(shù)據(jù)集TableBank,用MaskRCNN做表格檢測(cè)
《基于深度學(xué)習(xí)的自然語(yǔ)言處理》中/英PDF
Deep Learning 中文版初版-周志華團(tuán)隊(duì)
【全套視頻課】最全的目標(biāo)檢測(cè)算法系列講解,通俗易懂!
《美團(tuán)機(jī)器學(xué)習(xí)實(shí)踐》_美團(tuán)算法團(tuán)隊(duì).pdf
《深度學(xué)習(xí)入門:基于Python的理論與實(shí)現(xiàn)》高清中文PDF+源碼
python就業(yè)班學(xué)習(xí)視頻,從入門到實(shí)戰(zhàn)項(xiàng)目
2019最新《PyTorch自然語(yǔ)言處理》英、中文版PDF+源碼
《21個(gè)項(xiàng)目玩轉(zhuǎn)深度學(xué)習(xí):基于TensorFlow的實(shí)踐詳解》完整版PDF+附書代碼
《深度學(xué)習(xí)之pytorch》pdf+附書源碼
PyTorch深度學(xué)習(xí)快速實(shí)戰(zhàn)入門《pytorch-handbook》
【下載】豆瓣評(píng)分8.1,《機(jī)器學(xué)習(xí)實(shí)戰(zhàn):基于Scikit-Learn和TensorFlow》
《Python數(shù)據(jù)分析與挖掘?qū)崙?zhàn)》PDF+完整源碼
汽車行業(yè)完整知識(shí)圖譜項(xiàng)目實(shí)戰(zhàn)視頻(全23課)
李沐大神開源《動(dòng)手學(xué)深度學(xué)習(xí)》,加州伯克利深度學(xué)習(xí)(2019春)教材
筆記、代碼清晰易懂!李航《統(tǒng)計(jì)學(xué)習(xí)方法》最新資源全套!
《神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)》最新2018版中英PDF+源碼
將機(jī)器學(xué)習(xí)模型部署為REST API
FashionAI服裝屬性標(biāo)簽圖像識(shí)別Top1-5方案分享
重要開源!CNN-RNN-CTC 實(shí)現(xiàn)手寫漢字識(shí)別
同樣是機(jī)器學(xué)習(xí)算法工程師,你的面試為什么過(guò)不了?
前海征信大數(shù)據(jù)算法:風(fēng)險(xiǎn)概率預(yù)測(cè)
【Keras】完整實(shí)現(xiàn)‘交通標(biāo)志’分類、‘票據(jù)’分類兩個(gè)項(xiàng)目,讓你掌握深度學(xué)習(xí)圖像分類
VGG16遷移學(xué)習(xí),實(shí)現(xiàn)醫(yī)學(xué)圖像識(shí)別分類工程項(xiàng)目
特征工程(二) :文本數(shù)據(jù)的展開、過(guò)濾和分塊
如何利用全新的決策樹集成級(jí)聯(lián)結(jié)構(gòu)gcForest做特征工程并打分?
Machine Learning Yearning 中文翻譯稿
全球AI挑戰(zhàn)-場(chǎng)景分類的比賽源碼(多模型融合)
斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)
python+flask搭建CNN在線識(shí)別手寫中文網(wǎng)站
中科院Kaggle全球文本匹配競(jìng)賽華人第1名團(tuán)隊(duì)-深度學(xué)習(xí)與特征工程
不斷更新資源
深度學(xué)習(xí)、機(jī)器學(xué)習(xí)、數(shù)據(jù)分析、python
搜索公眾號(hào)添加: datayx
