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