一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

面向?qū)嶓w對象的文本描述情感極性及色彩強度分析

深度學(xué)習(xí)自然語言處理 ? 來源:ChallengeHub ? 作者:ChallengeHub ? 2022-07-05 14:11 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

之前沒認真打過煉丹的比賽,這次機緣巧合碰上了三個牛逼又靠譜的隊友,就堅持把這次比賽打完了。剛開始的時候沒想到這次能拿下第一,趁著剛答辯完就順帶把這次NLP賽道的方案開源出來,歡迎各位同學(xué)參考和討論。

賽題分析

賽題介紹

這次的比賽由NLP和推薦兩部分組成,推薦的特征工程實在是做不明白,這次主要還是做NLP的部分。

抄一下官網(wǎng)的NLP賽題介紹:面向?qū)嶓w對象的文本描述情感極性及色彩強度分析。情感極性和強度分為五種情況:極正向、正向、中立、負向、極負向。選手需要針對給定的每一個實體對象,從文本描述的角度,分析出對該實體的情感極性和強度。

NLP任務(wù)的評價指標為macro-F1,在計算準確和召回的時候,是按照分析的實體數(shù)進行計數(shù)的,而非樣本數(shù)。

拿一條數(shù)據(jù)來舉例子(截取部分文本):

{ "content": "離婚之后的林慶昆本以為會有一番更大的天地,沒想到離開了吳敏自己什么都不是......", "entity": {"吳敏": 1, "林慶昆": -1} }

這條數(shù)據(jù)里有一段文本和兩個實體,需要預(yù)測出這兩個實體在文本中的情感極性,情感標簽為-2, -1, 0, 1, 2五個。

簡單分析可以知道這題可以定義為Aspect-level Sentiment Classification。

數(shù)據(jù)分析

在正式建模之前需要進行一些簡單的數(shù)據(jù)分析來挖掘賽題的特點。在這里截取一張和隊友一起做的PPT的圖:

e1d7f98e-fc23-11ec-ba43-dac502259ad0.jpg

數(shù)據(jù)分析

我們對數(shù)據(jù)中的文本長度、實體數(shù)量和標簽分布進行了簡單的分析,這提示我們:

有部分文本長度超過BERT的512最大長度,或許可以考慮長文本處理的常用技巧;

實體的情感標簽分布不平衡,最少的類只有2%左右,或許可以考慮不平衡分類問題的技巧。

但實驗證明上面這些考慮最后都只會成為掉分點,具體的思考在后文論述。

模型構(gòu)建

Baseline

官方公布了賽題的Baseline,NLP賽道的Baseline大致是如下思路:將一段文本和文本中的一個實體拼成一條數(shù)據(jù),一段文本對應(yīng)N個實體就會有N條數(shù)據(jù)。將一條數(shù)據(jù)輸入BERT-based分類器后輸出一個實體。

仍然以上一節(jié)的case為例,按Baseline的做法這條數(shù)據(jù)會被拆成兩條數(shù)據(jù)輸入到BERT:

[CLS] 吳敏 [SEP] 離婚之后的林慶昆本以為會有一番更大的天地,沒想到離開了吳敏自己什么都不是... [SEP] [CLS] 林慶昆 [SEP] 離婚之后的林慶昆本以為會有一番更大的天地,沒想到離開了吳敏自己什么都不是... [SEP]

然后以BERT輸出的[CLS]位置的語義向量通過MLP分類器得到情感極性。

實際上我想思路的時候我還沒看到Baseline,看到Baseline的做法之后我就搖頭。

這里再截一張PPT的圖說明Baseline有什么問題:

e1f8fae4-fc23-11ec-ba43-dac502259ad0.jpg

就是說,一方面預(yù)期效果不好,因為Baseline構(gòu)造數(shù)據(jù)的方式使分布發(fā)生了變化(有一個實體的文本模型會看它一次,有30個實體的文本模型就會看它30次,但是這點也存疑,因為答辯過程中有選手表示發(fā)現(xiàn)了數(shù)據(jù)的leak,后續(xù)的方法可能是使用了這個leak所以效果才會好的);另一方面把一段文本復(fù)制了好多遍顯然會導(dǎo)致效率大大下降;還有一點在PPT里沒說的是沒有考慮到實體之間可能存在的潛在關(guān)系。

