一点关于cloze-style问题的简谈
一個小任務(wù):給出一個問題和諾干個候選句子,從候選句子中選出答案,有沒有好的實(shí)現(xiàn)方案?
一個小任務(wù):類似于:“中國最大的內(nèi)陸湖是哪個?”給出候選句子1.”中國最大的內(nèi)陸湖,就是青海湖”2.“青海湖在中國內(nèi)陸湖中最大的”等等 這種句子 然后根據(jù)句子找出答案 請問有什么實(shí)現(xiàn)的方案嗎?
寫了個答案,算是個科普向的,搬運(yùn)到專欄
1 從“是什么”說起
這個問答屬于傳統(tǒng)的question-answer問題,比如例子上的
中國最大的淡水湖是___(轉(zhuǎn)義,并不一定存在填空,但性質(zhì)相同)
需要的結(jié)果,是補(bǔ)全出,青海湖這個結(jié)果
在英文中,我們稱這種,給予一個query,回答一個詞,作為“填空”,來回答的問題,稱為“cloze style”的問題,來源于英語中的填字游戲
我們的input是一個query,一篇context,然后從文章中選取一個 存在于文章中的(point) 詞,來做一個 填空 問題,將這個詞作為output
現(xiàn)在,問題明確了,我們的任務(wù),就是構(gòu)建這個"端對端"的,input-output系統(tǒng)
2 從“為什么”談?wù)?/p>
首先想說一說attention這個概念,以此導(dǎo)入后面的介紹
準(zhǔn)確的描述請看
@Tao Lei 大神關(guān)于attention的回答我們現(xiàn)在已經(jīng)確定了兩點(diǎn)
第一,我們所要找的"填空"詞,必然是context中的一個
第二,判定這個詞我們需不需要,主要取決與我們的query,也就是問題
那么很自然的就會想到,如果我們能夠?qū)ontext中的每個詞,和這個query都構(gòu)建一個函數(shù),假設(shè)context = {word1,word2......},我們希望有一個量化的函數(shù)f(query,word_i) = value,然后我們只需要選擇出max的那個詞來進(jìn)行"填空",就完成了
放到題目中,我們假設(shè)存在那么一個f
query:中國最大的淡水湖是哪一個?
f(query,青海湖) = 10
f(query,doge) = 1
f(query,野鴨湖) = 5
然后我們就max(),直接獲得了青海湖這個答案
3 往"怎么做"說說
現(xiàn)在的問題變成了:
(1) 如何把這些離散的變量納入函數(shù)去計算?
寫過相關(guān)代碼的,說一句embedding足夠了,本質(zhì)上就是用詞向量去表達(dá)
簡單解釋一下,詞向量就是用向量來把離散化的詞來進(jìn)行另一個形式的表達(dá),比較好的詞向量可以model到語義,具體來說就是,v1如果表達(dá)"青海湖",v2 表達(dá) "撫仙湖",v3表達(dá)"青海".v4表達(dá)"云南",我們甚至可以直接做到v3 -v1 = v4-v2的神奇效果
但這顯然不夠
如果只是model到單個詞,很大程度上浪費(fèi)了文章信息,我們需要盡可能的涵蓋上下文的意思,英文capture
我們希望,model出青海湖這個詞的向量的時候,能包含"淡水湖,最大"之類的描述信息,這又如何做到呢
LSTM,時序神經(jīng)網(wǎng)絡(luò)RNN,一個經(jīng)典的解決方案,embedding日常
看個熱鬧的話,這里,我們已經(jīng)用一個向量表達(dá)了青海湖,還包含了一些它的屬性信息,當(dāng)然這個表達(dá),只有計算機(jī)看得懂
(2) 如何構(gòu)建合理的函數(shù)f?
第一篇開山的是這個
Teaching Machines to Read and Comprehend (Hermann et al., 2015)
Y. Cui, Z. Chen, S. Wei, S. Wang, T. Liu, G. Hu
藍(lán)紅部分做的就是所謂的capture的工作,也就是對詞做了一個抽象,也對問題進(jìn)行了一個抽象,在這個時候,訓(xùn)練了一個權(quán)重向量s,也就是attention
計算的思路也是非常清晰的,g就是我們之前試圖尋找的那個f,表達(dá)的東西是一樣的
秉承這個attention的思路,IBM搞出了一個更清晰的完全體,大概是1.0版本和1.1版本的關(guān)系,并且github上有完整的實(shí)現(xiàn),能給一個比較好的參考
Text Understanding with the Attention Sum Reader Network (Kadlec et al., 2016)
Y. Cui, Z. Chen, S. Wei, S. Wang, T. Liu, G. Hu
網(wǎng)絡(luò)的結(jié)構(gòu)和計算非常簡單,但是人家就有soa的效果
今年的Squad,stanford的全球性評測當(dāng)中,科大訊飛andHIT和MSRA的兩篇論文我記得第一第二,其中Aoa reader的論文和上兩篇可以說是一脈相承的思路,只不過在對attention的利用上更近一層,MSRA的r-net有所不同,都是值得一讀的文章,我在此貼一下paper的鏈接,這算是目前我知道的,這類問題的最好解決方案了
MSRA
http://aka.ms/rnet
Joint Laboratory of HIT and iFLYTEK Research
[1607.04423] Attention-over-Attention Neural Networks for Reading Comprehension
前一個復(fù)雜一些,后一個實(shí)現(xiàn)一下不難就是了,不過嘛,誰知道煉丹過程中有什么佐料呢
感謝觀看
編輯于 2017-09-21 原文鏈接:https://zhuanlan.zhihu.com/p/29548295總結(jié)
以上是生活随笔為你收集整理的一点关于cloze-style问题的简谈的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 快速理解bootstrap,baggin
- 下一篇: Barra 结构化风险模型实现(1)——