1. 背景介紹
Question Generation是指根據(jù)“一段文字”生成“問題”,即像閱讀理解的題目一樣。其主要的應(yīng)用場景是“教育”叉钥,方便讀者深入理解一段文字罢缸,也為外語初學(xué)者等提供更多的學(xué)習(xí)材料;另外也可以被應(yīng)用于對話生成中投队,即生成追問問題;也可以充當醫(yī)生的角色,詢問患者一些基本問題吗铐。但是目前這項研究的主要應(yīng)用場景是生成更多的數(shù)據(jù)來提升Reading Comprehension和QA的效果妒峦。
Question Generation和其他的NLP任務(wù)一樣,并不簡單扒披,比如說下面的例子中:
Sentence:
Oxygen is used in cellular respiration and released by photosynthesis, which uses the energy of sunlight to produce oxygen from water.Questions:
- What life process produces oxygen in the presence of light? (photosynthesis)
- Photosynthesis uses which energy to form oxygen from water? (sunlight)
- From what does photosynthesis get oxygen? (water)
第一個問題中用到了常識信息photosynthesis是一種life process值依;
第二個問題中使用了近義詞form代替produce;
第三個問題是對原句的一個倒置碟案。
可見生成問題要考慮的情況有很多愿险,是一個相對比較復(fù)雜的任務(wù),需要對原文段進行抽象和重述蟆淀。
大部分方法在做Question Generation的時候拯啦,一般經(jīng)過兩個步驟,第一熔任,把raw text (sentence or paragraph)轉(zhuǎn)換成某種syntactic representation (parsing tree)褒链;第二,把syntactic representation套入某個人工采集的template (問題模式)中疑苔,生成句子甫匹。這種傳統(tǒng)的方法主要有三個不足:第一,人工采集template是費時費力的惦费;第二兵迅,基于template的問題不夠多樣,比較死板薪贫;第三恍箭,分了太多的步驟 (too many pipelines)。
于是本文提出了用sequence-to-sequence模型來解決問題瞧省,即像機器翻譯一樣扯夭,把raw text看成是源語言,把question看成是目標語言鞍匾,然后相當于是進行翻譯交洗。
1.1 推薦歷史閱讀
Lucy Vanderwende. 2008. The importance of being important: Question generation. https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Lucy_Vanderwende_NSF_question_gen.pdf
Michael Heilman and Noah A. Smith. 2010. Good question! statistical ranking for question generation. http://www.aclweb.org/anthology/N10-1086
2. 模型構(gòu)建
這里不再詳細介紹sequence-to-seqence模型了,直接上圖橡淑。
首先用雙向RNN(BiRNN)編碼整個句子构拳,然后再用attention機制對編碼后的句子進行側(cè)重點標注,接著送入decoder中,輸出問題置森。
論文中對于h_0的初始化斗埂,用了兩種方式:
第一種是只使用了sentence embedding對h_0進行初始化,如圖中所示凫海,即:
第二種是用這個編碼模型同時對句子和句子所在的文段進行編碼蜜笤,然后將編碼結(jié)果進行concatenate,然后初始化h_0盐碱,即: