當前位置:
首頁 > 新聞 > 巨穎:閱讀理解進階三部曲——關鍵知識、模型性能提升、產品化落地

巨穎:閱讀理解進階三部曲——關鍵知識、模型性能提升、產品化落地

雷鋒網 AI 科技評論按:閱讀理解是近兩年自然語言處理領域的熱點之一,受到學術界和工業界的廣泛關注。所謂機器閱讀理解,是指讓機器通過閱讀文本,回答內容相關的問題,其中涉及到的理解、推理、摘要等複雜技術,對機器而言頗具挑戰。

分享嘉賓:

巨穎,追一科技語義演算法研究員,清華大學碩士。主要負責閱讀理解相關項目,為追一 AIForce、坐席助手等產品提供技術支持,在閱讀理解、文本分類、信息抽取等方面有深入的研究和豐富的應用經驗。

分享主題:閱讀理解進階三部曲——關鍵知識、模型性能提升、產品化落地

分享提綱:

何謂閱讀理解:常用數據集和基礎架構

閱讀理解的模型性能提升:從數據、模型、訓練等角度

閱讀理解的產品化落地

雷鋒網 AI 研習社將其分享內容整理如下:

今天的分享主題是閱讀理解進階三部曲——關鍵知識、模型性能提升、產品化落地,分享提綱包括:

第一,介紹相關背景知識:常用數據集和基礎架構;

第二,我們本次從 CMRC2018 中文機器閱讀理解比賽的獲獎經驗入手,介紹如何從數據、模型、訓練等角度來閱讀理解的模型性能;

第三,結合我在工作實踐中的經驗和體驗來談一談閱讀理解產品化落地的方向。


何謂閱讀理解:常用數據集和基礎架構

這部分主要介紹幾個數據集和經典模模型。

數據集分為四個類別:

第一種是完形填空式;

第二種是多選式;

第三種是原文中的片段;

第四種是答案由人類總結而來。

每一種數據集我都會以一個案例來進行講解:

完形填空式

多選式

原文中的片段

答案由人類總結而來

