楊子聰, 焦文彬, 劉曉東, 汪 洋
1(中國科學院 計算機網絡信息中心, 北京 100190)
2(中國科學院大學, 北京 100049)
隨著自然語言處理技術的快速發展, 越來越多報告的生成實現了自動化, 例如財報的自動生成、體育賽事報道的自動生成和醫學報告的自動生成等. 由于報告具有描述總結數據的天然特征, 基于結構化數據的文本生成便成為實現報告自動生成的核心內容, 報告自動生成系統只有擁有了高性能的結構化數據到文本生成模型, 才能產出高質量的分析報告. 而報告多以數值型數據和對應的描述分析性文本組成, 因此研究基于數值型結構化數據的文本生成模型具有重要意義.
基于結構化數據的文本生成的主要技術框架有兩種: 基于規則和模板化的傳統方法, 和數據驅動的端到端的深度學習方法[1]. 傳統方法雖易于控制和改進, 但費時費力且無法遷移[2]. 而基于深度學習的方法可控性雖表現還不如人意, 但可通過不斷的訓練和優化模型來逐步提升, 且遷移性強. 基于深度學習的方法主要使用Encoder-Decoder 訓練框架, 該框架為2014 年Cho等人在Seq2Seq 循環神經網絡中首次提出, 最早被用來進行機器翻譯模型的訓練, 后廣泛用于文本生成領域內的各項任務[3]. 在結構化數據到文本生成的任務中, Encoder 和Decoder 部分使用的深度學習網絡主要分為循環神經網絡(RNN)及其變種長短時記憶網絡(LSTM)和Transformer 網絡兩大類[4], 從指標和效果上看, 仍舊是前者具有更好的表現, 且該類神經網絡適合處理序列化的數據, 另外其在可控性上也有更多優化空間. 在使用RNN 和LSTM 實現Encoder-Decoder 訓練框架的基礎上, 大多數模型往往會在Encoder 部分使用attention 機制[5], 通過計算隱含層狀態和更新后的解碼器狀態的相似度, 獲得每個隱含層在匯總成中間語義向量時的權重, 使得模型能夠有重點地關注輸入.另外考慮到輸入的結構化數據中出現的詞語通常可用來生成句子, 但由于頻率太低經常被忽略的問題, 因此在Decoder 部分常常使用copy 機制[6].
考慮到目前的結構化數據到文本生成技術主要應用于人物生平介紹、餐館信息描述和商品介紹的生成,而本文處理的結構化數據相較于以上應用場景中處理的結構化數據的一大特點是數值型數據較多, 甚至全部是數值型數據, 這樣的情況常常導致生成的文本無法捕捉重點信息, 訓練上出現困難. 基于此, 本文提出的模型融合了coarse-to-fine aligner 選擇機制[7], 在使用傳統的基于內容的注意力機制計算隱含層權重的基礎上, 另外賦予隱含層一個被選擇的概率, 通過計算各個隱含層被選擇的概率和當前時刻獲得的注意力權重兩者的乘積確定最終的注意力權重, 從而達到對結構化數據[field, content]中的content 進行選擇性描述的目的. 另外由于報告中對數據的分析性文本常常要求邏輯明確、語序正確, 因此本文的模型也融合了linkedbased attention 注意力機制, 通過對結構化數據[field,content]中的field 進行關系建模, 模擬不同的Field 之間在文本中出現的先后關系[8]. 最終本文的模型采用LSTM 實現了Encoder-Decoder 框架, 在Encoder 部分使用基于內容的注意力機制, 在Decoder 部分使用copy機制, 并在此基礎上根據數值型數據的特點和報告中分析性文本的應用要求融合了coarse-to-fine aligner選擇機制和linked-based attention 注意力機制. 通過使用A 股的市場數據和對A 股的每日播報資訊作為模型訓練和測試的數據集, 并與僅使用基于內容的注意力機制的模型和在前者基礎上增加使用linked-based attention 注意力機制的模型進行對比, 顯示了本文提出的模型具有較好的效果.
本節簡要介紹下基于結構化數據的文本生成所使用的基本訓練框架, 以及解決該類任務時在該框架中常使用的兩種機制.
Encoder-Decoder 是一種訓練框架, 分為編碼器和解碼器. 編碼器的功能是將現實問題轉化為數學問題,例如將輸入的文本、圖片或音頻表征成向量. 解碼器的功能是基于編碼器的結果求解數學問題, 并轉化為現實世界的解決方案.
而編碼器和解碼器功能的實現均需要依靠深度學習網絡, 具體選擇則根據應用場景需要而定. 由于LSTM具有處理序列數據的優勢, 且解決了RNN 在面臨長序列時產生的梯度消失和梯度爆炸的問題, 本文選擇LSTM