設(shè)計思路

再從PPT里截一張圖:

e20777a4-fc23-11ec-ba43-dac502259ad0.jpg

在做這題的時候我就會思考如何做得優(yōu)雅,最好方法是simple yet effective的。最好就是使用以預(yù)訓(xùn)練BERT為backbone的分類器,不對模型結(jié)構(gòu)做太大修改,而且還要能在一次輸入之內(nèi)就并行分類所有實體。

除了BERT還考慮使用XLNet,因為XLNet使用了相對位置編碼,可以原生支持超長文本的輸入,而且XLNet的Tokenizer是字詞結(jié)合的,可以適應(yīng)本次比賽文本長度較長的情況。

模型架構(gòu)

大概想了不到一個小時,想到了如下的方案:

e21221ea-fc23-11ec-ba43-dac502259ad0.jpg

如圖所示,模型的整體架構(gòu)就是一個普通的分類模型,在預(yù)訓(xùn)練的BERT或XLNet模型基礎(chǔ)上增加了簡單的MLP分類器。這個思路的要點在于改變數(shù)據(jù)輸入的方式,利用BERT和XLNet作為Masked Language Model的性質(zhì),以[SEP]符號為界,第一段為文本輸入,第二段按順序輸入所有實體,實體之間以[MASK]進行分隔,這個[MASK]標簽通過BERT Encoder得到的語義向量就代表對應(yīng)實體的情感極性。將所有[MASK]位置的語義向量通過分類器即可并行對所有的實體進行分類。

這套思路不加Trick的情況下線上F1就可以到69+,讓我在比賽前期就能超過大部分使用Baseline的團隊。

另外根據(jù)線下指標推測最終Accuracy在90+,說明這題訓(xùn)練和測試集基本上同分布。

一些補充的思考

要說這個方法為什么會有用,我一開始推測是因為考慮了實體之間的潛在關(guān)系,而且對數(shù)據(jù)分布的假設(shè)更加合理。

后來決賽答辯的時候聽到有選手提到這個數(shù)據(jù)存在leak,也就是在數(shù)據(jù)中標簽非0的實體會被排在前面,標簽為0的實體會被排在后面。我突然就覺得這可能就是這個方法提升巨大的真正原因,用了這個方法之后,相當(dāng)于模型從中學(xué)到了一個bias,就是靠近文本末尾的實體,標簽為0的可能性更大。

另外,在比賽中期,“靈境”組在討論區(qū)公開了一個方案,我們發(fā)現(xiàn)該方案的核心思路和我們不謀而合。在該方案公開后很多隊伍的分數(shù)都追上來了,在決賽答辯過程中我也發(fā)現(xiàn)很多高分團隊都搬運了這套方案。公開的方案和我們做法基本一致,不過使用了一個含有MLM的全套BERT類模型,第二段文本(在該方案中被稱為Prompt)的形式為:“在這句話中,<實體1>是[MASK],<實體2>是[MASK]......”,然后MLM頭輸出詞表大小維度(21128)的向量,取五個Token作為Verbalizer(壞、差、平、行、好),分別對應(yīng)五個情感極性標簽,忽略其他的Token。

然而,這套方案和我們的做法還存在一定差別,這也是我認為該方案在這個任務(wù)上存在的一些問題:

我們不稱輸入的第二段文本為"Prompt",因為這容易和Prompt Tuning概念中的Prompt混淆。該任務(wù)并不適合Prompt Tuning范式,而仍然是采用普通的對全模型進行參數(shù)更新的Full Tuning范式。因此在該題中,“Prompt”的形式如何并不重要,增加一些沒什么用的詞反而會擠占第一段文本的輸入長度。

該方案使用了BERT的MLM頭進行分類,21128維的詞表中只有五個Token映射到有效標簽,其余Token都被忽略。這和我們的方案在結(jié)構(gòu)上基本等價,唯一的區(qū)別是該方案有MLM頭的參數(shù)初始化而我們的分類層為隨機初始化,這個區(qū)別是否會帶來性能提升不知道,但是直觀的是模型增加了至少768*21123=16M(或者1024*21123=22M)的無用參數(shù)量,在題目有模型總大小限制的情況下這意味著可以融合的模型變少了。