(關於四種數據集的案例講解,請回看視頻 00:02 : 45 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying

接下來講一些閱讀理解的經典 Model,主要包括:

Allen AI 提出的 BIDAF

微軟提出的 R-NET

Google 提出的 QANet

最近刷榜的 GPT & BERT

進入 Model 講解之前,我們先思考一個問題:機器如何進行閱讀理解?我們人類一般會先通讀文章和問題,再帶著問題重新閱讀文章,並定位答案的區間,進而找到正確的結果,機器閱讀也是一樣:

第一步,將辭彙向量化;

第二步:相當於閱讀文章和閱讀問題;

第三步:會採用 Attention 的機制來實現,將文章和問題的信息進行融合。

現在進入到 Model 介紹:

(關於這四個 Model 的具體講解,請回看視頻 00:13 : 15 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying


閱讀理解的模型性能提升:從數據、模型、訓練等角度

接下來我們從 CMRC2018 中文機器閱讀理解這個比賽入手,介紹我們如何從數據、模型、訓練等角度來閱讀理解的模型性能。

CMRC 由中國中文信息協會舉辦,中文全稱為機器閱讀理解大賽,它的整個數據構造都跟 SQuAD 非常類似,只是換成了中文維基百科,它也是一個抽取式的閱讀理解,一個問題對應一篇文章,問題數為 1.9 萬個,訓練集大概是 1 萬條,驗證集大概是 3 千條,測試集大概是 5 千條,答案一定是文章中的一部分,評測指標是 EM & F1。

下面是 CMRC 的一個例子:

(關於這一案例的具體講解,請回看視頻 00:25 :10 處,http://www.mooc.ai/open/course/596?=aitechtalkjuyinghttp://www.mooc.ai/open/course/596?=aitechtalkjuying)

首先是數據準備工作:

接下來介紹一下模型:

我們的實驗結果如下:

(關於 CMRC 比賽的數據準備工作、模型以及實驗結果的具體講解,請回看視頻 00:25 : 43 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying


閱讀理解的產品化落地

最後講一講閱讀理解在實際產品中的應用。

首先最先想到的應用場景就是搜索引擎。搜索引擎一般都是基於網頁的搜索,比如我現在輸入一個問題,搜索引擎會返還給你一系列相關的網頁,需要你點入網頁找到答案位置,再提取出需要的信息,這都是跟人與人之間的問答交流不一樣的。搜索引擎如何直接給用戶返回最直接的答案,是各大產商都比較關心的一個問題。其中一個解決方案就是閱讀理解。

(關於這部分的具體講解,請回看視頻 00:37 : 50 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying

另外一個應用領域就是客服。以前如果需要機器回答用戶的問題,需要人工提前閱讀文檔,對其中的知識點進行拆解,最後再交給機器處理,比較耗時耗力。有了閱讀理解,機器就能直接閱讀文章並進行回答,非常快捷。

其他還有金融、教育等領域,它們都存在大量非結構化文本。比如金融有很多公告類型的數據,純靠人工提取知識點,並且由於長尾效應,難以覆蓋到用戶需要的所有點。依託閱讀理解,機器可以直接從非結構化數據中提取到用戶所需要的信息點。

實際應用中也存在不少的挑戰:

一個挑戰是專有領域的數據量比較少,解決方案有三個:一是翻譯,二是用類似領域的數據來補充,此外最直接最可靠的就是人工標註,但是成本花費較大;

另一個挑戰是實際應用中文檔的複雜性。當數據集是文本時,文檔可能長至幾百頁,這時,機器就需要搭配文章分類和段落索引這樣的技術來提升速度和準確性。另外,文檔中的一級標題、二級標題以及表格和圖片等都是需要處理的問題。

最後講一下我個人認為的閱讀理解的發展方向:

一個是高層次的推理;

二是如何引用外部性、常識性的信息;

三是如何拒絕回答。


問答部分

1.teacher 的輸出是訓練集還是驗證集?還有 loss 是怎麼算的,兩個標籤的 loss 權重怎麼設置?

teacher 的輸出是訓練集,實際上相當於我們先訓練好了一個模型,我們把這個模型恢復進來,然後重新初始化一個 student 模型,兩者一起進行訓練。就是說 teacher 現在已經訓練好了,然後來一個輸入信息,teacher 的這個輸出和 student 原本真實的 label 兩者都作為監督信號去訓練 student。

loss 設計的時候可以把 teacher 的輸出當成另一個 label。由真實的 label 得到 loss1,將 teacher 的輸出當成另一個 label,採用相同計算方式得到 loss2。在比賽中,二者的權重是一比一,即 loss1+loss2

2. 訓練的時候 teacher 的變數用不用跟著 student 一起更新?

實際上,我們在驗證的時候一併嘗試了這兩種方式,一種是 teacher 的變數跟著 student 一起更新;另一種是 teacher 的變數是固定的,只更新 student 的變數。在 CMRC 比賽中,這兩種方式都有提升性能,但是 teacher 的變數跟著 student 一起更新時,提升的效果更好。

3. 有沒有用過一個多任務的學習方式?

多任務的學習方式,一種是預測這個詞是不是在答案的範圍裡面,輸出 0,1 二分類的 label 信號,將它當做輔助任務去訓練,另外預測答案是否在這個句子里也可以是一個輔助任務。多任務其實是比較 trick 的東西,不同任務設置的權重不一樣,需要不斷去嘗試。

4.student 和 teacher 的 predict 需要完整的訓練集嗎?

teacher 是跟著 student 的訓練一起進行的,student 和 teacher 的輸入應該是全部訓練集,一個 bench 進來,先輸入 teacher。student 需要參考兩個監督信號:一個是 teacher 的輸入,一個是真實的 label。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 雷鋒網 的精彩文章:

AI 研習社大講堂已逾 100 期!精彩 NLP 分享視頻回顧
CFO被捕,華為最新回應來了:並不知曉孟女士有任何不當行為

TAG:雷鋒網 |