0
本文作者: 叢末 | 2018-12-06 14:47 |
雷鋒網(wǎng) AI 科技評論按:閱讀理解是近兩年自然語言處理領(lǐng)域的熱點(diǎn)之一,受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。所謂機(jī)器閱讀理解,是指讓機(jī)器通過閱讀文本,回答內(nèi)容相關(guān)的問題,其中涉及到的理解、推理、摘要等復(fù)雜技術(shù),對機(jī)器而言頗具挑戰(zhàn)。
近日,在雷鋒網(wǎng) AI 研習(xí)社公開課上,追一科技語義算法研究員巨穎作為 CMRC2018 中文機(jī)器閱讀理解比賽的冠軍團(tuán)隊(duì)成員之一,將為大家剖析機(jī)器閱讀理解的關(guān)鍵知識點(diǎn),并結(jié)合追一的實(shí)踐經(jīng)驗(yàn),分享如何從數(shù)據(jù)、模型、訓(xùn)練角度提升模型性能,探討 AI 時代閱讀理解技術(shù)的產(chǎn)品化落地:http://www.mooc.ai/open/course/596?=aitechtalkjuying
分享嘉賓:
巨穎,追一科技語義算法研究員,清華大學(xué)碩士。主要負(fù)責(zé)閱讀理解相關(guān)項(xiàng)目,為追一 AIForce、坐席助手等產(chǎn)品提供技術(shù)支持,在閱讀理解、文本分類、信息抽取等方面有深入的研究和豐富的應(yīng)用經(jīng)驗(yàn)。
分享主題:閱讀理解進(jìn)階三部曲——關(guān)鍵知識、模型性能提升、產(chǎn)品化落地
分享提綱:
何謂閱讀理解:常用數(shù)據(jù)集和基礎(chǔ)架構(gòu)
閱讀理解的模型性能提升:從數(shù)據(jù)、模型、訓(xùn)練等角度
閱讀理解的產(chǎn)品化落地
雷鋒網(wǎng) AI 研習(xí)社將其分享內(nèi)容整理如下:
今天的分享主題是閱讀理解進(jìn)階三部曲——關(guān)鍵知識、模型性能提升、產(chǎn)品化落地,分享提綱包括:
第一,介紹相關(guān)背景知識:常用數(shù)據(jù)集和基礎(chǔ)架構(gòu);
第二,我們本次從 CMRC2018 中文機(jī)器閱讀理解比賽的獲獎經(jīng)驗(yàn)入手,介紹如何從數(shù)據(jù)、模型、訓(xùn)練等角度來閱讀理解的模型性能;
第三,結(jié)合我在工作實(shí)踐中的經(jīng)驗(yàn)和體驗(yàn)來談一談閱讀理解產(chǎn)品化落地的方向。
這部分主要介紹幾個數(shù)據(jù)集和經(jīng)典模模型。
數(shù)據(jù)集分為四個類別:
第一種是完形填空式;
第二種是多選式;
第三種是原文中的片段;
第四種是答案由人類總結(jié)而來。
每一種數(shù)據(jù)集我都會以一個案例來進(jìn)行講解:
完形填空式
多選式
原文中的片段
答案由人類總結(jié)而來
(關(guān)于四種數(shù)據(jù)集的案例講解,請回看視頻 00:02 : 45 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying)
接下來講一些閱讀理解的經(jīng)典 Model,主要包括:
Allen AI 提出的 BIDAF
微軟提出的 R-NET
Google 提出的 QANet
最近刷榜的 GPT & BERT
進(jìn)入 Model 講解之前,我們先思考一個問題:機(jī)器如何進(jìn)行閱讀理解?我們?nèi)祟愐话銜韧ㄗx文章和問題,再帶著問題重新閱讀文章,并定位答案的區(qū)間,進(jìn)而找到正確的結(jié)果,機(jī)器閱讀也是一樣:
第一步,將詞匯向量化;
第二步:相當(dāng)于閱讀文章和閱讀問題;
第三步:會采用 Attention 的機(jī)制來實(shí)現(xiàn),將文章和問題的信息進(jìn)行融合。
現(xiàn)在進(jìn)入到 Model 介紹:
(關(guān)于這四個 Model 的具體講解,請回看視頻 00:13 : 15 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying)
接下來我們從 CMRC2018 中文機(jī)器閱讀理解這個比賽入手,介紹我們?nèi)绾螐臄?shù)據(jù)、模型、訓(xùn)練等角度來閱讀理解的模型性能。
CMRC 由中國中文信息協(xié)會舉辦,中文全稱為機(jī)器閱讀理解大賽,它的整個數(shù)據(jù)構(gòu)造都跟 SQuAD 非常類似,只是換成了中文維基百科,它也是一個抽取式的閱讀理解,一個問題對應(yīng)一篇文章,問題數(shù)為 1.9 萬個,訓(xùn)練集大概是 1 萬條,驗(yàn)證集大概是 3 千條,測試集大概是 5 千條,答案一定是文章中的一部分,評測指標(biāo)是 EM & F1。
下面是 CMRC 的一個例子:
(關(guān)于這一案例的具體講解,請回看視頻 00:25 :10 處,http://www.mooc.ai/open/course/596?=aitechtalkjuyinghttp://www.mooc.ai/open/course/596?=aitechtalkjuying)
首先是數(shù)據(jù)準(zhǔn)備工作:
接下來介紹一下模型:
我們的實(shí)驗(yàn)結(jié)果如下:
(關(guān)于 CMRC 比賽的數(shù)據(jù)準(zhǔn)備工作、模型以及實(shí)驗(yàn)結(jié)果的具體講解,請回看視頻 00:25 : 43 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying)
最后講一講閱讀理解在實(shí)際產(chǎn)品中的應(yīng)用。
首先最先想到的應(yīng)用場景就是搜索引擎。搜索引擎一般都是基于網(wǎng)頁的搜索,比如我現(xiàn)在輸入一個問題,搜索引擎會返還給你一系列相關(guān)的網(wǎng)頁,需要你點(diǎn)入網(wǎng)頁找到答案位置,再提取出需要的信息,這都是跟人與人之間的問答交流不一樣的。搜索引擎如何直接給用戶返回最直接的答案,是各大產(chǎn)商都比較關(guān)心的一個問題。其中一個解決方案就是閱讀理解。
(關(guān)于這部分的具體講解,請回看視頻 00:37 : 50 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying)
另外一個應(yīng)用領(lǐng)域就是客服。以前如果需要機(jī)器回答用戶的問題,需要人工提前閱讀文檔,對其中的知識點(diǎn)進(jìn)行拆解,最后再交給機(jī)器處理,比較耗時耗力。有了閱讀理解,機(jī)器就能直接閱讀文章并進(jìn)行回答,非??旖荨?/p>
其他還有金融、教育等領(lǐng)域,它們都存在大量非結(jié)構(gòu)化文本。比如金融有很多公告類型的數(shù)據(jù),純靠人工提取知識點(diǎn),并且由于長尾效應(yīng),難以覆蓋到用戶需要的所有點(diǎn)。依托閱讀理解,機(jī)器可以直接從非結(jié)構(gòu)化數(shù)據(jù)中提取到用戶所需要的信息點(diǎn)。
實(shí)際應(yīng)用中也存在不少的挑戰(zhàn):
一個挑戰(zhàn)是專有領(lǐng)域的數(shù)據(jù)量比較少,解決方案有三個:一是翻譯,二是用類似領(lǐng)域的數(shù)據(jù)來補(bǔ)充,此外最直接最可靠的就是人工標(biāo)注,但是成本花費(fèi)較大;
另一個挑戰(zhàn)是實(shí)際應(yīng)用中文檔的復(fù)雜性。當(dāng)數(shù)據(jù)集是文本時,文檔可能長至幾百頁,這時,機(jī)器就需要搭配文章分類和段落索引這樣的技術(shù)來提升速度和準(zhǔn)確性。另外,文檔中的一級標(biāo)題、二級標(biāo)題以及表格和圖片等都是需要處理的問題。
最后講一下我個人認(rèn)為的閱讀理解的發(fā)展方向:
一個是高層次的推理;
二是如何引用外部性、常識性的信息;
三是如何拒絕回答。
(關(guān)于閱讀理解的三個發(fā)展方向的具體講解,請回看視頻 00:43 : 30 處,http://www.mooc.ai/open/course/596?=aitechtalkjuying)
以上就是本期嘉賓的全部分享內(nèi)容。更多公開課視頻請到雷鋒網(wǎng) AI 研習(xí)社社區(qū)(http://ai.yanxishe.com/)觀看。關(guān)注微信公眾號:AI 研習(xí)社(okweiwu),可獲取最新公開課直播時間預(yù)告。
1.teacher 的輸出是訓(xùn)練集還是驗(yàn)證集?還有 loss 是怎么算的,兩個標(biāo)簽的 loss 權(quán)重怎么設(shè)置?
teacher 的輸出是訓(xùn)練集,實(shí)際上相當(dāng)于我們先訓(xùn)練好了一個模型,我們把這個模型恢復(fù)進(jìn)來,然后重新初始化一個 student 模型,兩者一起進(jìn)行訓(xùn)練。就是說 teacher 現(xiàn)在已經(jīng)訓(xùn)練好了,然后來一個輸入信息,teacher 的這個輸出和 student 原本真實(shí)的 label 兩者都作為監(jiān)督信號去訓(xùn)練 student。
loss 設(shè)計(jì)的時候可以把 teacher 的輸出當(dāng)成另一個 label。由真實(shí)的 label 得到 loss1,將 teacher 的輸出當(dāng)成另一個 label,采用相同計(jì)算方式得到 loss2。在比賽中,二者的權(quán)重是一比一,即 loss1+loss2
2. 訓(xùn)練的時候 teacher 的變量用不用跟著 student 一起更新?
實(shí)際上,我們在驗(yàn)證的時候一并嘗試了這兩種方式,一種是 teacher 的變量跟著 student 一起更新;另一種是 teacher 的變量是固定的,只更新 student 的變量。在 CMRC 比賽中,這兩種方式都有提升性能,但是 teacher 的變量跟著 student 一起更新時,提升的效果更好。
3. 有沒有用過一個多任務(wù)的學(xué)習(xí)方式?
多任務(wù)的學(xué)習(xí)方式,一種是預(yù)測這個詞是不是在答案的范圍里面,輸出 0,1 二分類的 label 信號,將它當(dāng)做輔助任務(wù)去訓(xùn)練,另外預(yù)測答案是否在這個句子里也可以是一個輔助任務(wù)。多任務(wù)其實(shí)是比較 trick 的東西,不同任務(wù)設(shè)置的權(quán)重不一樣,需要不斷去嘗試。
4.student 和 teacher 的 predict 需要完整的訓(xùn)練集嗎?
teacher 是跟著 student 的訓(xùn)練一起進(jìn)行的,student 和 teacher 的輸入應(yīng)該是全部訓(xùn)練集,一個 bench 進(jìn)來,先輸入 teacher。student 需要參考兩個監(jiān)督信號:一個是 teacher 的輸入,一個是真實(shí)的 label。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。