模型優(yōu)化

針對上述提出的模型,我們進行了很多優(yōu)化嘗試,下面主要討論上分較多的技巧,沒什么用的東西就在最后放一小節(jié)補充說明。很多優(yōu)化技巧都會導(dǎo)致訓(xùn)練或測試階段時空開銷大大提升,比賽時還是應(yīng)該視情況使用。

線下數(shù)據(jù)劃分方式

隊友發(fā)現(xiàn),初賽階段使用前90%數(shù)據(jù)訓(xùn)練,后10%驗證,可以取得最好的線上效果,隨機10%效果會變差一些,增加訓(xùn)練數(shù)據(jù)也不能使效果變好。復(fù)賽階段使用了同樣的數(shù)據(jù)劃分方式。

對抗訓(xùn)練(FGM)

在各類文本分類任務(wù)中,常用的提升NLP模型訓(xùn)練魯棒性和泛化能力的有效方法。簡單來說是在Embedding層的參數(shù)有一定程度擾動時也盡量保證模型能分類正確。事后估計初賽線上提升1%左右。

參考了這篇知乎文章的實現(xiàn)方法:Nicolas:【煉丹技巧】功守道:NLP中的對抗訓(xùn)練 + PyTorch實現(xiàn)

模型平均 (SWA)

對訓(xùn)練過程中的多個checkpoint進行權(quán)重平均,或許可以有助于模型收斂到loss landscape平坦區(qū)域的中心,提升模型的泛化能力。具體而言,我們在驗證指標的最高點開始,將這一輪和到Early Stopping之前的各輪驗證時,驗證指標與最高點差值小于一定值的模型權(quán)重放進來平均。事后估計初賽線上提升1%左右。

模型融合

沒什么好說的,幾個模型預(yù)測的logits平均得到最終結(jié)果。值得注意的是這題有2G的模型總大小限制,因此我們需要考慮融合模型的異構(gòu)度不能盲目做K折,最后融合了2個稍微異構(gòu)的XLNet-Mid + 1個MacBERT-Large + 1個RoBERTa-Large,全部保存為FP16格式,模型文件總大小2043M正好小于2G。估計初賽提升大約1%,復(fù)賽提升大約2%。

偽標簽

在模型融合的基礎(chǔ)上,使用融合模型預(yù)測的測試集標簽作為偽標簽,將測試集數(shù)據(jù)加入訓(xùn)練集中再次訓(xùn)練模型。在復(fù)賽中,我們?yōu)榱吮苊舛嗄P驮跍y試集上的預(yù)測結(jié)果失去異構(gòu)性,我們沒有把全部測試數(shù)據(jù)都加入訓(xùn)練集,而是四個模型預(yù)測結(jié)果投票,大于等于三個模型預(yù)測一致的數(shù)據(jù)才會被加入訓(xùn)練集。這個訓(xùn)練集會重新被用于訓(xùn)練四個模型,然后重新進行融合。復(fù)賽在模型融合基礎(chǔ)上還有1%左右的提升。

復(fù)賽數(shù)據(jù)適配

e22e019e-fc23-11ec-ba43-dac502259ad0.jpg

如圖所示。在復(fù)賽開始的時候,起初我們使用初賽訓(xùn)練集+復(fù)賽訓(xùn)練集的全量訓(xùn)練數(shù)據(jù)對模型進行訓(xùn)練,結(jié)果發(fā)現(xiàn)效果不好。后來發(fā)現(xiàn)復(fù)賽數(shù)據(jù)相比初賽數(shù)據(jù)的分布可能發(fā)生了較大的偏移,因此我們考慮用初賽訓(xùn)練好的模型的權(quán)重來對模型進行初始化,然后只在復(fù)賽數(shù)據(jù)集上訓(xùn)練。相比全量數(shù)據(jù)訓(xùn)練提升近3%,驗證了我們的猜想。

沒什么用的

R-Drop:在有了FGM,SWA等東西的情況下沒有什么提升,而且還慢。

PGD:慢而且相比FGM沒什么提升。

EMA:有了SWA之后也顯得沒用。

數(shù)據(jù)增強:嘗試了EDA和AEDA,本來以為會有用實際上沒用。

