黃石 林政
(中國傳媒大學(xué)動(dòng)畫與數(shù)字藝術(shù)學(xué)院 北京市 100024)
自然語言文本生成的核心問題是自然語言如何在計(jì)算機(jī)中進(jìn)行表示。常見的方式是使用NLTK等分類詞庫進(jìn)行分析,分類詞庫存儲(chǔ)大量詞匯,并對(duì)每個(gè)詞分別存儲(chǔ)其上位詞、同義詞等。但這種方法存在數(shù)據(jù)主觀化、無法準(zhǔn)確計(jì)算詞語相似度等問題。如將詞語轉(zhuǎn)換為one-hot向量表示,則存在向量長度過長等問題。
2003年,Bengio等人以J.R.Firth的理論為基礎(chǔ),提出在神經(jīng)網(wǎng)絡(luò)中詞嵌入的思想[1]。2013年,Mikolov等人提出word2vec向量模型、Skip-gram和Continuous Bag of Words方法[2]。2014年,Rong X對(duì)word2vec模型提供了理論推導(dǎo)和解釋[3]。隨后,斯坦福大學(xué)提出詞向量模型GloVe[4],該模型以“預(yù)測”為主,對(duì)共現(xiàn)矩陣進(jìn)行降維從而學(xué)習(xí)詞向量。2018年,Peters.M.E等人提出詞向量模型ELMo[5],該模型為雙層雙向的LSTM(長短期記憶網(wǎng)絡(luò)),可通過上下文計(jì)算同一個(gè)詞匯在不同語境下的表達(dá)。隨著Transformer架構(gòu)的流行,出現(xiàn)基于此架構(gòu)的GPT和BERT模型。
本文采用GPT-2模型,通過Top-k采樣及核采樣方法,基于《唐才子傳》的樣本數(shù)據(jù)集,生成若干古代漢語文本,并對(duì)LSTM、Sequence to sequence、Sequence to sequence+attention等其它方法進(jìn)行了比較研究,初步驗(yàn)證了GPT-2在古代漢語環(huán)境中的表現(xiàn)。
GPT-2語言模型是由OpenAI發(fā)布的GPT模型的改進(jìn)版本,其核心思想指明語言模型是無監(jiān)督的多任務(wù)學(xué)習(xí)者。相比于GPT模型,GPT-2的模型規(guī)模更大,表現(xiàn)更加優(yōu)異。
自然語言通過上文以預(yù)測的方式生成下一個(gè)詞匯的解碼過程,通常使用求最大似然、貪婪算法和束搜索等方法,然而生成的文本質(zhì)量并不理想。實(shí)踐證明,Top-k[6]方法更加有效,通過對(duì)概率分布進(jìn)行截?cái)?,選取概率較大的前k個(gè)字符,再根據(jù)概率,從中抽取生成字符。
更正式地說,給定一個(gè)概率分布P(x|x1:i-1),選取其中的某k個(gè)字,使得取得最大值,其中令將初始概率分布進(jìn)行按式(1)進(jìn)行重新縮放,后按照新的概率分布P'(x|x1:i-1)進(jìn)行抽樣,作為下一個(gè)生成字。
通過分析人類文本和束搜索生成文本的概率分布發(fā)現(xiàn),人類文本中每個(gè)詞的困惑度上下起伏波動(dòng),而機(jī)器生成文本中的困惑度呈現(xiàn)出不自然的平緩,并且其困惑度相對(duì)較高。在此基礎(chǔ)上,Top-p采樣方法對(duì)概率分布進(jìn)行截?cái)?,通過定義閾值p,選取累積概率超過閾值p的前n個(gè)字符,從中抽取生成字符。
更正式地說,給定一個(gè)概率分布P(x|x1:i-1),按從大到小的順序選取前n個(gè)字,使得式(2)成立,其中V(n)?V。
Top-p方法可以在有效截?cái)喾植贾胁豢煽康奈膊康耐瑫r(shí),允許文本的多樣性,從而在不犧牲流暢性和連貫性的前提下,增強(qiáng)生成文本的多樣性。
本文使用的數(shù)據(jù)集取自《唐才子傳》。該文集收唐、五代詩人傳記278篇,寫作風(fēng)格一致,適合作為神經(jīng)網(wǎng)絡(luò)的輸入數(shù)據(jù)進(jìn)行訓(xùn)練。本文數(shù)據(jù)集共76769個(gè)字符。
本文同時(shí)采用了LSTM、Sequence to sequence、Sequence to sequence加上注意力機(jī)制,與GPT-2模型進(jìn)行了對(duì)比實(shí)驗(yàn)。實(shí)驗(yàn)詳情如下:
LSTM模型采用雙層的構(gòu)架模型,每層包含512個(gè)LSTM單元。
Sequence to sequence模型包含編碼器和解碼器兩部分,編碼器和解碼器均為雙層架構(gòu),每層包含1024個(gè)LSTM單元。
Sequence to sequence加注意力機(jī)制模型的編碼器部分采用雙向LSTM單元,在解碼器部分添加了注意力(Attention)機(jī)制。
本文選擇了GPT-2模型的“345M”版本,并使用稀疏softmax交叉熵計(jì)算損失,使用Adam計(jì)算梯度下降,學(xué)習(xí)率為0.0002。
模型訓(xùn)練完成后,使用Top-k采樣(超參數(shù)k為40)和核采樣方法(超參數(shù)p為0.9)生成文本。
表1:Top-k方法的部分生成樣本
表2:問卷調(diào)查結(jié)果:語句通順度
表3:問卷調(diào)查結(jié)果:內(nèi)容一致度
表4:問卷調(diào)查結(jié)果:整體質(zhì)量
本文采用調(diào)查問卷的評(píng)估形式,分別從4個(gè)模型的8種分類中隨機(jī)挑選16個(gè)樣本,與數(shù)據(jù)集的2個(gè)樣本,共計(jì)18個(gè)樣本作為評(píng)測對(duì)象。問卷分別從語句通順度、內(nèi)容一致度、整體質(zhì)量3個(gè)方面對(duì)文本進(jìn)行評(píng)估,分?jǐn)?shù)范圍為1-10。
參與問卷調(diào)查的100名用戶均為在讀研究生,其中有35名為文學(xué)類相關(guān)專業(yè)碩士。其中有10份表示不熟悉文言文,最終選取其余90份作為有效問卷并進(jìn)行分析。分析結(jié)果如表2、表3、表4所示。結(jié)果證明GPT-2生成的樣本質(zhì)量較高。
但GPT-2生成文本也存在一些問題。如生成“善善善”,“TONY?SK?”等無意義的字段。其原因在于GPT-2模型的預(yù)訓(xùn)練數(shù)據(jù)以英文為主,且微調(diào)訓(xùn)練集數(shù)據(jù)過?。▋H有233KB),因此預(yù)訓(xùn)練數(shù)據(jù)的影響較大,容易生成英文字段或無意義的重復(fù)文字。
實(shí)驗(yàn)證明,在自然語言生成中,GPT-2模型適用于古代漢語文本生成,且生成質(zhì)量較好。但會(huì)小概率生成無意義文本和英文文本。在后續(xù)研究中,希望增大微調(diào)的訓(xùn)練集并增長訓(xùn)練時(shí)間,并進(jìn)一步分析Transform架構(gòu)在古代漢語環(huán)境的表現(xiàn)。