一、背景
回顧人類文明史,資訊化從原始的結繩記事到文字記載,發展到現代的數字化與網絡化,資料已經成為繼物質、能源之後新的戰略資源,主要有無結構的文檔、手冊、網頁、圖檔音視訊等形式。麥肯錫曾釋出過2025年經濟的12大颠覆技術,知識自動化位列第二(預計影響5.2-6.7萬億美元),其中就包括基于文檔等内容的法律合同查找、專利發現等關鍵應用。而要有效利用這些資料,例如建構問答AI,通常需要大量的人工挖掘、整理和專家校對工作,以形成專業知識庫甚至結構化資料,這一過程投入巨大難以規模化,隻能覆寫高頻場景。是以如何建構有效的無結構文本處理方法,讓機器能夠自動了解并提供内容問答,會是開啟資訊智能化的一條重要路徑。
小蜜作為連接配接消費者與商家的重要入口與智能問答的代表,我們(達摩院的小蜜與自然語言智能團隊)早在2017年就開始關注機器閱讀了解技術(Machine Reading Comprehension,縮寫MRC),并落地了工業界首個機器閱讀應用。在之後的兩年多時間中,機器閱讀了解引領了自然語言了解的研究風口,而我們在持續保持學術領先的同時,将其陸續拓展到工業中各種領域和場景,積累了體系化的技術方案與業務實踐,使得機器閱讀了解技術也從最初的單一模型成長為圍繞着業務全生命周期的解決方案。下面我們将從機器閱讀了解的應用實踐,面臨的問題和挑戰,相關的技術解法及解決方案設計這幾個方面來具體介紹。
二、機器閱讀在小蜜中的應用
我們在2017年提出的SLQA模型[1]在SQuAD資料集[2]上取得了Rank 1的成績,并在EM名額上首次超越人類表現,我們将SLQA模型應用在中文業務資料閱讀上,使阿裡小蜜、店小蜜、企業小蜜在活動規則、稅務法規中具備了對非結構化文章的閱讀和問答能力。
在這之後的工作中,我們在說明書、零售、旅遊、黨建、政務等多個業務領域落地了機器閱讀技術。重點解決了機器閱讀在大規模業務應用中碰到的一些難題,包括百萬級規模的多文檔、長文檔、多語言、多模态、多輪次等問題,并逐漸完成了領域資料、算法模型、解決方案的沉澱,形成了小蜜的機器閱讀算法中台。下面我們将以新零售(消費者&商家)、經濟體及阿裡雲這幾個業務次元具體介紹相關場景。
2.1 阿裡小蜜&店小蜜活動問答
阿裡小蜜是機器閱讀的首個落地業務,阿裡小蜜作為電商領域的智能服務機器人,需要頻繁支援各類電商活動的規則解讀,尤其是在雙十一期間會有大量的活動上線,通過機器閱讀了解的運用,可以顯著減少小二拆解維護知識的工作,隻需要針對規則做适當的簡化潤色,就能提供自然的線上規則解讀服務。

