論文標(biāo)題:Learning Sentence Embeddings with Auxiliary Tasks for Cross-Domain Sentiment Classification
會議/期刊:EMNLP-2016
團(tuán)隊:Singapore Management University
主要思想: 通過構(gòu)造兩個輔助任務(wù)(auxiliary tasks)來從學(xué)習(xí)句子表示,預(yù)測一個句子是否包含有通用情感詞。這些句子表示可以增強(qiáng)原本情感分類模型中的句子表示,從而提升模型的總體領(lǐng)域適應(yīng)能力。
論文要點一覽:
1. 借鑒了2006年EMNLP的Structural Correspondence Learning的思想
SCL是2016EMNLP的一篇解決領(lǐng)域適應(yīng)的論文,想法很新穎。核心想法是,不同領(lǐng)域的文本,通常會有一些通用的“指示詞”(稱為pivot words/features),比方在詞性標(biāo)注任務(wù)中,雖然同一個詞性的詞可能在不同領(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)域了。
這個想法,確實很有意思,值得我們學(xué)習(xí)。所以這個SCL要解決的關(guān)鍵問題就是,如何讓模型看到這些領(lǐng)域詞,能轉(zhuǎn)化成通用詞。比如在情感分類中,看到評論“這個電腦運行很快!”就能反應(yīng)出來這個就是“這個電腦好!”。SCL的方法就是,我有一個通用詞的list,把這些詞從句子中挖去,然后讓剩下的部分來預(yù)測出是否包含這個詞。構(gòu)造這樣的任務(wù),就相當(dāng)于學(xué)習(xí)一個“通用語言轉(zhuǎn)化器”,把個性化的語言,轉(zhuǎn)化成通用的語言。
當(dāng)然,由于是2006年的論文,所以是采用傳統(tǒng)的機(jī)器學(xué)習(xí)方法來做,得到句子表示也是通過矩陣分解這樣的方法。這個16年的新論文,則是使用的深度學(xué)習(xí)的方法進(jìn)行改良和簡化,讓它變得更強(qiáng)大。
2. 跟傳統(tǒng)經(jīng)典方法的的主要不同
本文提到的主要傳統(tǒng)方法有兩個,一個就是著名的06年的SCL,一個是大名鼎鼎的Bengio團(tuán)隊在11年ICML的使用auto-encoder的工作。
這兩個工作的一個共同點是,是分兩步進(jìn)行的,即是一個序列化的方法(learn sequentially),先得到一個特征表示,改善原來的文本特征,然后再使用經(jīng)典的模型進(jìn)行預(yù)測。
本論文提出的方法,既可以是兩步走的序列化方法,也可以是joint learning,讓輔助任務(wù)跟主任務(wù)共同學(xué)習(xí)。
另外,之前的auto-encoder的做法,在數(shù)據(jù)預(yù)處理的步驟,沒有考慮情感分類任務(wù),也就是跟最終要做的任務(wù)無關(guān),這當(dāng)然也不夠好。
3. 本文是一個transductive方法,即訓(xùn)練的時候要利用到全局?jǐn)?shù)據(jù)
訓(xùn)練可用的數(shù)據(jù)包括:
有標(biāo)簽的訓(xùn)練集(source domain)
無標(biāo)簽的測試集(target domain)
4. 輔助任務(wù)的設(shè)計&對原句子表示的加強(qiáng)
作者設(shè)計了兩個輔助任務(wù):預(yù)測一句話中是否有正/負(fù)的通用情感詞。
當(dāng)然,預(yù)測前,需要把句子中的通用情感詞給挖掉,用剩下的詞來預(yù)測。這樣設(shè)計的依據(jù)是什么呢?如果一句話中包含來通用情感詞,比如“好”,那么這句話多半就是正面的情感,那么這句話剩下的其他的部分,應(yīng)該也大概率會包含一些領(lǐng)域特定的反應(yīng)情感的詞,比如“(電腦)很快”。那么我們訓(xùn)練一個能夠使用這些領(lǐng)域特定的詞預(yù)測通用情感詞的模型,就可以得到一個“通用情感轉(zhuǎn)化器”,把各種不同領(lǐng)域的句子,轉(zhuǎn)化成通用的表示。
輔助任務(wù)的損失函數(shù)如下:

就是二分類交叉熵?fù)p失之和。
如下圖所示,左半邊就是一個傳統(tǒng)的分類模型。右邊的就是輔助任務(wù)對應(yīng)的模型。

通過把原句子的通用情感詞替換成[UNK],然后使用輔助任務(wù)訓(xùn)練一個新的模型,就可以得到一個通用的句子表示向量,也就是圖中的藍(lán)色的向量。
最后,把這個向量,跟原句子向量拼接起來,就得到來加強(qiáng)版的句子表示,最終使用這個句子表示來做情感分類任務(wù)。
5. 聯(lián)合訓(xùn)練joint learning
上面講的方法,依然是分兩步做的,這樣會有些麻煩。其實整個框架可以同時訓(xùn)練,也就是把兩部分的損失函數(shù)合在一起進(jìn)行優(yōu)化:

注意,兩部分的loss,分別來自不同的數(shù)據(jù)集,但是在輔助模型分布,是兩部分?jǐn)?shù)據(jù)都會使用的,見圖中畫藍(lán)線的地方。
就是代碼實現(xiàn)上,我一開始想不通如何讓兩個不同的數(shù)據(jù)集(labeled source data和unlabeled target data)放在一起同時訓(xùn)練,看了看作者的代碼也沒看明白(基于Lua的torch寫的),直到我看到了作者readme最后寫了一個提示:

