徐 堅,孫 瑜,張利明
(1.云南師范大學(xué) 民族教育信息化教育部重點實驗室,云南 昆明 650500; 2.曲靖師范學(xué)院 信息工程學(xué)院,云南 曲靖 655011; 3.云南師范大學(xué) 信息學(xué)院,云南 昆明 650500; 4.曲靖師范學(xué)院 文化旅游學(xué)院,云南 曲靖 655011)
近年來,人工智能教育研究的前沿是深度學(xué)習(xí)[1],尤其基于深度學(xué)習(xí)的自然語言處理研究更具挑戰(zhàn)[2].自然語言處理 (Natural Language Processing, NLP) 是研究計算機處理和理解文本及語音以完成某些任務(wù)的研究領(lǐng)域.NLP 扎根于許多其他研究領(lǐng)域,如計算機和信息科學(xué)、語言學(xué)、數(shù)學(xué)、電氣工程、人工智能、機器人學(xué)和心理學(xué).NLP研究包括兩個方向:自然語言理解和自然語言生成.多項選擇題生成作為一項對話和話語任務(wù),它同時利用自然語言理解和自然語言生成.
多項選擇題研究是NLP領(lǐng)域的重點和難點,因為它涉及問題的自動生成和干擾項的智能生成.雖然當(dāng)前已有一些文獻開展問題生成和干擾項生成方面的研究[3-5],但是他們普遍采用復(fù)雜的模型架構(gòu)、廣泛的特征和額外的機制,導(dǎo)致這些模型難以訓(xùn)練、代碼復(fù)現(xiàn),這種龐雜的問題生成思路對探索自然語言生成的學(xué)習(xí)者構(gòu)成了很大挑戰(zhàn).[6]為此,文章旨在以谷歌2019推出的最先進的文本生成模型——T5模型[7]為基礎(chǔ),清晰且完整地呈現(xiàn)端到端多項選擇題自動成流程,并通過實驗驗證.
文章的結(jié)構(gòu)如下,第二節(jié)分析問題生成和干擾項生成的研究進展,第三節(jié)探討多項選擇題自動生成的模型架構(gòu)和代碼實現(xiàn),第四節(jié)開展實驗研究,第五節(jié)對全文作總結(jié).
多項選擇題生成任務(wù)包括三個子任務(wù):問題(題干)生成、正確答案生成和干擾項(錯誤答案)生成.創(chuàng)建一個多選選擇題涉及三個要件:一個問題、一個正確答案、三個干擾項.鑒于答案生成屬于問題生成的子任務(wù),本節(jié)重點討論問題生成和干擾項生成的相關(guān)工作.
上世紀50年代以來,問題生成主要基于規(guī)則和模型的方法,但機器生成的問題與人類生成的問題在性能上有較大差距.隨著人工智能的發(fā)展,深度神經(jīng)網(wǎng)絡(luò)的發(fā)展為自動問題生成提供了新契機,特別是谷歌大腦團隊提出的基于多頭注意力機制的Transformer架構(gòu)[8],顛覆了傳統(tǒng)的基于RNN的Seq2Seq問題生成模型,促使問題生成模型的訓(xùn)練速度和問題生成質(zhì)量產(chǎn)生了巨大飛躍,從此引領(lǐng)自然語言問題生成進行了Transformer時代.基于Transformer演變出多種模型變體,比較著名的BERT、GPT、T5(text-to-text transform transformer,T5)[9]等.T5是谷歌于2019年推出的一款具有劃時代意義的通用型文本生成框架,它改變了人們對自然語言生成的思維模式和研究模式.T5基于Transformer架構(gòu),旨在將一切文本生成任務(wù)如翻譯、自動摘要、文本分類、問題生成等統(tǒng)一整合為text-to-text的任務(wù),即,以輸入為文本,輸出也為文本,其思想精髓為文本到文本的遷移學(xué)習(xí).T5具有易用性,由于它要將所有的自然語言生成任務(wù)轉(zhuǎn)換成text-to-text(文本到文本)任務(wù),為了區(qū)分不同任務(wù)類型,它通過對輸入文本格式化來實現(xiàn),例如,對于問題生成任務(wù),輸入文本為:“generate question:
多項選擇題生成任務(wù)的干擾項生成極為困難,因為干擾項可與正確答案在語義上要盡可能相似.通常,干擾項很難從原始閱讀理解文章中直接找到.生成干擾項的傳統(tǒng)策略主要依賴“選擇法”來得到干擾項,選擇法又細分為:基于詞頻的方法,基于詞性的方法[10-11],基于共現(xiàn)的方法,基于干擾項與正確答案共現(xiàn)的方法[12],基于機器學(xué)習(xí)生成干擾項.2017以來,Liang等人[13-14]和Liu等人[15-16]通過組合先前的特征,使用機器學(xué)習(xí)模型來對干擾項進行排序.生成干擾項的主導(dǎo)方法還基于相似度的方法,通過計算干擾項與正確答案的相似度,比如,句法相似(相似的詞性、類似的字母)[17]、特征相似[18-19]、上下文相似[20-21].借鑒前人的研究成果,文章將基于干擾項與正確答案的相似度來生成干擾項,并基于機器學(xué)習(xí)的方法對這些干擾項進行進一步優(yōu)化.
英語閱讀理解多項選擇題的自動生成過程較為復(fù)雜,具體包括數(shù)據(jù)集的構(gòu)建、答案的抽取、問題的生成和干擾項(錯誤答案)的生成等環(huán)節(jié),模型的工作原理如圖1所示.
圖1 多項選擇題的自動生成模型
如圖1所示,多項選擇題模型旨在根據(jù)用戶輸入文章產(chǎn)生多項選擇題——含一個問題、一個正確答案和三個干擾項.本模型用到兩個深度神經(jīng)網(wǎng)絡(luò)模型:問題生成器和干擾項生成器,二者須經(jīng)過“預(yù)訓(xùn)練+微調(diào)”才可用.問題生成器和干擾項生成器都有兩個狀態(tài)“訓(xùn)練中”和“訓(xùn)練后”,訓(xùn)練中的模型繼續(xù)優(yōu)化參數(shù),訓(xùn)練后的模型可投入使用.鑒于答案生成和問題生成是孿生兄弟,所以將答案和問題生成合為一模塊,干擾項生成是另一模塊.在答案和問題生成模塊,首先使用NLTK技術(shù)從文章抽取答案,其次將答案集饋送至問題生成器(深度神經(jīng)網(wǎng)絡(luò)模型)以生成問題,并依據(jù)得到的“答案、問題和文章”來生成3個干擾項,最后生成選擇題.
本節(jié)將研究基于答案感知生成問題的思想[22],基于T5來生成多先選項題的問題、正確答案、干擾項.
2.1.1 答案片斷的抽取
英語語閱讀理解出題任務(wù)是一種多項選擇題生成任務(wù),目前最先進的問題生成技術(shù)是基于答案感知(answer-aware),即,先得到答案,再基于答案并結(jié)合給定的文章來生成問題,答案的獲取一般是從文章中抽取重要的語義概念,如命名實體[23]、動詞或數(shù)字等,采用的技術(shù)有命名實體識別、術(shù)語抽取等.
在實驗中,文章定義了一個專門進行答案抽取的函數(shù)def _extract_answers(self, context),其執(zhí)行步驟如下:
step 1: 給定輸入文本
context = "My name is Jack. I study in CAS."
step 2:預(yù)處理輸入文本
將輸入文本拆分成句子,為了從每個句子抽取answer span,需要對輸入文本格式化:
["extract answers:
以上是文檔格式化后的結(jié)果,其類型為一個列表,列表長度等于句子個數(shù),每個列表元素只對某個句子的前后分別添加
["extract answers
"extract answers:My name is Jack.
step3:將格式化后的句子轉(zhuǎn)換成張量
inputs_tensor = self._tokenize(inputs,padding=True,truncation=True)
此時,每個句子被轉(zhuǎn)化為一個512維的張量,每個張量元素是一個整數(shù),表示句子中對應(yīng)單詞在詞匯表中的編號即id.
step4: 調(diào)用答案感知型問題生成模型的生成函數(shù)以輸出答案片斷
outs = ans_model.generate(inputs_tensor['input_ids'].to(self.device),
attention_mask=inputs_tensor['attention_mask'].to(self.device),
max_length=16)
answers = [self.ans_tokenizer.decode(ids, skip_special_tokens=False) for ids in outs]
dec = [self.ans_tokenizer.decode(ids, skip_special_tokens=False) for ids in outs]
answers = [item.split('
answers = [i[:-1]for i in answers]
step5: 輸出用于生成問題的答案
[['Jack'], ['CAS']]
說明:對給定的輸入文本"My name is Jack. I study in CAS.",從中抽取得到的答案片斷為[['Jack'], ['CAS']],它們將用于下一步的答案感知型問題生成任務(wù).
2.1.2 答案感知型問題生成
通過以上內(nèi)容,基于給定的輸入文本生成了兩個答案片斷['Jack']和['CAS'],就可生成問題,具體步驟如下:
step1:獲取答案片斷
['Jack']和['CAS']
step2: 在問題生成任務(wù)中對輸入文本的預(yù)處理
generate question:
step3:問題生成
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM
qg_text = "generate question: I am
tokenizer = AutoTokenizer.from_pretrained("valhalla/t5-base-qg-hl")
model= AutoModelForSeq2SeqLM.from_pretrained("valhalla/t5-base-qg-hl")
input_ids_mask = tokenizer([qg_text],return_tensors='pt')
output_tensors = model.generate()
for elem in output_tensors:
question_str=tokenizer.decode(elem)
print(question_str)
step4: 輸出
What is my real name? Where I study in?
多項選擇題的干擾項通常很難從源文本直接獲取,因此,需要借助其它來源以生成干擾項.作者調(diào)查了干擾項生成任務(wù),僅能生成單詞或短語的干擾項[24-25],該文章的目標(biāo)則是生成的干擾項更長且語義豐富.鑒于干擾項生是一項尖端任務(wù),文章僅給出實現(xiàn)思路.
模型的訓(xùn)練選擇RACE數(shù)據(jù)集(large-scale ReAding Comprehension dataset from Examinations),RACE是一個用于評價閱讀理解任務(wù)的基準(zhǔn)數(shù)據(jù)集(https://www.cs.cmu.edu/~glai1/data/race/),它的數(shù)據(jù)來源于中國中學(xué)生英語考試中的閱讀理解文章及其多項選擇題,再由專家加工標(biāo)注而成,該數(shù)據(jù)集涵蓋2800篇短文的10萬個問題,涉及豐富多樣的主題.由于RACE中的每篇文章有多個問題,屬于是一對多的關(guān)系,需要將對輸入數(shù)據(jù)作格式化處理.根據(jù)Enrico等人[26]的思想,需要將段落與問題這種一對多的關(guān)系作處理,處理方式有兩種:段落和文章放在一行(All questions Per Line, AQPL)和每個問題和文章占一行(One Question Per Line, OQPL).鑒于OQPL方式能提升模型性能,文章采用OQPL來加工RACE中的數(shù)據(jù).
基于深度神經(jīng)網(wǎng)絡(luò)的多項選擇題自動生成模型需要大規(guī)模的訓(xùn)練數(shù)據(jù).然而,數(shù)據(jù)集的構(gòu)建是一項耗時耗力的浩大工程,非個人和機構(gòu)能夠輕易完成.近年來,“預(yù)訓(xùn)練+微調(diào)”技術(shù)能較好解決這一問題,首先,在數(shù)據(jù)豐富的任務(wù)上預(yù)訓(xùn)練整個模型,使得模型獲得通用能力和知識,這就是模型的預(yù)訓(xùn)練過程,其次,將該模型遷移到下游任務(wù)中,這過程稱為模型的微調(diào).在計算機視覺中,已廣泛采用遷移學(xué)習(xí)[27-30],遷移學(xué)習(xí)是指在預(yù)訓(xùn)練時,通常以有監(jiān)督的方式在諸如ImageNet[31-32]的大型有標(biāo)簽數(shù)據(jù)集上預(yù)先訓(xùn)練模型的參數(shù).相比之下,NLP 中的遷移學(xué)習(xí)通常采用無監(jiān)督學(xué)習(xí)對未標(biāo)記數(shù)據(jù)進行預(yù)訓(xùn)練.這種方法最近被用于在許多最常見的 NLP 基準(zhǔn)測試并獲得最優(yōu)性能[33-36].
因此,文章也將基于“預(yù)訓(xùn)練+微調(diào)”的思想來構(gòu)建數(shù)據(jù)集.當(dāng)前可用的相關(guān)數(shù)據(jù)集有SQuAD[37]和RACE[38]等,文章根據(jù)數(shù)據(jù)集的適用對象,從數(shù)據(jù)集RACE中、閱讀理解材料中選取3000篇左右的文章,構(gòu)建數(shù)據(jù)集.
3.2.1 文章模型與純T5模型的對比
文章采用Sharmat等[39]開發(fā)的評估包,它涵蓋的評估指標(biāo)有BLEU(Bleu_1Bleu_2Bleu_3Bleu_4)、ROUGH_L、METEOR和CIDEr ,其中BLEU評估精確率,ROUGE評估召回率,METEOR同時考慮精確率和召回率.CIDEr 可評估更長的文本.文章模型與純T5模型的對比見表1.
表1 文章模型與T5的對比
從以上數(shù)據(jù)可以看出,文章模型先在T5模型預(yù)訓(xùn)練,再微基于RACE進行微調(diào),其各項指標(biāo)優(yōu)于未開展微調(diào)步驟的T5模型.
3.2.2 文章模型中答案感知型和無答案監(jiān)督型的對比實驗
鑒于答案感知型問題生成模型的問題個和質(zhì)量跟原諒中抽取的答案正相關(guān),最近有人嘗試無答案監(jiān)督的問題生成[40],主要基于transformer技術(shù)來實現(xiàn).為了開展答案感知型和無答案監(jiān)督型的對比實驗,給定同樣的輸入文本,通過實驗比較答案感知型和無答案監(jiān)督型的區(qū)別.
·輸入文本
"A group of old classmates,who have succeeded in their work,got together to visit their teacher.Their conversation soon turned to complaining about the stress in their work and life.The teacher went to the kitchen and returned with a large pot of coffee and many cups.Some of the cups are expensive and lovely,but some are cheap and not beautiful.The teacher told them to help themselves to the coffee."
·答案感知型問題生成模型的輸出
[{'answer':'the coffee','question':'What did the teacher tell them to help themselves to?'},
{'answer':'the kitchen','question':'Where did the teacher return with a large pot of coffee and many cups?'}]
·無答案監(jiān)督型問題生成模型的輸出
['What did a group of old classmates get together to visit their teacher?',
'When did the teacher go to the kitchen?',
'What were some of the cups expensive and not beautiful?']
以上實驗結(jié)果表明,答案感知型問題生成模型輸出2對“答案—問題”,說明問題的個數(shù)和質(zhì)量受到原文中答案片斷質(zhì)量的限制.形成鮮明對比的是,無答案監(jiān)督型問題生成模型則得到了更多的3個問題,但由于這些問是隨機產(chǎn)生,導(dǎo)致有的答案質(zhì)量不高.因此,實際的多項選擇題任務(wù)中,可結(jié)合兩種方式來生成多樣化的問題.
多項選擇題自動生成研究包括許多尖端技術(shù),主要包括問題生成和干擾項生成,這些工作雖然前人已有研究,但鮮有文獻將二者結(jié)合起來研究,以生成可用的多項選擇題.為此,文章探索了多項選擇題生成框架,并通過實驗證明其可行性.文章的研究成果,對于研究者繼續(xù)開展相關(guān)研究和應(yīng)用,具有理論意義和實踐價值.
需要指出的是,本研究雖然能較好實現(xiàn)端到端的選擇題生成,但模型效果還有提升空間,如文章的BLUE分值18.96還與人類的表現(xiàn)有較大差異,也表明其研究潛力很大.同時,未來的工作還應(yīng)進一步研究輸入文本格式、長度對模型性能的影響,干擾項的生成只提出思想,代碼實現(xiàn)有待進一步研究.