EMNLP 2021 | LayoutReader:基于ReadingBank的閱讀序列抽取模型
編者按:閱讀序列抽取是文檔智能分析中一項非常重要的任務(wù),其旨在通過抽取掃描文檔或數(shù)字商業(yè)文檔中的單詞并重新進行排序,將原本獨立的單詞組合成讀者可以理解的文本。但由于日常工作生活中使用的文檔,往往模板和格式各不相同,所以在出現(xiàn)復雜格式時,按照傳統(tǒng)方法進行排列往往無法取得較好的效果。因此,微軟亞洲研究院自然語言計算組的研究員們構(gòu)建了首個大規(guī)模閱讀序列數(shù)據(jù)集 ReadingBank,并基于 ReadingBank 提出了閱讀序列抽取模型 LayoutReader。本文將對 ReadingBank 和 LayoutReader 的實現(xiàn)原理進行簡要介紹,歡迎感興趣的讀者點擊閱讀原文了解論文中的更多詳情,本文已被 EMNLP 2021 作為長文錄取。
閱讀序列抽取是指通過抽取掃描文檔或數(shù)字商業(yè)文檔中的單詞并重新進行排序,將原本獨立的單詞組合成讀者可以理解的文本。對于大部分電子文檔,如網(wǎng)頁、Word 文檔等,獲取正確的閱讀序列并不困難,只要分析源代碼即可。但是許多掃描文檔或 PDF 文檔并不具備這樣的信息。因此,錯誤的閱讀序列不僅讓讀者無法理解,還會導致文檔智能分析難以進行,因為文檔智能分析是將掃描文檔或數(shù)字商業(yè)文檔中的關(guān)鍵信息抽取,把非結(jié)構(gòu)化的信息更加結(jié)構(gòu)化,進而實現(xiàn)自動化文檔理解的。
然而,現(xiàn)有的文檔智能分析模型仍依賴文檔內(nèi)容的輸入順序,若關(guān)鍵信息部分出現(xiàn)錯亂,很有可能導致模型判斷錯誤或遺漏信息。因此,閱讀序列抽取是文檔智能分析中一項非常重要的任務(wù)。
日常工作、生活中的文檔具備各種不同的模版和格式,為了提取閱讀序列,傳統(tǒng)方法往往直接將單詞按照從左到右、從上到下的順序進行排列或通過人工來匹配模版。但當出現(xiàn)多欄、表格等格式時,傳統(tǒng)方法通常就會失效。若為了應(yīng)對種類繁多的文檔類型,則需要引入大規(guī)模預(yù)訓練語言模型,借助文檔中的文本信息、布局位置等信息進行閱讀序列抽取。
圖1:ReadingBank 數(shù)據(jù)集中文檔圖片的閱讀序列示意圖
由于現(xiàn)有數(shù)據(jù)集存在著不能滿足預(yù)訓練要求且人工標注構(gòu)建新數(shù)據(jù)集的成本過高等問題。所以,微軟亞洲研究院自然語言計算組的研究員們利用 Word 文檔中的 XML 源碼,構(gòu)建了首個大規(guī)模閱讀序列數(shù)據(jù)集 ReadingBank,并基于 ReadingBank 提出了閱讀序列抽取模型 LayoutReader。
首個大規(guī)模閱讀序列數(shù)據(jù)集ReadingBank
當前多模態(tài)信息抽取模型(LayoutLM、LayoutLMv2)通常依賴文檔中的文字內(nèi)容和對應(yīng)的位置。所以ReadingBank包括兩部分:按照正確閱讀順序排列的文字內(nèi)容(閱讀序列),以及這些文字在當前頁面內(nèi)的位置。
文檔收集
Word 文檔有兩種格式,分別為 .doc 和 .docx,這里只使用 .docx 文檔,因為需要借助其解壓縮后的 XML 源碼。研究員們通過文檔長度和語言檢測 API 過濾掉低質(zhì)量的文本和非英文的文檔,最終共爬取了210,000個英文 .docx 文檔,并隨機抽取了其中的500,000頁作為數(shù)據(jù)集。
獲取閱讀序列
閱讀序列是當前文檔中按照正確閱讀順序排列的文字內(nèi)容,如何在不借助人工標注的情況下得到正確的閱讀順序是個難題。為此,研究員們借助了 Word 文檔中的 XML 源碼,構(gòu)建出了正確的閱讀序列。XML 源碼中記錄了 Word 文檔中的所有信息,并按照文檔本身的閱讀順序依次排列。于是,研究員們首先借助了開源工具 python-docx 解析網(wǎng)絡(luò)上爬取的 .docx 文檔,然后逐一段落、逐一單元格遍歷整個文檔,進而獲得閱讀序列。
獲取對應(yīng)位置信息
雖然 Word 文檔包含了正確的閱讀順序信息,但是 XML 源碼并不記錄對應(yīng)的位置,而是當用戶打開文檔時再進行實時渲染。為了固定文字獲得準確的位置信息,研究員們借助了 PDF Metamorphosis .Net 工具,將 Word 文檔轉(zhuǎn)換為 PDF,再通過 PDF 解析器,獲取文字在 PDF 頁面內(nèi)的位置。
有了閱讀序列和閱讀序列中文字的位置,接下來就需要構(gòu)建“閱讀序列”與“對應(yīng)位置”之間的一一對應(yīng)。常用的方法通常是利用文字之間的對應(yīng)關(guān)系,比如在 Word 文檔中的“MSRA”與 PDF 中的“MSRA”相對應(yīng)。然而當文檔中一個詞出現(xiàn)次數(shù)大于一次時,就無法建立這種簡單的對應(yīng)關(guān)系。
為了區(qū)別出現(xiàn)在不同位置的同一個詞,學術(shù)界常采用“染色法”。首先為閱讀序列中的每個單詞添加序號,當某個詞首次出現(xiàn)時標注為0,第二次出現(xiàn)時標注為1,以此類推。同時將這個單詞進行染色,字體顏色由一個雙射函數(shù) C 確定,這樣在轉(zhuǎn)換為 PDF后就可以通過解析器獲得字體顏色,進而還原出原本序號。所以通過文字內(nèi)容結(jié)合出現(xiàn)次序的序號,就可以在閱讀序列和從 PDF 提取出的位置之間建立一個對應(yīng)關(guān)系。
圖2:通過對于 Word 文檔的文字染色構(gòu)建 ReadingBank 數(shù)據(jù)集
由于有了這樣的對應(yīng)關(guān)系,因此就可以將閱讀序列中的單詞添加到對應(yīng)的位置,進而得到完整的數(shù)據(jù)集。研究員們按照8:1:1的比例進行隨機分割,分別得到訓練集、驗證集和測試集。分割后的數(shù)據(jù)集信息如下表1所示。數(shù)據(jù)集各個部分分割均衡,在下游任務(wù)中也不會出現(xiàn)數(shù)據(jù)不平衡的情況。
表1:隨機分割后的數(shù)據(jù)集(Avg. BLEU 是指將從左向右從上到下排列與 ReadingBank 相比較計算得到的 BLEU 值,ARD 是指平均相對距離,用于衡量數(shù)據(jù)集的難度)
閱讀序列抽取模型LayoutReader
研究員們又基于 Seq2Seq 模型提出了 LayoutReader,并在 ReadingBank 上進行了預(yù)訓練。模型輸入為頁面內(nèi)按照從左到右、從上到下排列的文字序列,目標序列為由 ReadingBank 提供的閱讀序列。(點擊閱讀原文,獲取論文詳細信息)
編碼器
為了利用位置布局信息,研究員們用 LayoutLM 作為了編碼器,將輸入序列和目標序列相連接,利用 mask 控制 Attention 過程中各個位置可見的信息,從而實現(xiàn) Seq2Seq 的模型。
****
由于輸入序列和目標序列都來自相同的單詞序列,只是順序不同,所以研究員們修改了****,將原本從詞表中預(yù)測下一個單詞,改為從輸入序列中預(yù)測下一個單詞,即預(yù)測下一個單詞在輸入序列中的序號。
實驗與比較
基準模型
研究員們將 LayoutReader 和啟發(fā)式方法、純文本方法和純布局方法進行了比較:
· 啟發(fā)式方法 (Heuristic Method):即將文本內(nèi)容按照從左到右從上到下的順序排列。
· 純文本方法:將 LayoutReader 中的編碼器 LayoutLM 替換為純文本的編碼器,如 BERT 和 UniLM,這樣模型將無法利用位置布局信息進行預(yù)測。
· 純布局方法:移除 LayoutReader 編碼器 LayoutLM 中的詞向量,這樣模型無法利用文本信息。
評估方法
研究員們利用了兩個評估指標來衡量模型的效果:
· 平均頁面 BLEU 值:BLEU 值是常見的衡量序列生成效果的指標。通過將輸出序列和ReadingBank提供的目標序列相比較,可以得到對應(yīng)的 BLEU 值。
· 平均相對距離(ARD):因為模型輸出序列與目標序列內(nèi)容相同,區(qū)別只在于對應(yīng)單詞的位置不同,所以通過對應(yīng)單詞的距離可以驗證模型的效果。當生成過程中出現(xiàn)單詞缺失的情況時,ARD 同時會引入懲罰。公式如下,其中 A 是輸出序列,B 是目標序列,e_k 是 A 中第 k 個單詞,I(e_k, B) 則是指 e 在 B 中的序號。
閱讀序列抽取
模型的輸入為從左到右、從上到下的單詞序列。將輸出序列與 ReadingBank 進行比較,從結(jié)果中可以看出,結(jié)合文本信息和布局信息的 LayoutReader 取得了最優(yōu)的結(jié)果,相比最常使用的啟發(fā)式方法,平均頁面 BLEU 值提高了0.2847,平均相對距離減少了6.71。在去除文本模態(tài)或布局模態(tài)之后,結(jié)果依舊有所提高。在平均頁面 BLEU 上,分別提升了0.16和0.27。而純文本方法在平均相對距離上則有所下降,主要原因是平均相對距離中對單詞缺失的懲罰項。同時,比較純文本方法和純布局方法也可以看出布局信息起到了更重要的作用,純布局方法相較于純文本方法在平均頁面 BLEU 上提升0.1左右,在平均相對距離上提升了9.0左右。
表2 :LayoutReader 模型在 ReadingBank 數(shù)據(jù)集的實驗結(jié)果(輸入順序是從左到右、從上到下)
輸入順序研究
以上的實驗都是基于從左到右、從上到下的輸入序列。由于人們的閱讀習慣,這樣的訓練為后續(xù)生成起到了很大的提示作用,輸入順序研究旨在研究訓練或者測試時,輸入順序?qū)Y(jié)果的影響。因此,研究員們分別設(shè)計了兩個實驗進行驗證:
· 在訓練時將一部分訓練樣本打亂,不再以從左到右、從上到下的順序輸入,而在測試時,依舊保留從左到右、從上到下的輸入
· 更進一步,在訓練時依舊將一部分訓練樣本打亂,在測試時,輸入的全部是打亂單詞順序的序列。
實驗結(jié)果如下(r 是訓練樣本打亂的比例):
表3 :訓練時打亂部分樣本,測試時保持從左到右、從上到下的順序
表4:訓練時打亂部分樣本,測試時打亂全部樣本
從結(jié)果中可以看到,相對于前三行做比較的模型,LayoutReader 結(jié)合文本信息和布局信息,能夠有效對抗打亂的輸入,幾乎在所有場景下都保持了較好的效果。在實驗二中,可以看到當在訓練樣本沒有打亂(r=0%),即保持從左到右、從上到下的順序輸入,但測試時使用打亂樣本的情況下,結(jié)果有極大的下降。研究員們認為這是由于訓練時過擬合了從左到右、從上到下的順序,進而無法應(yīng)對陌生的打亂順序的輸入。這與之前的結(jié)果相符,說明位置信息對閱讀順序有著更強的指導作用。
在 OCR 中的應(yīng)用
當前OCR已經(jīng)能夠很好地識別對應(yīng)的文字,但卻沒有關(guān)注這些文字的排列順序。因此,研究員們利用 LayoutReader 將 OCR 得到的文本行,按照閱讀順序排列。然后,將文本行對應(yīng)的 bounding box 與各個單詞的 bounding box 求交集,再將各個單詞分配給交集最大的文本行,并且將文本行按照所包含單詞的最小序號排序,進而將得到的順序和 ReadingBank 的順序進行比較。研究員們選擇了一個開源 OCR 算法 Tesseract,和一個商用 OCR 算法,得到如下結(jié)果:
表 5:針對 Tesseract OCR 文本行進行對比實驗
表 6:針對一種商業(yè) OCR 引擎本文行進對比實驗
從以上結(jié)果可以看出,LayoutReader 相比于兩個 OCR 算法,都能得到更好的結(jié)果;相比于商用 OCR 依舊能夠在 BLEU 上提高0.1左右,在 ARD 上降低2左右。
未來工作
未來,微軟亞洲研究院的研究員們計劃進一步從 ReadingBank 中提取閱讀順序,通過引入更多噪聲和諸如旋轉(zhuǎn)的變換,使得數(shù)據(jù)集更加魯棒,能夠運用于更多場景。同時,在大規(guī)模數(shù)據(jù)集 ReadingBank 的基礎(chǔ)上,研究員們也將引入特定領(lǐng)域的少數(shù)人工標注,將閱讀順序抽取有著更細致的運用。
論文鏈接:
https://arxiv.org/abs/2108.11591
模型代碼:
https://aka.ms/layoutreader
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。