長文本處理:估計是沒有什么用,某次偶然發(fā)現(xiàn)設(shè)置最大長度512的XLNet和最大長度800的XLNet相比效果基本沒有差別,用MacBERT和RoBERTa訓(xùn)的模型和XLNet比效果也相差不大。推測可能是因為前半段文本的信息量已經(jīng)足夠?qū)^大多數(shù)實體正確分類了。

標簽不平衡處理:嘗試過Focal Loss和類別重加權(quán),也沒有什么用。猜測可能是因為數(shù)據(jù)中2和-2的數(shù)據(jù)量也相對充足(各有幾千個實體),在普通Cross Entropy下充分學(xué)習(xí)也可以對這些類大部分樣本正確分類了,而修改Loss反而會扭曲模型學(xué)習(xí)到的分布,對于訓(xùn)練和測試同分布的情況下反而不利。

評測結(jié)果

初賽、復(fù)賽和決賽評測均為NLP賽道第一。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)分析
    +關(guān)注

    關(guān)注

    2

    文章

    1472

    瀏覽量

    34991
  • nlp
    nlp
    +關(guān)注

    關(guān)注

    1

    文章

    490

    瀏覽量

    22597

原文標題:競賽 | Aspect-based的情感分析任務(wù)第一名方法解讀 -- 2022搜狐校園算法大賽

