EMNLP 2021 | LayoutReader:基於ReadingBank的閱讀序列抽取模型

微軟技術棧發表於2021-11-13

編者按:閱讀序列抽取是文件智慧分析中一項非常重要的任務,其旨在通過抽取掃描文件或數字商業文件中的單詞並重新進行排序,將原本獨立的單片語合成讀者可以理解的文字。但由於日常工作生活中使用的文件,往往模板和格式各不相同,所以在出現複雜格式時,按照傳統方法進行排列往往無法取得較好的效果。因此,微軟亞洲研究院自然語言計算組的研究員們構建了首個大規模閱讀序列資料集 ReadingBank,並基於 ReadingBank 提出了閱讀序列抽取模型 LayoutReader。本文將對 ReadingBank 和 LayoutReader 的實現原理進行簡要介紹,歡迎感興趣的讀者點選閱讀原文了解論文中的更多詳情,本文已被 EMNLP 2021 作為長文錄取。

閱讀序列抽取是指通過抽取掃描文件或數字商業文件中的單詞並重新進行排序,將原本獨立的單片語合成讀者可以理解的文字。對於大部分電子文件,如網頁、Word 文件等,獲取正確的閱讀序列並不困難,只要分析原始碼即可。但是許多掃描文件或 PDF 文件並不具備這樣的資訊。因此,錯誤的閱讀序列不僅讓讀者無法理解,還會導致文件智慧分析難以進行,因為文件智慧分析是將掃描文件或數字商業文件中的關鍵資訊抽取,把非結構化的資訊更加結構化,進而實現自動化文件理解的。

然而,現有的文件智慧分析模型仍依賴文件內容的輸入順序,若關鍵資訊部分出現錯亂,很有可能導致模型判斷錯誤或遺漏資訊。因此,閱讀序列抽取是文件智慧分析中一項非常重要的任務。

日常工作、生活中的文件具備各種不同的模版和格式,為了提取閱讀序列,傳統方法往往直接將單詞按照從左到右、從上到下的順序進行排列或通過人工來匹配模版。但當出現多欄、表格等格式時,傳統方法通常就會失效。若為了應對種類繁多的文件型別,則需要引入大規模預訓練語言模型,藉助文件中的文字資訊、佈局位置等資訊進行閱讀序列抽取。

封面.jpg
圖1:ReadingBank 資料集中文件圖片的閱讀序列示意圖

由於現有資料集存在著不能滿足預訓練要求且人工標註構建新資料集的成本過高等問題。所以,微軟亞洲研究院自然語言計算組的研究員們利用 Word 文件中的 XML 原始碼,構建了首個大規模閱讀序列資料集 ReadingBank,並基於 ReadingBank 提出了閱讀序列抽取模型 LayoutReader。

首個大規模閱讀序列資料集ReadingBank

當前多模態資訊抽取模型(LayoutLM、LayoutLMv2)通常依賴文件中的文字內容和對應的位置。所以ReadingBank包括兩部分:按照正確閱讀順序排列的文字內容(閱讀序列),以及這些文字在當前頁面內的位置。

文件收集

Word 文件有兩種格式,分別為 .doc 和 .docx,這裡只使用 .docx 文件,因為需要藉助其解壓縮後的 XML 原始碼。研究員們通過文件長度和語言檢測 API 過濾掉低質量的文字和非英文的文件,最終共爬取了210,000個英文 .docx 文件,並隨機抽取了其中的500,000頁作為資料集

獲取閱讀序列

閱讀序列是當前文件中按照正確閱讀順序排列的文字內容,如何在不借助人工標註的情況下得到正確的閱讀順序是個難題。為此,研究員們藉助了 Word 文件中的 XML 原始碼,構建出了正確的閱讀序列。XML 原始碼中記錄了 Word 文件中的所有資訊,並按照文件本身的閱讀順序依次排列。於是,研究員們首先借助了開源工具 python-docx 解析網路上爬取的 .docx 文件,然後逐一段落、逐一單元格遍歷整個文件,進而獲得閱讀序列。

獲取對應位置資訊