就是說,所謂的joint learning,并不是真正的joint,相當(dāng)于一種incremental learning(增量學(xué)習(xí))。每個epoch,先把source部分的數(shù)據(jù)給訓(xùn)練了,然后再輸入target部分來優(yōu)化auxiliary部分的模型。
6. 如何選擇pivot words
本文使用了一種叫weighted log-likelihood ratio(WLLR)的指標(biāo)來選擇最通用的情感詞作為pivot words。這個WLLR的公式如下:

公式里的y就是標(biāo)簽,而y一杠是相反的標(biāo)簽。w則代表某個詞。從公式可以看出,當(dāng)一個詞在一個標(biāo)簽的文本中經(jīng)常出現(xiàn),而在相反標(biāo)簽的文本中出現(xiàn)很少,那么這個詞的WLLR值就高。
在SCL論文中,使用的是互信息,但是作者發(fā)現(xiàn)互信息偏愛那些低頻詞,相比之下WLLR則公平一些,因此作者選擇WLLR。
7. 數(shù)據(jù)集和實驗結(jié)果
實驗結(jié)果主要表明,Joint Learning確實可以。但Sequential則效果不敢恭維。。。這一點是我覺得容易讓人詬病的地方,畢竟按照前文中介紹的,即使是Sequential,也因為學(xué)習(xí)到了很好的句子表示,應(yīng)該效果也很不錯才對。
另外實驗結(jié)果中,對比一下機(jī)器學(xué)習(xí)方法和深度學(xué)習(xí)方法可以看出,只是用離散特征,效果完全比不是深度學(xué)習(xí)使用連續(xù)特征的方法。注意,這里的NN是指CNN,使用了詞向量,而詞向量相當(dāng)于已經(jīng)擁有了很多外部知識了,所以一個單純的CNN,不進(jìn)行任何的domain adaptation的設(shè)計,都比傳統(tǒng)的SCL等方法都好。
作者還做了一些“使用部分target標(biāo)注數(shù)據(jù)來訓(xùn)練”的實驗:發(fā)現(xiàn),也有微弱的提升(0.6%實在不算多哈)。并且,隨著標(biāo)注數(shù)據(jù)量的提升,差距還在縮小:
8. Case Study
這里的case study值得學(xué)習(xí),分析的很細(xì)致,邏輯清晰,還印證了論文的理論假設(shè)。即,作者對比了單純的CNN和使用了輔助任務(wù)來訓(xùn)練的CNN,在分類時的重要詞匯是哪些,發(fā)現(xiàn)了一些有趣的現(xiàn)象。
我們這里稱單純的CNN為NaiveNN,使用輔助任務(wù)的序列化方法為Sequential,聯(lián)合訓(xùn)練的則為Joint。其中,Sequential和Joint又可以把模型分成兩個部分,分別為-original和-auxiliary。
總結(jié)一下:
NaiveNN抽取出來的,多半都是“通用情感詞”;
Sequential-original提取出來的跟NaiveNN類似;
Sequential-auxiliary提取出的,多半是“領(lǐng)域詞”,包括“領(lǐng)域情感詞”和“領(lǐng)域類型詞”,后者是該領(lǐng)域的一些特征詞,但并不是情感詞,所以是個噪音,可能會對情感模型產(chǎn)生負(fù)面影響;
Joint-auxiliary則提取出的基本都是“領(lǐng)域情感詞”,即相比于sequential少了噪音;
Joint-original則可提取出“通用情感詞”和“領(lǐng)域情感詞”,因為它跟aux部分共享了sentence embedding。
雖然case study一般都是精挑細(xì)選過的,但至少作者分析總結(jié)的還是很到位,也就姑且信了。
最后:
總的來說,這是一個想法較為新穎,方法較為實用,思路也make sense的工作。巧妙地借用了SCL的思想,并做了合理的簡化和升級,取得了還不錯的效果。
編輯:jq
-
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1240瀏覽量
26264 -
SCL
+關(guān)注
關(guān)注
1文章
244瀏覽量
18081 -
cnn
+關(guān)注
關(guān)注
3文章
356瀏覽量
23563
原文標(biāo)題:使用輔助任務(wù)來提升情感分類領(lǐng)域適應(yīng)
文章出處:【微信號:zenRRan,微信公眾號:深度學(xué)習(xí)自然語言處理】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
九天菜菜大模型agent智能體開發(fā)實戰(zhàn)2026一月班
汽車駕駛輔助系統(tǒng)領(lǐng)域首個強(qiáng)制性國家標(biāo)準(zhǔn)發(fā)布
時間基準(zhǔn)的核心力量:低相噪銣原子振蕩時鐘的多領(lǐng)域應(yīng)用解析
LuatOS AGPS 輔助定位開發(fā)實戰(zhàn)教程
廣和通發(fā)布端側(cè)情感對話大模型FiboEmo-LLM
【「AI芯片:科技探索與AGI愿景」閱讀體驗】+AI的未來:提升算力還是智力
Task任務(wù):LuatOS實現(xiàn)“任務(wù)級并發(fā)”的核心引擎
用快手電商 API 實現(xiàn)快手小店商品評論情感分析
QNX助力WeRide打造高級輔助駕駛系統(tǒng)
【「DeepSeek 核心技術(shù)揭秘」閱讀體驗】+混合專家
51Sim利用NVIDIA Cosmos提升輔助駕駛合成數(shù)據(jù)場景的泛化性
利用NVIDIA Isaac Lab訓(xùn)練工業(yè)機(jī)器人齒輪裝配任務(wù)
SMA接口在汽車電子復(fù)雜環(huán)境下的適應(yīng)性剖析
NVIDIA如何讓靈巧機(jī)器人更加適應(yīng)環(huán)境
如何使用輔助任務(wù)來提升情感分類領(lǐng)域適應(yīng)?
評論