之後我們進一步将場景拓展到店小蜜的業務中。淘寶商家經常會更新各種促銷活動,并且随着活動玩法的不斷增多,活動的更新頻率也越來越高。店鋪活動規則通常是以文章的方式存在,描述了活動參與方式、優惠政策、參與商品等資訊,其非結構化、高更新頻率、内容覆寫面廣的特點,正好适合用機器閱讀來解決。是以我們建構了店小蜜活動專區的機器閱讀方案,在2018年上線至今,機器閱讀已經成為活動專區主要的答案回複技術,在2019雙十一,機器閱讀活動規則解讀支援了付費版商家上萬種活動問答。
2.2 店小蜜詳情頁圖檔問答
為了服務好這些消費者,我們在店小蜜中也推出了基于圖檔的智能問答。它能利用圖檔解析及機器閱讀來了解圖檔内容,結合使用者的問題,識别并自動截取可以回答使用者的圖檔作為答案,并高亮圖檔中的精确答案位置,豐富了使用者圖文并貌的服務體驗,免去了商家配置問題和答案的成本。目前,智能圖檔問答已經覆寫了服飾美妝、家電數位、零食果蔬、母嬰洗護等多個行業,相比傳統的文字回複,能為商家帶去更多的成交額。
2.3 天貓旗艦店2.0家電說明書問答
市場上各類電子數位産品功能越來越豐富,使得電子産品的使用難度也越來越複雜。使用者在購買了各類數位産品後,往往需要花費大量的時間閱讀産品說明書,然後才能夠安全可靠的使用。在天貓家電行業的旗艦店鋪内,我們通過店小蜜為大小家電、數位産品等大流量旗艦店鋪提供了PDF說明書問答的能力,包括海爾官方旗艦店、聯想官方旗艦店、格力官方旗艦店、蘇泊爾官方旗艦店、華為官方旗艦店等20多家官方旗艦店鋪。通過多模态的轉換,可以根據使用者的query準确定位到說明書中的答案描述,幫助使用者更快、更準确地解決各類售後問題。
2.4 盒馬售前小蜜商品詳情頁圖檔問答
除了小蜜自身的業務,我們還将機器閱讀了解輸出賦能到經濟體業務中。盒馬App上的商品種類繁多,并且像海鮮、活水産等單價較高,顧客在浏覽時通常希望能夠盡可能多的了解商品細節後再決定是否下單,但是在此前盒馬的商品頁面沒有任何售前咨詢入口,當顧客有商品相關問題時,隻能被動等待人工端咨詢(投訴)回報,這對顧客滿意度和成交轉化率都有挺大的影響。是以我們在盒馬APP上線了售前小蜜,在維護FAQ知識的人力不足時,售前小蜜能夠根據使用者的提問,直接從商品詳情頁圖檔、商品百科知識文章中尋找答案,進而提升滿意度和解決率,利用機器閱讀對長尾問題的處理能力也能進一步提升覆寫。
2.5 飛豬導購助手景點問答
當我們準備去一個陌生的地方旅遊時,一般都會提前了解目的地、提前規劃行程,這時候需要查閱大量景點資料、閱讀網上的遊記和攻略、也有很多問題需要咨詢。飛豬上的旅遊景點數量非常多,但是因為資料不全、缺少售前咨詢入口,顧客的查找效率并不高。窮遊網積累了大量的旅遊攻略文章,但是顧客需要閱讀大量文章之後才能找到有用資訊。是以我們在飛豬導購助手項目中引入機器閱讀能力,讓模型從已有的非結構化景點介紹内容中直接尋找答案,未來還計劃打通窮遊網的旅遊攻略,從上萬篇使用者旅遊攻略文章中去幫助使用者自動尋找答案。借助我們在機器閱讀領域的資料和模型積累,在無需人工維護知識庫的情況下,在飛豬項目上實作了零訓練資料的模型冷啟動上線。
**2.6 Lazada 多語言機器閱讀
Lazada是阿裡經濟體在東南亞地區電商領域的重要部分,随着全球化的深入,淘寶天貓的很多電商經驗運用在了Lazada中,其中越來越豐富的電商活動便是一個很好的例子。與國内電商活動相比,Lazada的活動不僅内容多,而且語言繁多,包括英語、印尼語、越南語、泰語等等。結合電商活動問答的領域特點和東南亞地區的多國家多語言特點,我們研發了多語言機器閱讀模型,它結合了機器閱讀無需人工配置FAQ的優點,同時能夠有效應對Lazada中多種語言及語言混合的情況,支援了Lazada包含雙十一在内的諸多大促活動。
2.7 AliOS汽車說明書問答
汽車作為日常出行不可或缺的工具,幾乎是我們平時都能接觸到的最複雜的工業産物。購買新車後的第一件事便是熟悉車輛的功能布局和常見操作,而在日常使用中也常需要确認車輛狀态和維修保養事項,這些都離不開車輛說明書的支援。但動辄三四百頁的說明手冊不便翻閱,内容專業并且概念衆多,對C端使用者來說往往無從下手或者需要耗費大量時間,對于B端車廠及4S店也會陷入重複大量的售後操作解答中,服務成本高。是以我們與集團AliOS團隊合作,共同打造了智能汽車專家中的說明書問答能力,配合車端大屏的語音+圖像多模态互動,實作問題精準回複與需求的直接滿足,目前覆寫了車輛功能、故障解決、保養維護和使用技巧等多方面内容。
2.8 浙江政務百萬級法規文章閱讀
除了集團和經濟體業務生态,我們也依托雲小蜜持續投入賦能外部政企。浙江政務項目是浙江省政府數字化轉型的首批重點項目,主要目的是便民惠民,幫助市民辦理查詢生活大小事情和咨詢解讀各項政策法規等。浙江政務服務網有兩百萬篇辦事、法規文章,而且在不同的轄市,辦事事項也有差異,我們将機器閱讀用在辦事事項問答和政策法規解讀問答,能夠在沒有預先FAQ配置的情況下,從網站上的百萬篇級文章中閱讀查找答案,然後實時快速的将最新辦事規章流程詳細地回報給市民,大大提升了辦事效率和市民滿意度。
2.9 黨群服務中心超長文章閱讀
杭州黨群服務中心使用5号小蜜機器人(基于IoT硬體的實體機器人)來解答來訪賓客有關黨史、黨章、政策方面的問題,在這種開放場景下的問答,要求模型對長尾問題有很好的覆寫和解決能力,而且該場景對答案的準确率要求也非常高。而黨建文章通常篇幅長(最長3萬字以上)、涉及内容事項多,如果依靠人工維護知識庫的方式,不僅人力成本非常高、難以保證知識覆寫率,而且長尾問題過多也進一步增加了知識庫的維護難度。是以我們在這個項目中使用機器閱讀來對黨史、黨章、政策文章進行閱讀與問答,隻使用少量标注資料就讓模型達到了上線名額。随着10月25日杭州黨群服務中心正式啟用,該項目也已經上線。
三、業務場景中的問題與挑戰
學術上的機器閱讀主要聚焦在從有限場景、有限資料、有限文章中尋找答案(如SQuAD[2]、CoQA[3]等),相比較上述介紹的業務場景,還面臨着一系列的挑戰:
資料标注困難:學術資料集(SQuAD、CoQA等)是在限定資料上的模型實驗,而在落地過程中不同業務需要不同的訓練資料,機器閱讀的訓練資料要求标注人員從一篇長文檔中标出能回答使用者query的答案,和正常的分類标注不同,機器閱讀标注具有很強的主觀性,由不同标注人員标注資料,在模型表現上可能産生很大的差異;
大規模多文檔:SQuAD、CoQA兩個資料集都限定模型在給定的一篇文章中找答案,但現實場景下很難滿足一篇文章的假設,以浙江政務場景為例,機器閱讀需要從近百萬篇文章中找到正确答案作為回複,如何在這麼多文章中讓機器閱讀既能保證召回率,還要有足夠的準确率,這是我們在業務中經常會碰到的一個問題;
資料異構:在業務過程中我們經常會碰到這樣的場景,業務方已有的文章積累可能包含表格、超連結,文字也具有主副标題、正文、批注等不同重要度、不同字型格式。如何在機器閱讀模型中同時處理不同資料源、不同格式的内容,也是在業務落地過程中需要解決的問題;
多模态内容源:目前在智能客服場景下,單一的文本模态問答形式已經不能滿足使用者資訊索取的訴求,圖文并茂的互動形式将是未來客服機器人的基本能力。在店小蜜、盒馬等場景對每個商品都有詳細的圖檔描述,在家電、汽車等場景也有pdf文檔對商品使用方法進行較長的描述,是以如果能将這部分資訊利用起來,讓模型直接從圖檔、pdf文檔中找答案,将極大地減少營運難度、提升機器人的服務能力;
多輪次對話:目前在智能客服場景上,一個很大的挑戰就是多輪對話問題,對話模型通常建構在一問一答的假設條件之下,但在真實的客服場景下,很多時候是需要算法模型具有像人一樣能夠有記憶、能夠處理多輪次對話。随着CoQA、QuAC等多輪機器閱讀資料集的釋出,我們也開始在業務中逐漸加入多輪對話的能力;
在實際業務中還會有其他挑戰,如國際化業務AE、Lazada等的跨語言機器閱讀;新業務剛開始時在少量甚至無資料情況下的模型冷啟動;機器閱讀答案的拒識與可控性;FAQ與MRC的配合等等。
基于以上業務中的問題,我們接下來将從技術及産品化角度分析在MRC平台建設過程中,如何面對并解決如下這些技術挑戰:
如何降低應用門檻/建構成本
如何面向海量文本閱讀
如何解決對話場景的語義丢失
準确率與效率的權衡
如何快速打通多語言
如何建構資料閉環,支援快速疊代
...
四、MRC平台技術介紹
下圖是我們在落地機器閱讀模型,應對業務場景中的問題和挑戰過程中,逐漸積累起來的現階段機器閱讀平台能力及場景大圖,圖中的管道和場景在前文已經進行了簡要介紹,下面分别從圖中的多輪次、多模态、多語言、多文檔、多任務&多領域,以及語言模型和領域資料沉澱幾個方面對MRC平台技術進行介紹。
4.1 結合上下文語境的多輪次機器閱讀
早期的MRC模型隻有從單輪query和doc中定位答案的能力,但随着CoQA、QuAC等多輪機器閱讀開源資料集的釋出,我們也考慮引入模型的多輪閱讀能力。在MRC模型中增加多輪閱讀能力,我們目前實作了四種方案:基于實體繼承的方案,基于flow_ops的端到端模型方案,基于query-rewrite的多輪改寫方案,基于預訓練語言模型的方案。基于實體繼承的方案使模型有能力應對上下文的主體缺失場景,目前已經在企業小蜜上落地;基于flow_ops的端到端模型方案使模型能夠在上下文語境中進行閱讀,目前應用在店小蜜活動專區使得機器閱讀出答案率絕對提升了12%;基于query-rewrite的多輪改寫方案結合上下文語境資訊對query資訊進行補全,在店小蜜對話日志上的離線評估中也有優異的表現,目前已經将模型能力輸出給店小蜜前端算法團隊;基于預訓練語言模型的方案利用語言模型強大的語義了解和表征能力,來同時閱讀文章、問題、上下文語境,目前該方案在CoQA資料集上已經有一些成果,并在持續探索中。
4.1.1 基于實體繼承的方案:
針對一些場景下的query中存在實體缺失,可以直接繼承最近一輪對話的實體;
實體繼承我們一般用于解決多輪次的文章召回,可以實作一定程度的多輪閱讀能力;
4.1.2 基于flow_ops的端到端模型方案:
我們參考了CoQA上非Bert的SOTA模型FlowQA[10],按下圖方式将flow_ops結合到單輪SLQA模型,原本單輪SLQA因為資訊缺失傳回無答案,在加入flow_ops後,模型可以自動從上文語境中尋找缺失資訊,通過這種方法,我們将店小蜜活動專區機器閱讀的出答案率絕對提升了12%;
4.1.3 基于query-rewrite的方案:
使用SLQA+flow_ops這種端到端的多輪閱讀方案雖然為模型帶來了多輪閱讀能力,但在答案可控性,模型通用性方面有所欠缺;
是以我們試驗了用生成模型來處理多輪問題,模型将目前query以及上文多輪的query-answer (試驗時因為answer過于雜亂,隻取了上文的多輪query)共同作為輸入,通過encoder-decoder模型生成一個新的包含多輪資訊的query。我們從店小蜜對話日志中構造了一個多輪改寫資料集,多輪改寫效果如下表所示;
4.1.4 基于預訓練語言模型的方案:
a.基于大資料量預訓練出來的語言模型相比于SLQA有着更強的語義了解和表征能力,對标注的樣本依賴也要小很多,而且預訓練語言模型用于下遊任務的泛化能力也更強。
b.是以我們實驗了基于語言模型的多輪閱讀了解,在語言模型上選用RoBERTa[11]作為我們的基礎模型。我們把前K輪query-answer和目前輪query以及文章内容進行拼接作為模型的輸入,在訓練階段,除了正常MRC的span extraction任務之外,我們還引入資料中的rationale tagging輔助任務學習。
- 目前在多輪閱讀了解任務CoQA資料集上進行實驗。與SQuAD相比,CoQA具有多輪問答的“對話”屬性,而且機器的回答形式也更加自由。我們在該資料集驗證集上的實驗結果如下:
4.2 圖文結合的多模态機器閱讀探索
近年來,有關多模态方向的研究如火如荼。對于多模态而言,目前主流的研究方向有模态表示,模态轉換,模态對齊,模态融合,協同學習等。我們也在積極的探索MRC與多模态技術的結合的可能性,目前主要探索的方向為模态轉換與模态融合。
多模态領域[12]
4.2.1 模态轉換
對于模态轉換,我們主要采用OCR,Image Tagging,Image Caption等模态轉換方式,将不同模态的資訊歸一到文本模态上,統一以MRC task的方式來設計訓練任務,在保持MRC整體架構的基礎上豐富訓練資料的次元。有關這部分内容我們後續會在店鋪詳情頁問答專項上進行詳細的闡述,有興趣的同學可以關注下我們後續的文章。
4.2.2 模态融合
從19年開始,有關多模态語言模型的論文層出不窮,其主流的思想是将BERT與Computer Vision的相關任務進行融合,以提升下遊任務的各項名額。我們線下也在多模态的語言模型上開展了一些探索 ,通過引入Bounding Box等視覺資訊來提升MRC語言模型的表征能力。目前的多模态語言模型主要還是處在初期的探索性階段,後續我們也會持續的關注這個方向的發展。
4.3 多語言、跨語言機器閱讀
傳統的多語言解決方案通常會針對不同語言的巨大差異,對每種語言單獨訓練模型。在全球化的快速程序中,一種語言一個模型的解決方案越來越難以應對複雜快速的業務變化。機器閱讀模型也面臨同樣的問題,是以我們希望能盡量利用一個模型去支援多種語言,一個客服機器人能夠同時應對中文、英文、越南語和印尼語等多種語言;同時語言之間能夠互相促進,讓高資源的語言帶動低資源語言;還能在不同語言中挖掘出共通的語義資訊。
在BERT之前,我們基于多語言詞向量和Share-Encoder方法去解決多語言機器閱讀問題。關鍵步驟如下,首先,我們借鑒Word2vec等詞向量的方法,把不同語言的詞彙映射到一個通用語義空間,利用平行語料、多語詞典和無監督語料等内容訓練多語言詞向量Cross-Lingual-Word-Embeddings,把不同語言的相近詞語在語義空間中拉近,如下圖左側所示。接着,利用平行語料學習通用句子編碼器Share-Encoder,能夠同時對多種語言的句子表達出語義資訊。最後,把Share-Encoder對文章和問題學習出的語義資訊輸入到MRC Layer中,算出答案Span。我們利用該方法有效解決了Lazada場景下印尼語和英語活動規則問答。
但是,基于Share-Encoder的多語言MRC解決方法依賴于平行語料,難以快速應對新的語言,有一定的局限性。随着BERT語言模型的出現,我們第一時間在多語言MRC場景下引入了Multi-BERT進行了最新的嘗試。結合BERT、多語言MRC和Lazada電商活動問答的特點,我們采用了兩步走的遷移學習方法:1) 領域知識遷移 2) 多語言混合訓練政策。具體地,領域知識遷移是通過把其他領域的閱讀了解能力遷移到電商領域和同領域内的知識遷移,解決了學術資料集與業務資料、業務資料與業務資料之間存在gap的問題。語言混合訓練是把不同語言的資料進行混合同時訓練,使得模型更能學習到跨語言間的通用語言能力,同時也能利用高資源的語言去增強低資源語言的處理能力,主要流程如下:
基于以上方案訓練的多語言機器閱讀模型,不僅能處理相同語言的文章和問題,還能夠處理不同語言的文章和問題,例如活動文章是中文,問題是英文,又或者文章是印尼語,問題是中文的場景。目前多語言機器閱讀已經在Lazada電商活動規則解析場景下落地,一個模型覆寫支援了印度、馬來西亞、菲律賓、泰國、越南等國家5種以上語言的MRC問答。
4.4 面向大規模多文檔的機器閱讀
提到多文檔閱讀就不得不提微軟的MS MARCO[4]和百度的DuReader[5]。MS MARCO是微軟在2016年公開的一個英文多文檔閱讀資料集,包括100萬以上的Bing搜尋記錄和880萬以上的文檔,每個問題需要從大量文檔中定位并找到正确答案。DuReader是百度2018年公開的中文多文檔閱讀資料集,包括30萬以上的baidu搜尋記錄和140萬以上的文檔,每個問題需要從給定的5篇文檔中搜尋正确答案。
我們的多文檔機器閱讀模型先後在中文DuReader 2.0資料集,英文MS MARCO的Q&A Task和Passage Retrieval Task(Both Full Ranking Style and Re-ranking Style)兩個任務上,均達到當時的SOTA效果,其中在MS MARCO Q&A任務的Rouge-L和BLEU-1名額均達到人類水準。
我們将多文檔閱讀拆分成文章粗召回、文章重排序、答案抽取這3個階段。在文章粗召回過程中,我們采用ElasticSearch (MARCO和DuReader方案送出時,改用開源的Anserini)中的BM25進行初召回。為了解決問題到文章的詞比對不一緻的問題,我們參考并改進了論文[6]中的query生成方案,通過訓練基于pointer-generator的摘要生成模型,引入copy機制和attention over attention機制來進一步提升query詞生成準确度,并利用生成的query對原文檔進行document expansion,以有效提升召回。
在文章重排序階段,我們使用自研的預訓練語言模型StructBERT[7],考慮句子順序結構資訊,将原始BERT[8]的NSP任務改為了前後句預測,并從頭訓練該預訓練語言模型,同時在預訓練的過程中進一步引入拒識弱監督信号,最後再利用預訓練好的StructBERT模型在排序任務的label資料上進行Ranking精排,産出最終文檔排序結果。
(1) 基于passage的query生成;
(2) 基于StructBERT的rerank
在答案抽取階段,使用我們18年發表的一篇多文檔機器閱讀論文[9]中的方法進行答案抽取,形成目前的級聯式多文檔機器閱讀方案。
4.5 利用多領域、多任務提升模型能力
深度神經網絡除了強大的模型容量,高維的表示學習也是其特色,在新領域應用機器閱讀了解的過程中,我們參照多領域遷移的思路,基于MRC多層次的網絡結構提出了以下的遷移學習架構,支援不同層次不同粒度的模型參數共享,包括Fully Share、Partial Share、Inter/Intra Domain Share 3種形式,引入訓練階段領域間成比例交替輸入,減輕樣本不均衡帶來的影響;增加領域通用特征層及獨立性限制對抗任務使模型收斂更加穩定,同時針對領域間詞表差異過大問題引入動态OOV擴充。在實際應用中,基于領域之間詞彙級差異(語義差異性)和文檔差異(形态差異性)有機組合不同遷移特性,在小蜜活動優惠到中移動套餐優惠遷移、店小蜜跨行業問答遷移等業務上都能減少50%标注資料。
除了借鑒已有領域的大量學習資料,我們還考慮引入新領域中其他任務,幫助MRC在小資料的情況下快速提升效果,如下圖所示,在接入店小蜜活動專區過程中,初始階段僅有幾十篇文章數千個問題,我們首先基于店小蜜的海量曆史問答語料,預訓練了詞向量模型作為初始編碼層的輸入,同時針對機器閱讀模型的不同層次,結合線上的推薦點選資料清洗建構了千萬級Q-Q比對資料、基于商家維護的知識資料建構了百萬級Q-A的語義比對資料,并将這兩種資料分别應用在了MRC編碼層和互動層多任務預訓練,最終隻在整體模型的進一步finetune中才使用了标注的機器閱讀資料。借助不同任務的共同學習使模型在業務資料上有了10+的F1提升。在以BERT為基礎的語言模型出現後,我們将目光從基于SLQA的轉向了領域語言模型的建構,具體探索請看後續小節。
4.6 基于語言模型的技術實踐
2018年Google的研究者J Devlin等提出通過在大規模無标簽語料上進行Transformer語言模型預訓練,然後在下遊任務的小規模有标簽資料上finetune的方法,在自然語言推理資料集GLUE,SQuAD和CoQA等資料集上均大幅度超過以往SOTA的模型,從此開啟了自然語言處理的預訓練時代。
BERT的結構[8]
BERT網絡概覽
除去通用的MLM和NSP任務,自然語言智能團隊還在BERT的MLM的基礎上新加入兩種預訓練任務:詞序還原和上下句關系預測。提出了如下圖所示的StructBERT預訓練語言模型,這兩個目标顯著地提高了語言模型預訓練效果。目前StructBERT已經在我們的業務中廣泛使用。
StructBERT的結構預測任務[7]
4.6.1 業務資料上進一步預訓練語言模型
StructBERT是在大量百科資料上的預訓練語言模型,為了更好的應對業務場景,我們在StructBERT的基礎上,進一步建構了業務相關的預訓練語料,形成了如下圖所示基于Pre-trained LM的MRC通用技術方案。
基于Pre-trained LM的MRC通用技術方案
4.6.1.1 資料建構
QA知識對:業務中通常人工維護了大量的QA知識對,并且這些資料的品質也較高,我們嘗試通過QA知識來構造正負樣本對,并通過語言模型來學習區分QA是否比對,這樣語言模型在業務場景的能力增強可以提升下遊比對任務效果;
人工對話資料:人工對話資料中包含了大量使用者的問題、人工客服的回答。這些多輪問答産生的上下文資訊,對比單輪問答資訊要更加豐富飽滿。是以如何将這些豐富的資訊融合進語言模型,也是一個非常重要的方向。
4.6.1.2 任務構造
僅MLM:RoBERTa中的試驗表明在BERT中去掉NSP的效果可能會更好一些,是以首先嘗試了僅用MLM進行預訓練,但該方式在業務資料上并沒有帶來顯著提升;
SpanBERT:參考spanBERT[13]論文,通過boundary的詞來預測中間的n-gram,試驗下來在業務資料上也沒有效果提升;
QA比對任務預訓練:在StructBERT中用了詞序還原和上下句關系預測的預訓練任務,對模型效果有所提升,我們也試驗了在業務資料上将預訓練任務修改為QA比對任務,試驗結果顯示這種方式能夠為下遊任務帶來較為明顯的提升。
4.6.1.3 業務效果
在比對任務上,我們用店小蜜資料進行驗證,通過不同任務類型的業務資料的混合訓練以及模型結構的微調後,能夠為目前的比對任務帶來穩定的效果提升,如利用query和doc的排序、QA比對任務訓練後的模型,在下遊任務上比直接使用原始BERT提升了3%的AUC。
4.6.2 模型裁剪和蒸餾
模型裁剪和蒸餾的主要目的有兩個:
a.減少模型參數,縮減模型尺寸(memory optimization)
b.加快模型訓練、預測速度(speed optimization)
在實際業務場景中,我們更加關注提升模型的預測速度,進而優化QPS和模型延時。
對于模型裁剪方式,有多種方式讓student model的模型結構複雜度低于teacher model的模型結構複雜度。通常的做法可以采用更少的層(如PKD-BERT)、更小的隐層大小(如tinyBERT[14])以及參數共享(如ALBERT[15],雖然能夠顯著減少參數量,但是ALBERT在相同層數條件下并不會帶來速度上的提升)。
基于BERT的模型蒸餾思路大緻可歸納如下:
a.從Teacher BERT蒸餾到CNN、RNN等小模型。這種情況下通常采用正常的soft label進行蒸餾訓練,我們在店小蜜的query和doc排序問題上将BERT蒸餾到CNN網絡,AUC損失4.2%。
b.從Teacher BERT蒸餾到更小的student BERT模型。這種情況下可以将Student BERT的每一層和Teacher BERT對齊,先用teacher BERT參數對Student BERT進行初始化,再對Student BERT進行蒸餾訓練。我們在店小蜜的query和answer拒識問題上将BERT蒸餾到3層BERT,AUC損失1%。
4.7 領域資料與模型沉澱
上文提到機器閱讀在業務應用時面臨的其中一個難題是資料标注苦難,是以為了減少資料标注量,加快業務擴充,我們一方面使用大規模無監督語料進行語言模型的預訓練,另一方面基于我們在集團内外多個業務上的積累,我們已經沉澱了如下圖所示的零售、百科、法規、政務、旅遊等多個領域的資料和領域模型,新業務隻需要在領域模型基礎上用少量資料進行增量訓練,就能快速達到上線要求。
五、從技術到産品化
早期我們将機器閱讀以平台化能力進行輸出,對每個業務提供人力投入,并與業務、産品、工程同學配合,完成每個業務的開發、訓練、測試、上線任務。但是随着接入業務數量的不斷增加,定制化需求的不斷深入,如果仍然以之前的業務接入方案,人力成本、接入周期都是我們難以接受的。為了提升業務接入效率,降低業務接入成本,我們已經将一部分能力沉澱到機器閱讀中台,目前機器閱讀中台已經沉澱了如上文所講的一系列領域能力,我們也會持續投入機器閱讀中台的建設,打造一個從領域模型選擇、資料标注,到模型訓練、模型上線的全自助能力,并且基于自動回流系統對線上資料進行持續疊代優化。
5.1 新業務接入
在領域沉澱一節,我們已經講到随着中台建設及更多的業務沉澱,新業務接入的标注成本也在不斷降低,新業務的接入流程也從以往從零開始的資料标注,轉變成優先選擇合适的領域模型。模型的上線周期也從以往的幾周變成了現在的幾天。
5.2 自動回流&疊代
考慮到資料标注成本和人工投入成本,如果能夠将目前已經建立好的從資料到模型的閉環進行自動化的疊代,而不是每次人為的更新,那麼可以在一定程度上達到降本增效的效果。基于該目的,我們提出了算法自動疊代的想法。
首先,通過主動學習政策、客戶回報等方式回流累積線上真實資料。之後進行模型自動訓練,在無标注人力時可以利用無監督資料進行distill提升線上模型效果,在有标注人力時可以進行有監督模型訓練。訓練完成後在測試集上進行模型效果評估,并郵件提醒負責人進行效果确認。對确認達到上線要求的模型,可以自動完成模型部署和更新。整體流程的簡要框圖如下。
六、發展曆程
2017 從學術研究到工業落地:這個時期完成了學術任務的預研與積累,并在阿裡小蜜活動問答和企業小蜜稅法解讀場景上邁出了工業落地的第一步,主要的挑戰在于如何設計模型的不同層次,使其能夠從文章中有效抽取答案,同時兼顧線上服務的時效要求,最終沉澱出SLQA基礎模型,為之後的能力突破人類打下基礎。這期間對于MRC的應用還局限在單一領域做針對性優化,業務拓展的成本比較高。
2018 從單一場景到多領域實踐:初步驗證了機器閱讀的技術價值之後,這一階段着重在更多領域、規模更大的業務場景落地,包括在店小蜜活動專區、Lazada活動問答(EN&ID)、浙江政務事項咨詢、汽車說明書問答等,在業務快速落地的同時也探索了跨語言遷移、跨領域遷移、跨任務遷移等學習方法進一步降低接入成本。同時為了适配更複雜多樣的業務需求,我們從單一的模型擴充到了內建檢索、排序、抽取、拒識等全鍊路的問答服務,支援不同能力的靈活組裝,在準确&召回率、吞吐量與響應時間、模型可控性等方面上有了明顯的改進。
2019 從問答到全鍊路産品建構:伴随着機器閱讀落地在越來越多的業務中,我們開始圍繞着整個算法生命周期實作技術産品化與平台化,結合已有領域的積累遷移及通用語言模型的支援,覆寫場景驗證、業務評測、标注優化、線上接入、回流疊代等多個環節,通過最佳實踐來賦能業務方去做能力內建與優化。在技術方面持續投入機器閱讀的創新突破,在結合會話的多輪次閱讀、結合圖檔的多模态閱讀等方面都有了初步探索。
七、技術成就
2017年7月首次落地上線,助力阿裡小蜜活動問答;
2018年1月在斯坦福評測SQuAD v1.1中曆史首次超越人類表現 (EM: 82.44 vs. 82.3);
2018年2月在TriviaQA評測中獲得第一;
2018年9月在SQuAD v2.0評測中獲得第一;
2018年10月在百度DuReader Q&A評測中獲得第一;
2018年11月模型性能突破(活動規則問答耗時<10ms),支援大促高峰不降級;
2018年12月在微軟MARCO Q&A任務評測中獲得第一;
2019年6月在微軟MARCO Passage Retrieval任務和Q&A任務中雙雙重新整理記錄;
2019年11月多模态閱讀全量開放店小蜜商業版7大行業問答,支援商家服務雙11;
機器閱讀相關論文入選ACL 2018,AAAI 2019,EMNLP 2019, CIKM 2019, AAAI 2020。
八、總結與展望
經過3年的積累,我們将機器閱讀了解技術落地在了小蜜的各種業務場景,覆寫了活動規則、法規條例、商品百科、說明手冊等多種内容形式,借助遷移學習、多任務學習、大規模預訓練進一步增強模型效果,并結合對話場景在多語言、多輪次、多模态問答上也取得了一定效果。目前機器閱讀了解已經形成了一整套解決方案,幫助小二、商家及外部客戶減少文章拆解、知識配置的成本,減輕使用者資訊擷取成本,成為小蜜中不可或缺的能力。未來我們會繼續深耕,在業務上以中台能力輸出至新零售、經濟體以及雲生态,持續擴大應用規模,建構輕量化的營運與疊代支援;打造資訊智能化的基礎設施,推動人工智能與商業應用的深度融合發展。
技術方面目前機器閱讀了解對于解決wiki類客觀知識問答已經取得比較好的結果,但對于複雜問題來說仍處于比較初級的階段;在多模态場景,如何了解圖文,表格等結構化資訊也處于發展階段。學術界的思路和工業界實際場景相結合将能産生巨大的價值,我們将在這方面持續投入研究并落地到實際業務,在算法、模型和資料方面進行積累和沉澱,未來在更多的真實領域場景中,使用者将能感受到機器閱讀了解技術帶來的更為便利的智能服務。對于機器閱讀了解的“能了解會思考”的終極目标來說,現在還隻是萬裡長征的開始,對自然語言的更深層次的歸納、總結、推理,一定是未來機器閱讀了解不可缺少的部分。
參考文獻:
Wang et al. 2018. Multi-Granularity Hierarchical Attention Fusion Networks for Reading Comprehension and Question Answering.
Rajpurkar et al. 2016. SQuAD: 100,000+ Questions for Machine Comprehension of Text
Reddy et al. 2018. Coqa: A conversational question answering challenge.
Bajaj et al. 2016. MS MARCO: A Human Generated MAchine Reading COmprehension Dataset.
He et al. 2017. Dureader: a chinese machine reading comprehension dataset from real-world applications.
Nogueira et al. 2019. Document Expansion by Query Prediction.
Wang et al. 2019 StructBERT: Incorporating language structures into pre-training for deep language understanding.
Devlin et al. 2018. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding.
Yan et al. 2018. A Deep Cascade Model for Multi-Document Reading Comprehension.
Huang et al. 2018. FlowQA: Grasping Flow in History for Conversational Machine Comprehension.
Liu et al. 2019. RoBERTa: A Robustly Optimized BERT Pretraining Approach.
Machine Learning Department Carnegie Mellon University: Multimodal deep learning course slide.
Joshi et al. 2019. SpanBERT: Improving pre-training by representing and predicting spans.
Jiao et al. 2019. TinyBERT: Distilling BERT for Natural Language Understanding.
Lan et al. 2019. ALBERT: A Lite BERT for Self-supervised Learning of Language Representations.