文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    特勵達的INFINITY色彩預(yù)設(shè)實現(xiàn)色彩精度,幫助工業(yè)相機捕捉精準、可靠的圖像

    色彩精度對于明場顯微鏡至關(guān)重要,無論是分析蘇木精和伊紅(H&E)染色切片、開發(fā)AI輔助診斷模型,還是進行全片成像。然而,實現(xiàn)真實的色彩保真度并非易事。不同傳感器捕捉色彩的方式存在差異,
    的頭像 發(fā)表于 06-06 17:08 ?448次閱讀
    特勵達的INFINITY<b class='flag-5'>色彩</b>預(yù)設(shè)實現(xiàn)<b class='flag-5'>色彩</b>精度,幫助工業(yè)相機捕捉精準、可靠的圖像

    高精度焊接強度分析儀的應(yīng)用與優(yōu)勢探析

    高精度焊接強度分析儀作為一種先進的檢測工具,在現(xiàn)代制造業(yè)中扮演著至關(guān)重要的角色。它不僅能夠精確地評估焊接接頭的強度和質(zhì)量,還能夠在很大程度上預(yù)防因焊接缺陷導(dǎo)致的產(chǎn)品失效,從而保障生產(chǎn)安全
    的頭像 發(fā)表于 01-16 14:14 ?399次閱讀

    超級電容是極性電容還是無極性電容

    電容器有極性和無極性之分,極性電容如電解電容需按正負極連接,否則可能損壞;無極性電容如陶瓷電容可任意方向連接。超級電容通常是有極性的,屬于
    的頭像 發(fā)表于 12-23 11:00 ?794次閱讀
    超級電容是<b class='flag-5'>極性</b>電容還是無<b class='flag-5'>極性</b>電容

    超級電容是極性電容還是無極性電容?

    電容器有極性和無極性之分,極性電容如電解電容需按正負極連接,否則可能損壞;無極性電容如陶瓷電容可任意方向連接。超級電容通常是有極性的,屬于
    的頭像 發(fā)表于 12-23 10:27 ?569次閱讀
    超級電容是<b class='flag-5'>極性</b>電容還是無<b class='flag-5'>極性</b>電容?

    如何使用自然語言處理分析文本數(shù)據(jù)

    使用自然語言處理(NLP)分析文本數(shù)據(jù)是一個復(fù)雜但系統(tǒng)的過程,涉及多個步驟和技術(shù)。以下是一個基本的流程,幫助你理解如何使用NLP來分析文本數(shù)據(jù): 1. 數(shù)據(jù)收集 收集
    的頭像 發(fā)表于 12-05 15:27 ?1556次閱讀

    圖紙模板中的文本變量

    “ ?文本變量和系統(tǒng)自帶的內(nèi)置變量,可以幫助工程師靈活、高效地配置標題欄中的信息,而不用擔(dān)心模板中的文字對象被意外修改。 ? ” 文本變量的語法 文本變量以?${VARIABLENAM
    的頭像 發(fā)表于 11-13 18:21 ?635次閱讀
    圖紙模板中的<b class='flag-5'>文本</b>變量

    基于LSTM神經(jīng)網(wǎng)絡(luò)的情感分析方法

    情感分析是自然語言處理(NLP)領(lǐng)域的一項重要任務(wù),旨在識別和提取文本中的主觀信息,如情感傾向、情感強度
    的頭像 發(fā)表于 11-13 10:15 ?1263次閱讀

    如何在文本字段中使用上標、下標及變量

    在KiCad的任何文本字段中,都可以通過以下的方式實現(xiàn)上標、下標、上劃線以及顯示變量及字段值的描述文本變量“文本變量”可以在 原理圖設(shè)置->工程->
    的頭像 發(fā)表于 11-12 12:23 ?628次閱讀
    如何在<b class='flag-5'>文本</b>字段中使用上標、下標及變量

    淺談永磁電機與磁感應(yīng)強度的關(guān)系

    永磁電機 是以磁場為“橋梁”的能量轉(zhuǎn)換裝置,其通過磁場的變化產(chǎn)生力和運動。 磁感應(yīng)強度****B ?是指描述磁場強弱和方向的矢量。 永磁電機運行時離不開磁場,磁感應(yīng)強度是決定磁場強度
    的頭像 發(fā)表于 10-11 09:26 ?675次閱讀

    極性Buck-Boost電路分析

    極性Buck-Boost電路是一種特殊的DC/DC變換電路,其輸出電壓的極性與輸入電壓的極性相反,同時輸出電壓既可以低于輸入電壓,也可以高于輸入電壓。這種電路因其獨特的電壓變換能力和輸出電壓的
    的頭像 發(fā)表于 10-10 15:27 ?2457次閱讀

    極性電容怎么變成無極性電容

    將有極性電容轉(zhuǎn)變?yōu)闊o極性電容是一個涉及電路設(shè)計和電容器使用策略的復(fù)雜過程。由于有極性電容和無極性電容在結(jié)構(gòu)、特性和使用場合上存在顯著差異,直接將有
    的頭像 發(fā)表于 09-27 10:53 ?1453次閱讀

    極性電容和無極性電容可以通用嗎

    極性電容和無極性電容在結(jié)構(gòu)、特性、使用場合等方面存在較大差異,因此 通常不能通用 。以下是關(guān)于兩者是否可以通用的分析: 一、結(jié)構(gòu)差異 有極性電容 :又稱為電解電容,主要由兩層金屬箔(
    的頭像 發(fā)表于 09-27 10:48 ?1881次閱讀

    spwm單極性和雙極性的區(qū)別是什么

    SPWM(Sinusoidal Pulse Width Modulation,正弦脈寬調(diào)制)技術(shù)中,單極性和雙極性調(diào)制方式在多個方面存在顯著差異。以下是兩者之間的主要區(qū)別: 一、波形特性 單極性
    的頭像 發(fā)表于 08-14 11:27 ?5274次閱讀

    【《大語言模型應(yīng)用指南》閱讀體驗】+ 基礎(chǔ)知識學(xué)習(xí)

    收集海量的文本數(shù)據(jù)作為訓(xùn)練材料。這些數(shù)據(jù)集不僅包括語法結(jié)構(gòu)的學(xué)習(xí),還包括對語言的深層次理解,如文化背景、語境含義和情感色彩等。 自監(jiān)督學(xué)習(xí):模型采用自監(jiān)督學(xué)習(xí)策略,在大量無標簽文本數(shù)據(jù)
    發(fā)表于 08-02 11:03

    如何學(xué)習(xí)智能家居?8:Text文本實體使用方法

    沒來得及給大家寫使用教程! 不過在寫教程之前,有必要給大家看看上周的成果: Text 實體介紹 Text 實體,也就是文本實體,它支持在 HomeAssistant 輸入文字之后,通過
    的頭像 發(fā)表于 07-15 14:06 ?2015次閱讀
    如何學(xué)習(xí)智能家居?8:Text<b class='flag-5'>文本</b><b class='flag-5'>實體</b>使用方法