文章首發(fā)于zhkun的小窩
介紹
這篇文章是COLING 2018的beat reproduction paper沪饺,文章主要對現(xiàn)有的做句子對任務(wù)的最好的幾個模型進(jìn)行了重現(xiàn)豁遭,并且作者實現(xiàn)出來的效果和原文章聲稱的效果相差不多隆判,這點還是很厲害的粥惧,而且作者對語義理解的集中任務(wù)也做了相關(guān)梳理屎篱,文章簡單易讀芋绸,還是很值得一看的。
任務(wù)
句子對建模是NLP迁客,NLU中比較基礎(chǔ)郭宝,并扮演著重要角色的任務(wù)辞槐,主要集中在語義理解,語義交互上粘室,也是我自己的一個研究方向榄檬,大致有這幾類任務(wù)
- Semantic Textual Similarity (STS) :判斷兩個句子的語義相似程度(measureing the degree of equivalence in the underlying semantics of paired snippets of text)
- Natural Language Inference (NLI) :也叫Recognizing Textual Entailment(RTE),判斷兩個句子在語義上是否存在推斷關(guān)系衔统,相對任務(wù)一更復(fù)雜一些鹿榜,不僅僅是考慮相似,而且也考慮了推理缰冤。
- Paraphrase Identification (PI) :判斷兩個句子是否表達(dá)同樣的意思(identifing whether two sentences express the same meaning)
- Question Answering (QA) :主要是指選擇出來最符合問題的答案,是在給定的答案中進(jìn)行選擇喳魏,而不是生成
- Machine Comprehension (MC) :判斷一個句子和一個段落之間的關(guān)系棉浸,從大段落中找出存在答案的小段落,對比的兩個內(nèi)容更加復(fù)雜一些刺彩。
模型
有了任務(wù)迷郑,作者選取了集中目前情況下最好的模型,因為原文中每個模型可能只針對了某些任務(wù)進(jìn)行了很多優(yōu)化创倔,那這些模型是否真的有效呢嗡害,作者考慮這些模型在所有的任務(wù)上進(jìn)行比較,在介紹模型之前畦攘,作者首先介紹了句子對建模的一般框架:
一般框架
- 輸入層:適用預(yù)訓(xùn)練或者參與訓(xùn)練的詞向量對輸入中的每個詞進(jìn)行向量表示霸妹,比較有名的Word2Vec,GloVe知押,也可以使用子序列的方法叹螟,例如character-level embedding
- 情境編碼層:將句子所處的情境信息編碼表示,從而更好的理解目標(biāo)句子的語義台盯,常用的例如CNN, HighWay Network等罢绽,如果是句子語義表示的方法,一般到這里就結(jié)束了静盅,接下來會根據(jù)具體的任務(wù)直接使用這一層得到語義表示
- 交互和注意力層:該層是可選的良价,句子語義表示有時候也會用到,但更多的是詞匹配方法用到的蒿叠,通過注意力機(jī)制建模兩個句子在詞層面的匹配對齊關(guān)系明垢,從而在更細(xì)粒度上進(jìn)行句子對建模,個人認(rèn)為句子語義表示也會用到這些市咽,只是句子語義表示最后會得到一個語義表示的向量袖外,而詞匹配的方法不一定得到句子語義的向量
- 輸出分類層:根據(jù)不同的任務(wù),使用CNN魂务,LSTM曼验,MLP等進(jìn)行分類判斷泌射。
下圖展示了一些句子語義表示的模型的基本框架:
有了這個一般的框架,接下來作者選取了集中目前最好的模型進(jìn)行重現(xiàn)
模型選擇
- InferSent[1]:BiLSTM+max-pooling
- SSE[2]:如圖1鬓照,和InferSent比較類似
- DecAtt[3]:詞匹配模型的代表熔酷,利用注意力機(jī)制得到句子1中的每個詞和句子2中的所有詞的緊密程度,然后用句子2中的所有詞的隱層狀態(tài)豺裆,做加權(quán)和表示句子1中的每個詞
- ESIM[4]:考慮了一些詞本身的特征信息拒秘,和DecAtt比較類似
- PWIM[5]:在得到每個詞的隱層狀態(tài)之后,通過不同的相似度計算方法得到詞對之間相似關(guān)系臭猜,最后利用CNN進(jìn)行分類躺酒。
數(shù)據(jù):
為了更好的展示每個數(shù)據(jù)的情況,在這里直接用下圖展示作者使用到的數(shù)據(jù)集:
結(jié)果
直接上結(jié)果蔑歌,上圖是原文章中的結(jié)果羹应,下圖是作者重現(xiàn)的結(jié)果
從結(jié)果上看,作者實現(xiàn)的效果還是很厲害的次屠,基本上跟原文章聲明的不相上下园匹,當(dāng)然由于不是針對特定任務(wù)進(jìn)行特別優(yōu)化,所有效果還是有一點點差的劫灶,但基本上可以認(rèn)為是實現(xiàn)了原來的效果裸违,而且作者也發(fā)現(xiàn)了一些有意思的現(xiàn)象,例如:表現(xiàn)最好的就是ESIM本昏,個人感覺這里面加入了很多次本身的一些信息供汛,例如近義詞,反義詞涌穆,上下位信息等紊馏,這些信息其實對句子語義理解十分重要。
以上就是這篇文章的整體介紹蒲犬,作者完整實現(xiàn)了這些方法朱监,并在不同的數(shù)據(jù)集上進(jìn)行驗證,工作量還是很大的原叮,而且對句子對建模進(jìn)行了比較完整的介紹赫编,還是很有意思的。?(^?^●)?
引用
[1]:Supervised learning of universal sentence representations from natural language inference data
[2]:Shortcut-stacked sentence encoders for multi-domain inference
[3]:A decomposable attention model for natural language inference
[4]:Enhanced LSTM for natural language inference
[5]:Pairwise word interaction modeling with deep neural networks for semantic similarity measurement