雖然 Word 文件包含了正確的閱讀順序資訊,但是 XML 原始碼並不記錄對應的位置,而是當使用者開啟文件時再進行實時渲染。為了固定文字獲得準確的位置資訊,研究員們藉助了 PDF Metamorphosis .Net 工具,將 Word 文件轉換為 PDF,再通過 PDF 解析器,獲取文字在 PDF 頁面內的位置。

有了閱讀序列和閱讀序列中文字的位置,接下來就需要構建“閱讀序列”與“對應位置”之間的一一對應。常用的方法通常是利用文字之間的對應關係,比如在 Word 文件中的“MSRA”與 PDF 中的“MSRA”相對應。然而當文件中一個詞出現次數大於一次時,就無法建立這種簡單的對應關係。

為了區別出現在不同位置的同一個詞,學術界常採用“染色法”。首先為閱讀序列中的每個單詞新增序號,當某個詞首次出現時標註為0,第二次出現時標註為1,以此類推。同時將這個單詞進行染色,字型顏色由一個雙射函式 C 確定,這樣在轉換為 PDF後就可以通過解析器獲得字型顏色,進而還原出原本序號。所以通過文字內容結合出現次序的序號,就可以在閱讀序列和從 PDF 提取出的位置之間建立一個對應關係。
a3ca8c83c84ac559312e3c8ae4429ea7.png
8a0a0998339aa4a9782c34ea1e26b176.png
圖2:通過對於 Word 文件的文字染色構建 ReadingBank 資料集

由於有了這樣的對應關係,因此就可以將閱讀序列中的單詞新增到對應的位置,進而得到完整的資料集。研究員們按照8:1:1的比例進行隨機分割,分別得到訓練集、驗證集和測試集。分割後的資料集資訊如下表1所示。資料集各個部分分割均衡,在下游任務中也不會出現資料不平衡的情況。

9657e3fe05274c66a15077778efe052a.png
表1:隨機分割後的資料集(Avg. BLEU 是指將從左向右從上到下排列與ReadingBank 相比較計算得到的 BLEU 值,ARD 是指平均相對距離,用於衡量資料集的難度)

閱讀序列抽取模型LayoutReader

研究員們又基於 Seq2Seq 模型提出了 LayoutReader,並在 ReadingBank 上進行了預訓練。模型輸入為頁面內按照從左到右、從上到下排列的文字序列,目標序列為由 ReadingBank 提供的閱讀序列。(點選閱讀原文,獲取論文詳細資訊)。

編碼器

為了利用位置佈局資訊,研究員們用 LayoutLM 作為了編碼器,將輸入序列和目標序列相連線,利用 mask 控制 Attention 過程中各個位置可見的資訊,從而實現 Seq2Seq 的模型。

f56eb7d8a94e33b12e42c87e32327a6a.png

解碼器

由於輸入序列和目標序列都來自相同的單詞序列,只是順序不同,所以研究員們修改瞭解碼器,將原本從詞表中預測下一個單詞,改為從輸入序列中預測下一個單詞,即預測下一個單詞在輸入序列中的序號。

實驗與比較

基準模型

研究員們將 LayoutReader 和啟發式方法、純文字方法和純佈局方法進行了比較:

  • 啟發式方法 (Heuristic Method):即將文字內容按照從左到右從上到下的順序排列。
  • 純文字方法:將 LayoutReader 中的編碼器 LayoutLM 替換為純文字的編碼器,如 BERT 和 UniLM,這樣模型將無法利用位置佈局資訊進行預測。
  • 純佈局方法:移除 LayoutReader 編碼器 LayoutLM 中的詞向量,這樣模型無法利用文字資訊。

評估方法

研究員們利用了兩個評估指標來衡量模型的效果:

  • 平均頁面 BLEU 值:BLEU 值是常見的衡量序列生成效果的指標。通過將輸出序列和ReadingBank提供的目標序列相比較,可以得到對應的 BLEU 值。
  • 平均相對距離(ARD):因為模型輸出序列與目標序列內容相同,區別只在於對應單詞的位置不同,所以通過對應單詞的距離可以驗證模型的效果。當生成過程中出現單詞缺失的情況時,ARD 同時會引入懲罰。公式如下,其中 A 是輸出序列,B 是目標序列,e_k 是 A 中第 k 個單詞,I(e_k, B) 則是指 e 在 B 中的序號。

72b4cd75dfb4fa61b8f7550e95910165.png