圖1 Encoder-Decoder 框架圖
在使用Encoder-Decoder 框架時, 常常會在匯總隱含層形成中間語義向量時使用注意力機制, 這樣的做法解決了Encoder 部分必須將整個輸入序列的信息都壓入到一個固定長度的context 中, 從而也解決了輸入序列過長可能的信息缺失和輸入序列過短可能的信息冗余問題, 同時還可以對輸入的內容分配不同的關注度, 最終充分利用信息.

在使用Encoder-Decoder 框架時, 還存在另一個問題,即無法充分利用結構化數據中的詞語. 具體來說, 結構化數據中的很多詞匯十分適合用于最后生成的文本當中, 但由于其出現頻率較低, 常常被忽略. 因此編解碼器模型中常常使用copy 機制解決這一問題, 它使得模型結合generate 和copy 兩種方式, 模型在解碼階段會選擇是從詞匯表中按照概率選擇要生成的詞還是直接從輸入的數據中復制[11]. 其中復制的概率計算方法如下:

為了更針對性地解決生成數值型數據的分析性文本這一任務, 本文提出的模型融合了coarse-to-fine aligner選擇機制和linked-based attention 注意力機制. 這兩種機制均作用于生成中間語義向量的過程中, 其中, coarseto-fine aligner 選擇機制在模型使用基于內容的注意力機制基礎上, 增加了對結構化數據[field, content]中content 部分的預選功能, 優化了生成的文本中對描述內容的選擇. 而linked-based attention 注意力機制則是對結構化數據[field, content]中field 部分進行關系建模, 使得模型可以在生成文本時保持一個合理的描述順序.
在基于結構化數據生成文本時, 無論是使用傳統的基于規則的模板方法還是數據驅動的端到端的深度學習方法, 優化之處均是相同的3 部分: ① 內容規劃,即選擇結構化數據中需要描述的field 和content; ②句子規劃, 即確定選擇的描述內容在生成的文本中的描述順序; ③ 句子實現, 即基于前兩步的規劃生成對應的文本. 在內容規劃部分, 基于結構化數據到文本生成的模型往往僅使用基于內容的注意力機制, Mei 等提出了一種coarse-to-fine 的選擇機制[7], 在計算每部分隱含層注意力權重的基礎上賦予一項選擇該部分的概率,從而實現了對內容選擇的優化.
在處理數值型結構化數據時, 數據中的field 部分和其他類型數據的處理方式沒有不同, 而content 部分大多是數值型的數據, 甚至全部是數值型數據, 在訓練過程中無法使得模型對某幾項數據進行重點關注和描述,僅使用基于內容的注意力機制已經無法滿足此類場景下的應用需要. 因此, 本文提出的模型融合了coarseto-fine 選擇機制(見圖2), 在基于內容的coarse 程度的注意力機制基礎上, 賦予每個隱含層被選擇的概率, 并通過計算選擇每部分的概率和每部分基于內容的注意力機制下的權重的乘積, 最終獲得fine 程度的注意力權重. 基于數值型數據的content 部分的特點, 本文在實現這種機制的過程中做了適應性的改動, 首先將field 和content 兩部分的Embedding也即fi和ci進行concatenation, 得到ri:[fi;ci], 在ri經過Encoder 得到隱含層狀態后, 隱含層將會進入pre-selec. 預選模塊獲得一項被選擇的概率.




圖2 Coarse-to-fine aligner 選擇機制
在第2.1 節中介紹了基于結構化數據到文本生成任務的3 個優化點, linked-based attention 注意力機制即是針對句子層面的規劃提出的注意力機制. Sha 等基于LSTM 實現Encoder-Decoder 框架, 并根據句子規劃的思路, 提出了一種基于鏈接的混合注意力機制, 將其應用在Encoder 部分, 模擬不同領域之間的關系, 明確地對這類信息進行建模[8]. 由于針對數值型數據生成的分析性文本對語序及內容的描述順序有較高的要求,因此本文提出的模型也將這種機制設計進入了模型當中.


