謝 紅,孫 銳
(樂山師范學院 人工智能學院,四川 樂山 614000)
自動問句生成(Question Generation,QG)旨在根據文本段落或上下文生成問題[1]。該任務被廣泛地應用于教育、對話、自動問答等領域。在教育領域,問句生成可用于課程材料的評價,亦可作為智能輔助教學的組成部件。通過構建高質量的問題集,對學生知識掌握程度或自主學習能力的評估起到至關重要的作用。在對話領域,生成流暢的問句是對話系統的一個重要技能。作為問答系統(Question Answering,QA)的逆向任務,問題生成具備提供大規模問答對的潛質,可減少構建大規模數據集所需的人力。
一般地,問句生成的目標為給定源文本生成一個問題集合,其中每個問題均能在文本中找到對應答案。問句生成任務框架如圖1 所示,大體分為三個子任務:

圖1 問句生成框架
a)內容選擇旨在選擇和設定待提問的目標或想要的答案,主要解決“問什么”的問題。故需要抓住文本重要信息,標記出待提問的重要屬性。
b)問題類型選擇旨在給定目標答案后,確定待提問的問題類型(What、When、Who、Which、Where,Why,How 和Yes/No 等)。此子任務常用在基于規則的方法里。在基于神經網絡的模型里,問句類型和句法形態可通過語句或詞的特征和問句表示的構造來確定。
c)問句構造旨在給定目標和問句類型后構造問句,主要解決“如何問”的問題。此子任務關注如何用自然語言描述待提問的重要屬性,因而需聚焦于語法正確性、語義精確性和語言靈活性。
自動問句生成任務面臨的挑戰有:(a)問題類型眾多;(b)文本理解中的部分語言學挑戰,如否定檢測和指代消解等;(c)問句形態多樣化,特別是在中文領域。例如,百度老總是誰?誰是百度老總?(d)詞形詞義多樣化,例如,百度老總是誰?百度董事長是誰?
自動問句生成方法主要分為兩類:一類是基于規則的問句生成[2-5],多利用啟發式規則將語句轉換為相關問句;另一類是基于神經網絡的問句生成模型[6-9],主要利用深度學習中的序列到序列(Seq2Seq)技術。
多數基于規則的基本思路,將輸入語句轉換為語法結構表示,利用這種結構表示去匹配預定義模板或者利用句法特征對語句進行重排以生成問句。典型地,此類方法需要確定輸入語句的句法模板、關鍵字或語義角色,故多以語法和語義為依托進行語法或語義解析。在問句生成時,采用轉換(Transformation-based)方法重排輸入語句的表達,或利用模板方法(Template-based)來定制問句的生成。
為提升問句生成質量,此類方法多從以下幾個技術角度改進:a)詞形和詞義。詞性識別、實體識別、關鍵詞識別、詞干化、詞相似性;b)語句句法結構。語義依存關系、語義角色標注、句法成分結構;c)語句相似性或主題相關性。
Yllias[2]等提出根據主題從正文信息生成所有可能的問句。首先進行語句簡化去除冗余句子成分,以便利用命名實體信息和謂詞論元信息生成問句;然后利用主題模型和字符串核方法計算問句與正文以評估主題相關度;最后采有句法樹核方法計算問句與正文的句法相似度以評估句法正確度。Karen[3]等探索了在教育領域下構建各種深度或不同類型的問句,結合語言學特點深度分析了語句的語義角色關系,設計了約42 個語義模板,以生成語句相關的問句和答案。Mass[4]等利用依存分析工具、PropBank、VerbNet、WordNet 等知識庫或工具開發了一套句法規則,有效地實現了全局依存關系、淺層語義分析、詞匯資源和習慣性規則的平衡,最后利用回譯技術生成語法準確、高度相關的問句。
可以看出,基于規則的方法簡單且易于實現,但無一例外,都面臨著一些較難的語言學挑戰,如否定詞檢測、指代消解和動詞形態變化等。問句語用學的研究對問句生成應能產生積極的影響。
主流的深度問句生成模型大多沿用Seq2Seq框架,如圖2 所示。給定一個段落X={x1,...,xn}false 和目標答案Afalse,模型旨在針對Afalse 生成一個問句Y={y1,...,ym}false。故,模型優化目標為最大化給定Xfalse 和Afalse 時生成最佳問句Y^false 的條件概率,即:

圖2 基于神經網絡的模型典型結構