閱讀序列抽取

模型的輸入為從左到右、從上到下的單詞序列。將輸出序列與 ReadingBank 進行比較,從結果中可以看出,結合文字資訊和佈局資訊的 LayoutReader 取得了最優的結果,相比最常使用的啟發式方法,平均頁面 BLEU 值提高了0.2847,平均相對距離減少了6.71。在去除文字模態或佈局模態之後,結果依舊有所提高。在平均頁面 BLEU 上,分別提升了0.16和0.27。而純文字方法在平均相對距離上則有所下降,主要原因是平均相對距離中對單詞缺失的懲罰項。同時,比較純文字方法和純佈局方法也可以看出佈局資訊起到了更重要的作用,純佈局方法相較於純文字方法在平均頁面 BLEU 上提升0.1左右,在平均相對距離上提升了9.0左右。

423fcf4af5d307137db447601abee0d6.png
表2 :LayoutReader 模型在 ReadingBank 資料集的實驗結果(輸入順序是從左到右、從上到下)

輸入順序研究

以上的實驗都是基於從左到右、從上到下的輸入序列。由於人們的閱讀習慣,這樣的訓練為後續生成起到了很大的提示作用,輸入順序研究旨在研究訓練或者測試時,輸入順序對結果的影響。因此,研究員們分別設計了兩個實驗進行驗證:

  • 在訓練時將一部分訓練樣本打亂,不再以從左到右、從上到下的順序輸入,而在測試時,依舊保留從左到右、從上到下的輸入
  • 更進一步,在訓練時依舊將一部分訓練樣本打亂,在測試時,輸入的全部是打亂單詞順序的序列。

實驗結果如下(r 是訓練樣本打亂的比例):

a23c1584b50241889e9288187645a872.png
表3 :訓練時打亂部分樣本,測試時保持從左到右、從上到下的順序

110845c8d25503a3031b950e2188c024.png
表4:訓練時打亂部分樣本,測試時打亂全部樣本

從結果中可以看到,相對於前三行做比較的模型,LayoutReader 結合文字資訊和佈局資訊,能夠有效對抗打亂的輸入,幾乎在所有場景下都保持了較好的效果。在實驗二中,可以看到當在訓練樣本沒有打亂(r=0%),即保持從左到右、從上到下的順序輸入,但測試時使用打亂樣本的情況下,結果有極大的下降。研究員們認為這是由於訓練時過擬合了從左到右、從上到下的順序,進而無法應對陌生的打亂順序的輸入。這與之前的結果相符,說明位置資訊對閱讀順序有著更強的指導作用。

在OCR中的應用

當前OCR已經能夠很好地識別對應的文字,但卻沒有關注這些文字的排列順序。因此,研究員們利用 LayoutReader 將 OCR 得到的文字行,按照閱讀順序排列。然後,將文字行對應的 bounding box 與各個單詞的 bounding box 求交集,再將各個單詞分配給交集最大的文字行,並且將文字行按照所包含單詞的最小序號排序,進而將得到的順序和 ReadingBank 的順序進行比較。研究員們選擇了一個開源 OCR 演算法 Tesseract,和一個商用 OCR 演算法,得到如下結果:

ba111981e301edbd30406f9a3134a50e.png
表 5:針對 Tesseract OCR 文字行進行對比實驗

8ea4a7645a450a3245fee3133f0655cb.png
表 6:針對一種商業 OCR 引擎本文行進對比實驗

從以上結果可以看出,LayoutReader 相比於兩個 OCR 演算法,都能得到更好的結果;相比於商用 OCR 依舊能夠在 BLEU 上提高0.1左右,在 ARD 上降低2左右。

未來工作

未來,微軟亞洲研究院的研究員們計劃進一步從 ReadingBank 中提取閱讀順序,通過引入更多噪聲和諸如旋轉的變換,使得資料集更加魯棒,能夠運用於更多場景。同時,在大規模資料集 ReadingBank 的基礎上,研究員們也將引入特定領域的少數人工標註,將閱讀順序抽取有著更細緻的運用。

(微軟亞洲研究院自然語言計算組)


歡迎關注微軟中國MSDN訂閱號,獲取更多最新發布!

qrcode_for_gh_14ae6a09f046_258.jpg

相關文章