刻概率最大的單詞, 并且當生成詞為特殊符號<EOS>時, 表示解碼結束, 文本生成完畢.
從尋找數值型結構化數據以及數據獲取的便捷性出發, 我們通過財經金融網站提供的數據下載接口獲取了2020 年1 月14 日至2021 年5 月26 日的A 股市場數據, 并將其整理成模型訓練所需的標準格式[field:content]作為最終的數值型結構化數據, 并且聯合每日股市點評的摘要及A 股每日播報的資訊作為已有結構化數據對應的分析性文本, 同時使用了中文分詞工具jieba 對獲取的文本進行了分詞處理[12].
我們選擇了BLEU和ROUGE-L作為評估本文提出的生成數值型數據分析性文本模型的評價指標[13,14].其中BLEU是文本生成任務中通用的評價方式, 其基本思路是比較機器生成的文本和參考文本中n-gram的重合度, 且其是一種基于準確率的評價指標, 計算方法如式(21)[15]:

圖3 混合注意力機制示意圖


其中,LCS(C,S)表示機器生成的文本與參考文本的最長公共子序列的長度,len(S)和len(C)分別表示參考文本和機器生成文本的長度.
表1 為實驗使用的結構化數據和本文模型生成的描述性文本示例. 我們在自行構建的數據集上進行了模型效果的對比分析, 通過把模型生成的文本與測試集中的參考文本進行對比, 得到了在BLEU和ROUGE-L評價方法下的評價結果, 見表2.

表1 結構化數據和本文模型生成的對應描述性文本

表2 本文模型和其他模型的結果對比
其中參與對比的第1 個模型為baseline, 此模型為本文在基本訓練框架和機制研究中介紹的基礎模型,即通過LSTM 實現Encoder-Decoder 框架, 并且使用了基于內容的注意力機制和copy 機制的結構化數據到文本生成模型, 第2 個模型為在baseline 基礎上使用了linked-based attention 注意力機制的模型, 第3 個模型為基于OpenAI 開發的GPT2 預訓練模型的multiconditioned Transformer[17], 第4 個模型即為本文提出的融合了coarse-to-fine aligner 選擇機制和linkedbased attention 注意力機制的模型.
從表2 中的結果看, 相較于僅僅使用基于內容的注意力機制的模型, 增加使用linked-based attention 注意力機制的模型在ROUGE-L指標上有較大的提升, 說明生成的文本在語義和內容上有很大的改進, 同時其在BLEU指標上也有一定提升. 而本文提出的模型在使用linked-based attention 注意力機制的基礎上, 還融合了coarse-to-fine 選擇機制, 該模型在BLEU和ROUGE-L指標上均進一步獲得了提升. 而基于GPT2 預訓練模型的multi-conditioned Transformer 在兩個指標上均未得分, 可以見得生成數值型數據的描述性文本時基于Transformer 的GPT2 等預訓練模型直接根據語義信息生成文本的方法無法生成有效的文本, 說明解決此類任務按照內容規劃和句子實現的思路進行仍是最穩妥有效的方案. 最終, 通過與不同類型模型(如基于GPT2)的橫向比較和與同類型模型的縱向比較, 說明本文提出的模型在解決針對數值型結構化數據生成分析性文本這一特定領域的結構化數據到文本生成任務時具有很好的適配性, 能夠比已有的模型更好地解決這類問題.
基于結構化數據的文本生成是自然語言生成領域重要的研究方向, 其是新聞自動報道和報告自動生成等領域的關鍵技術. 從為報告中的數值型數據自動生成分析性文本出發, 本文提出了一種融合coarse-to-fine aligner 選擇機制和linked-based attention 注意力機制的編碼器-解碼器文本生成模型, 通過在自行構建的數據集上進行訓練和測試, 并通過和已有的模型進行性能對比, 說明了該模型在生成數值型數據的分析性文本這一特定領域的結構化數據到文本生成任務上具有更好的表現.
生成數值型數據的分析性文本是實現報告自動生成的核心內容, 但目前解決該類任務的文本生成技術仍有較大提升和改進的空間, 包括生成的文本的長度、內容合理性、數據的正確性及對數據的統計分析水平. 后續的工作將會重點加強文本生成的可控性, 提高生成文本的邏輯性及對各類數據描述的嚴謹性, 使得模型在實際應用中具有更好的魯棒性[18]. 而隨著人工智能的不斷發展, 深度學習網絡也將逐漸增加更多的邏輯推理能力, 基于結構化數據的文本生成技術也將逐漸具有更多的統計和推理能力, 并生成更智能的分析性文本[19-21].