多數基于神經網絡的模型關注以下兩方面的技術細節:
a)與QG 有關的因素,如答案編碼、問句詞的生成和段落級的上下文表示等。
(a)答案編碼。答案作為模型輸入用于指導模型在問句生成時關注哪些信息,以免模型生成與特定目標無關的問句。主要有兩種實施方案,一是利用額外的答案指示特征增廣答案中的每個詞向量,如BIO 標記,位置向量等,另一種則采用特定的詞條替換答案以進行段落編碼。
(b)問句詞生成。問句詞在問句生成起著重要的作用。當前大多的模型中存在著問句詞生成和答案類型不一致的情況。
(c)段落上下文。有統計表明,約20%的問句需要借助段落上下文信息作答。但隨著輸入問句長度的增加,Seq2Seq 模型的學習需要較高的耗時才能有效利用上下文信息。
b)常見的自然語言處理技術,如拷貝機制和語言特征等。
(a)拷貝機制。在解碼過程中,若回指了在源語句中的短語或實體,或用于構建事實性問句或難以用RNN 解碼生成稀疏詞時,可以直接從源語句拷貝相關詞到問句。
(b)語言特征。用于補充詞表示,包括詞的大小寫、詞性(POS)、命名實體(NER)標簽、指代和依存信息等。
Zhou[6]等提出應用神經編碼-解碼模型以生成有意義的多樣化的問句。編碼輸入為文本和答案位置,以得到答案敏感(Answer-aware)的輸入表示,再由解碼器生成聚焦答案(Answer-focused)的問句。模型使用BiGRU 獲得前向和后向編碼,除傳統的詞向量輸入,還引入NER 和POS 標簽作為額外特征來標注答案的位置,使得模型對目標答案更敏感,在解碼時采用了注意力和拷貝機制。Sun 等[7]提出一種和位置敏感的神經問句生成模型。通過聚焦答案以引入答案表示,顯式地對疑問詞的生成建模,有助于疑問詞和答案類型的匹配。通過對上下文和答案的相對距離建模,以生成相應的位置敏感的注意力,有助于原文中拷貝相對距離較近且相關的上下文詞條。同Zhou[7]等的工作類似,引入了NER 和POS 等特征,在解碼階段同時支持在拷貝和生成兩種模式的切換。Zhao[8]等聚焦于答案敏感的問句生成,以段落和答案為輸入,生成針對給定答案的問句,假定答案是由給定段落中的某些文本片段組成。提出一種帶門自注意力(Gated Self-attention)的指針機制,以處理問句生成中長文本挑戰。其中,門自注意力用于在每個時間步聚集來源于段落的信息,嵌入段落內部依存以提煉段落答案的編碼表示;在解碼時每個時間步上的詞均被看成單獨的一個拷貝目標并限制重復詞的得分。Kim[9]等認為大多數現有神經網絡模型通過答案位置特征引入目標答案信息,從而使得生成的問句中大多包含了目標答案中的詞。因此,聚焦于如何把原始段落和目標答案分離開,提出答案分離(Answer-separated)的Seq2Seq 模型,更好地利用段落和目標答案的信息。采用掩碼替代目標答案,單獨保留對應的目標答案,采用基于檢索的詞生成方式以糾正傳統Seq2Seq 模型的缺陷(傳統Seq2Seq 傾向于記憶序列模式而非詞義),有效地抓住語義。
a)從方法的難易程度來看,基于規則的方法實現簡單,問句可根據模板或句法結構直接生成,而基于神經網絡的方法以數據為驅動,問句的生成質量依賴于網絡結構的特征學習能力以及訓練數據的質量。
b)從方法的語言學本質來看,基于規則的方法多利用淺層語義工具來分析詞的句法角色和語句的句法結構,而基于神經網絡的方法更關注詞的語義角色,強調語句的深層語義分析。
c)從方法的魯棒性來看,基于規則的方法依賴于模板的質量,故大多在特定的領域實現,而基于神經網絡的方法則具有更強的魯棒性,領域無關性較好。
d)從問句類型選擇方式來看,基于規則的方法大多對不同問句類型分別設計或統計模板,而基于神經網絡的方法則允許在一個統一的框架里聯合優化多個不同類型的問題,無需分別關注不同類型的問句。
e)從數據資源和人力耗費來看,基于規則的方法對模板質量有較高要求,故需要具有一定語言學背景的領域專家,而基于神經網絡的方法則依賴大量訓練語料來習得任務相關的特征,故需要人力來標注大量的問句-答案對。
從對比分析結果可看出,基于規則的方法能利用常用句法結構和模板生成質量較高的問句,領域依賴性較強,對稀疏性的結構則難以應用。基于神經網絡的方法采用數據驅動,依靠網絡結構強大的特征學習和表示能力,具備更強的靈活性和魯棒性,從而具備更好的應用前景。
除以上兩類方法外,學術界也開展了多任務學習[10]、增強學習[11-12]等技術在問句生成上的研究。
Tang[10]等認為在QA 和QG 任務中,Seq2Seq的QG 模型大多以最大似然估計為目標函數,為同時提升QA 和QG 性能,提出一種在問答場景下同時泛化生成對抗網絡和生成域適應網絡的訓練算法,通過引入額外的QA 特定信號作為損失函數以提升QG 性能。
Kumar[11]等認為神經網絡技術常常忽略訓練集和測試集的詞分布之間的差異,提出一種端到端的框架以生成問句。生成器建立在問句語義和結構基礎上,利用指針網絡標識出目標答案,采用覆蓋機制避免問句中可能會出現的冗余詞;而評估器則既可以通過問句生成評價指標以優化問句與的一致性,又可以通過可分解的注意力機制實現適合問句的匹配。
此外,隨著近年來大量預訓練神經語言模型席卷整個自然語言處理領域,在開放文本生成的采樣中預訓練模型同樣展示出了較強的魯棒性,并開始用于問句生成任務[4][12-13]。
大多數學術界的研究成果主要針對英文語料。近兩年,因為中文語料上自動對答和會話任務的興起,開始出現中文問句語料,但未有中文問句自動生成的標準評測語料。
一般來說,問句生成語料主要關注兩個層面[1]:一是答案的認知層面,主要關注于事實性問題,例如SQuAD 和MS Marco 等。另一個是關注答案的類型的不同,主要分為四種:(a)答案為段落中一個文本片段;(b)答案不直接出現在段落中;(c)多選問題,通常問題和相關干擾項聯合生成;(d)未給定答案,要求模型能自動學習“什么值得問”。受限于目前的學習技術,大多數的研究主要聚焦于前者。
一個較好的問句生成模型應具備以下能力:(a)能抓住問句在段落中最顯著的信息;(b)以顯著信息為目標答案,能生成答案相關且符合段落主旨的問句;(c)生成的問句應具備語法的正確性和語句的連貫性。和文本生成任務類似,問句生成的評價方法主要包括兩類:(a)人工評價。一般隨機采樣幾百個問句,評分員采用5 級分制對問句進行打分。通常采用平均得分或最好得分占比作為質量得分。評價主要從語法正確性、語義精確性和回答難度等幾個因素度量。(b)自動評價。主要包括BLEU、METEOR 和ROUGE 等。其中,BLEU 通過統計模型答案和參考答案中子串的匹配數量來度量,常用BLEU-4 指標;Meteor 主要比較模型答案和參考答案在詞干化、同詞義和改寫后,詞和短語上的匹配數量;而Rouge-L 則度量模型答案和參考答案的最長公共子串的平均長度。
隨著自動問答和多輪對話的廣泛應用,問句生成開始扮演越來越重要的角色。教會機器如何提問已經成為一個刻不容緩的任務。有研究者針對自動問句生成任務,嘗試采用不同的解決方法或開展新應用場景的研究。這些探索性的研究給問句生成任務的發展提供了方向上的指引,大體可歸納為以下幾個方面:
a)問句生成模型結構的研究。改造神經網絡結構,提升與問句生成有關的特征學習效果,特別是將外部知識庫引入到網絡結構是研究方向之一。例如,利用貝葉斯推理或知識蒸餾技術(Knowledge Distillation)將問句模板知識引入網絡結構從而強化詞特征和結構特征。
b)由常規問句生成演化的新任務?,F有的研究大多是針對答案有關的問句生成,近年來開始出現一些常規問句生成相關的新任務,例如Pan等[14]提出一種對話問句生成,旨在基于段落和對話歷史(如過去幾輪的問答對)生成問句。如前所述,問句生成亦可與答案無關,即僅提供輸入段落,問句生成模型應能自動標注出段落中值得提問的部分。這種新任務因動機和輸入不同,使得任務模型結構上存在著較大的研究空間。例如,長程語義依賴學習能力更強的Transformer 及變種在段落語義理解上將擁有更大的優勢。
c)嘗試在問句的輸入端引入不同的模態,例如知識庫和圖像信息[15]。給定知識圖譜和實體,如何實現問句生成?給定圖像,該如何提問?直觀地視覺問句生成可以以較小的代價為視覺問答任務生成規模更大的訓練語料,從而減少人工標注的工作量。開展多模態語義融合技術的研究將為問句生成的廣泛應用提供更好的保障。
受限于問句生成任務起步較晚和本身任務的復雜性,目前自動問句生成的準確率還比較低。標準評測數據集上的BLEU-4 和Meteor 得分在0.25-0.3 之間,Rouge-L 得分在0.55 左右,離實際應用需求還有差距。隨著人工智能技術的飛速發展,特別是自動問答和會話系統的廣泛應用需求,自動問句生成任務無論是從語料建設、評價方法還是技術實現將得到快速的推動。