論文標(biāo)題:Learning Sentence Embeddings with Auxiliary Tasks for Cross-Domain Sentiment Classification
會(huì)議/期刊:EMNLP-2016
團(tuán)隊(duì):Singapore Management University
主要思想: 通過構(gòu)造兩個(gè)輔助任務(wù)(auxiliary tasks)來從學(xué)習(xí)句子表示,預(yù)測一個(gè)句子是否包含有通用情感詞。這些句子表示可以增強(qiáng)原本情感分類模型中的句子表示,從而提升模型的總體領(lǐng)域適應(yīng)能力。
論文要點(diǎn)一覽:
1. 借鑒了2006年EMNLP的Structural Correspondence Learning的思想
SCL是2016EMNLP的一篇解決領(lǐng)域適應(yīng)的論文,想法很新穎。核心想法是,不同領(lǐng)域的文本,通常會(huì)有一些通用的“指示詞”(稱為pivot words/features),比方在詞性標(biāo)注任務(wù)中,雖然同一個(gè)詞性的詞可能在不同領(lǐng)域文本中千差萬別,但是提示詞性的特征往往是類似的,這些共同的特征就稱為pivot features。然后,那些隨著領(lǐng)域變化的,但跟這些pivot features高度相關(guān)的詞,就被稱為“聯(lián)系詞/對應(yīng)詞”(correspondences),比方在詞性標(biāo)注任務(wù)中那些關(guān)注的詞性對應(yīng)的詞。
領(lǐng)域適應(yīng)中,麻煩的就是這些隨著領(lǐng)域變化的correspondences,它們往往潛藏著類別的信息,但是從表面上看是很領(lǐng)域性的,所以如果有辦法把這些詞中潛藏著的通用的類別信息給提取出來,或者把它們給轉(zhuǎn)化成通用的信息,那這些領(lǐng)域性的詞就變得通用了,就可以適應(yīng)不同領(lǐng)域了。
這個(gè)想法,確實(shí)很有意思,值得我們學(xué)習(xí)。所以這個(gè)SCL要解決的關(guān)鍵問題就是,如何讓模型看到這些領(lǐng)域詞,能轉(zhuǎn)化成通用詞。比如在情感分類中,看到評論“這個(gè)電腦運(yùn)行很快!”就能反應(yīng)出來這個(gè)就是“這個(gè)電腦好!”。SCL的方法就是,我有一個(gè)通用詞的list,把這些詞從句子中挖去,然后讓剩下的部分來預(yù)測出是否包含這個(gè)詞。構(gòu)造這樣的任務(wù),就相當(dāng)于學(xué)習(xí)一個(gè)“通用語言轉(zhuǎn)化器”,把個(gè)性化的語言,轉(zhuǎn)化成通用的語言。
當(dāng)然,由于是2006年的論文,所以是采用傳統(tǒng)的機(jī)器學(xué)習(xí)方法來做,得到句子表示也是通過矩陣分解這樣的方法。這個(gè)16年的新論文,則是使用的深度學(xué)習(xí)的方法進(jìn)行改良和簡化,讓它變得更強(qiáng)大。
2. 跟傳統(tǒng)經(jīng)典方法的的主要不同
本文提到的主要傳統(tǒng)方法有兩個(gè),一個(gè)就是著名的06年的SCL,一個(gè)是大名鼎鼎的Bengio團(tuán)隊(duì)在11年ICML的使用auto-encoder的工作。
這兩個(gè)工作的一個(gè)共同點(diǎn)是,是分兩步進(jìn)行的,即是一個(gè)序列化的方法(learn sequentially),先得到一個(gè)特征表示,改善原來的文本特征,然后再使用經(jīng)典的模型進(jìn)行預(yù)測。
本論文提出的方法,既可以是兩步走的序列化方法,也可以是joint learning,讓輔助任務(wù)跟主任務(wù)共同學(xué)習(xí)。
另外,之前的auto-encoder的做法,在數(shù)據(jù)預(yù)處理的步驟,沒有考慮情感分類任務(wù),也就是跟最終要做的任務(wù)無關(guān),這當(dāng)然也不夠好。
3. 本文是一個(gè)transductive方法,即訓(xùn)練的時(shí)候要利用到全局?jǐn)?shù)據(jù)
訓(xùn)練可用的數(shù)據(jù)包括:
有標(biāo)簽的訓(xùn)練集(source domain)
無標(biāo)簽的測試集(target domain)
4. 輔助任務(wù)的設(shè)計(jì)&對原句子表示的加強(qiáng)
作者設(shè)計(jì)了兩個(gè)輔助任務(wù):預(yù)測一句話中是否有正/負(fù)的通用情感詞。
當(dāng)然,預(yù)測前,需要把句子中的通用情感詞給挖掉,用剩下的詞來預(yù)測。這樣設(shè)計(jì)的依據(jù)是什么呢?如果一句話中包含來通用情感詞,比如“好”,那么這句話多半就是正面的情感,那么這句話剩下的其他的部分,應(yīng)該也大概率會(huì)包含一些領(lǐng)域特定的反應(yīng)情感的詞,比如“(電腦)很快”。那么我們訓(xùn)練一個(gè)能夠使用這些領(lǐng)域特定的詞預(yù)測通用情感詞的模型,就可以得到一個(gè)“通用情感轉(zhuǎn)化器”,把各種不同領(lǐng)域的句子,轉(zhuǎn)化成通用的表示。
輔助任務(wù)的損失函數(shù)如下:
就是二分類交叉熵?fù)p失之和。
如下圖所示,左半邊就是一個(gè)傳統(tǒng)的分類模型。右邊的就是輔助任務(wù)對應(yīng)的模型。
通過把原句子的通用情感詞替換成[UNK],然后使用輔助任務(wù)訓(xùn)練一個(gè)新的模型,就可以得到一個(gè)通用的句子表示向量,也就是圖中的藍(lán)色的向量。
最后,把這個(gè)向量,跟原句子向量拼接起來,就得到來加強(qiáng)版的句子表示,最終使用這個(gè)句子表示來做情感分類任務(wù)。
5. 聯(lián)合訓(xùn)練joint learning
上面講的方法,依然是分兩步做的,這樣會(huì)有些麻煩。其實(shí)整個(gè)框架可以同時(shí)訓(xùn)練,也就是把兩部分的損失函數(shù)合在一起進(jìn)行優(yōu)化:
注意,兩部分的loss,分別來自不同的數(shù)據(jù)集,但是在輔助模型分布,是兩部分?jǐn)?shù)據(jù)都會(huì)使用的,見圖中畫藍(lán)線的地方。
就是代碼實(shí)現(xiàn)上,我一開始想不通如何讓兩個(gè)不同的數(shù)據(jù)集(labeled source data和unlabeled target data)放在一起同時(shí)訓(xùn)練,看了看作者的代碼也沒看明白(基于Lua的torch寫的),直到我看到了作者readme最后寫了一個(gè)提示:
就是說,所謂的joint learning,并不是真正的joint,相當(dāng)于一種incremental learning(增量學(xué)習(xí))。每個(gè)epoch,先把source部分的數(shù)據(jù)給訓(xùn)練了,然后再輸入target部分來優(yōu)化auxiliary部分的模型。
6. 如何選擇pivot words
本文使用了一種叫weighted log-likelihood ratio(WLLR)的指標(biāo)來選擇最通用的情感詞作為pivot words。這個(gè)WLLR的公式如下:
公式里的y就是標(biāo)簽,而y一杠是相反的標(biāo)簽。w則代表某個(gè)詞。從公式可以看出,當(dāng)一個(gè)詞在一個(gè)標(biāo)簽的文本中經(jīng)常出現(xiàn),而在相反標(biāo)簽的文本中出現(xiàn)很少,那么這個(gè)詞的WLLR值就高。
在SCL論文中,使用的是互信息,但是作者發(fā)現(xiàn)互信息偏愛那些低頻詞,相比之下WLLR則公平一些,因此作者選擇WLLR。
7. 數(shù)據(jù)集和實(shí)驗(yàn)結(jié)果
實(shí)驗(yàn)結(jié)果主要表明,Joint Learning確實(shí)可以。但Sequential則效果不敢恭維。。。這一點(diǎn)是我覺得容易讓人詬病的地方,畢竟按照前文中介紹的,即使是Sequential,也因?yàn)閷W(xué)習(xí)到了很好的句子表示,應(yīng)該效果也很不錯(cuò)才對。
另外實(shí)驗(yàn)結(jié)果中,對比一下機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法可以看出,只是用離散特征,效果完全比不是深度學(xué)習(xí)使用連續(xù)特征的方法。注意,這里的NN是指CNN,使用了詞向量,而詞向量相當(dāng)于已經(jīng)擁有了很多外部知識(shí)了,所以一個(gè)單純的CNN,不進(jìn)行任何的domain adaptation的設(shè)計(jì),都比傳統(tǒng)的SCL等方法都好。
作者還做了一些“使用部分target標(biāo)注數(shù)據(jù)來訓(xùn)練”的實(shí)驗(yàn):發(fā)現(xiàn),也有微弱的提升(0.6%實(shí)在不算多哈)。并且,隨著標(biāo)注數(shù)據(jù)量的提升,差距還在縮小:
8. Case Study
這里的case study值得學(xué)習(xí),分析的很細(xì)致,邏輯清晰,還印證了論文的理論假設(shè)。即,作者對比了單純的CNN和使用了輔助任務(wù)來訓(xùn)練的CNN,在分類時(shí)的重要詞匯是哪些,發(fā)現(xiàn)了一些有趣的現(xiàn)象。
我們這里稱單純的CNN為NaiveNN,使用輔助任務(wù)的序列化方法為Sequential,聯(lián)合訓(xùn)練的則為Joint。其中,Sequential和Joint又可以把模型分成兩個(gè)部分,分別為-original和-auxiliary。
總結(jié)一下:
NaiveNN抽取出來的,多半都是“通用情感詞”;
Sequential-original提取出來的跟NaiveNN類似;
Sequential-auxiliary提取出的,多半是“領(lǐng)域詞”,包括“領(lǐng)域情感詞”和“領(lǐng)域類型詞”,后者是該領(lǐng)域的一些特征詞,但并不是情感詞,所以是個(gè)噪音,可能會(huì)對情感模型產(chǎn)生負(fù)面影響;
Joint-auxiliary則提取出的基本都是“領(lǐng)域情感詞”,即相比于sequential少了噪音;
Joint-original則可提取出“通用情感詞”和“領(lǐng)域情感詞”,因?yàn)樗鷄ux部分共享了sentence embedding。
雖然case study一般都是精挑細(xì)選過的,但至少作者分析總結(jié)的還是很到位,也就姑且信了。
最后:
總的來說,這是一個(gè)想法較為新穎,方法較為實(shí)用,思路也make sense的工作。巧妙地借用了SCL的思想,并做了合理的簡化和升級,取得了還不錯(cuò)的效果。
編輯:jq
-
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1224瀏覽量
25457 -
SCL
+關(guān)注
關(guān)注
1文章
243瀏覽量
17560 -
cnn
+關(guān)注
關(guān)注
3文章
354瀏覽量
22746
原文標(biāo)題:使用輔助任務(wù)來提升情感分類領(lǐng)域適應(yīng)
文章出處:【微信號(hào):zenRRan,微信公眾號(hào):深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
51Sim利用NVIDIA Cosmos提升輔助駕駛合成數(shù)據(jù)場景的泛化性
NVIDIA如何讓靈巧機(jī)器人更加適應(yīng)環(huán)境

DevEco Studio AI輔助開發(fā)工具兩大升級功能 鴻蒙應(yīng)用開發(fā)效率再提升
基于Raspberry Pi 5的情感機(jī)器人設(shè)計(jì)

xgboost在圖像分類中的應(yīng)用
【「基于大模型的RAG應(yīng)用開發(fā)與優(yōu)化」閱讀體驗(yàn)】+大模型微調(diào)技術(shù)解讀
【「大模型啟示錄」閱讀體驗(yàn)】如何在客服領(lǐng)域應(yīng)用大模型
基于LSTM神經(jīng)網(wǎng)絡(luò)的情感分析方法
什么是EPS?通過馬達(dá)來輔助轉(zhuǎn)向操作的系統(tǒng)

RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測
FPGA在圖像處理領(lǐng)域的優(yōu)勢有哪些?
激光傳感器的分類及應(yīng)用領(lǐng)域
RK3588 技術(shù)分享 | 在Android系統(tǒng)中使用NPU實(shí)現(xiàn)Yolov5分類檢測
linux定時(shí)任務(wù)的用法總結(jié)

評論