九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Facebook大公開:解決NLG模型落地難題!工業(yè)界的新一波春天?

作為NLP領(lǐng)域的“三高”用戶(高產(chǎn)、高能、高鈔),F(xiàn)aceBook最近(2020年11月)又發(fā)表了一篇高水準文章,目前已被COLING-2020接收,號稱解決了自然語言生成(NLG)落地的問題:Best Practices for Data-Efficient Modeling in NLG:How to Train Production-Ready  Neural Models with Less Data

看到這個有點標題黨的文章,我不禁要發(fā)出關(guān)于NLG落地的素質(zhì)三連:

眾所周知,對于自然語言處理中的NLG問題,一直都沒有很好的落地場景,即便是目前最合適的“文本自動摘要-Auto Text Summarization”,也沒有特別合適的產(chǎn)品和落地領(lǐng)域。所以雖說你是大佬,但我也不覺得你可以做第一個吃螃蟹的人!

抱著這些疑惑,我一口氣讀完了整個paper,然后不禁發(fā)出感慨:“就這?”——啊不,打錯了——然后不禁發(fā)出感慨:“四高一”!??!

本篇文章的亮點比較多,屬于一篇偏實驗性論文,總結(jié)為一句話就是:流程化NLG在對話系統(tǒng)落地過程中開發(fā)步驟和評估策略

文中研究的NLG主要指對話系統(tǒng)中的NLG。為解決NLG應(yīng)用落地的難題,論文設(shè)計了一套Tree-Based數(shù)據(jù)集,并據(jù)此推出Bucketing訓(xùn)練策略 + TreeAccuracy評價策略。此外,還討論了NLG中的數(shù)據(jù)增強知識蒸餾,生成模型選擇Data-fficiency問題。為對話系統(tǒng)中的NLG落地給出了一套完備&Less-Data&Low-Latency&生成結(jié)果High-Acceptable的方案。

哈哈,這么高的評價,那我們看一下這篇文章到底做了啥!

論文題目

Best Practices for Data-Efficient Modeling in NLG:How to Train Production-Ready Neural Models with Less Data

論文鏈接:

https://arxiv.org/abs/2011.03877

Arxiv訪問慢的小伙伴也可以在 【夕小瑤的賣萌屋】訂閱號后臺回復(fù)關(guān)鍵詞 【1221】 下載論文PDF~

NLG先驗知識

在談?wù)撨@篇論文之前,我先和大家的溝通一下NLG這個任務(wù),保證大家有一個共通的認知觀點。

自然語言生成(Natural Language Generation)是一個很難或者說高復(fù)雜度的自然語言處理任務(wù)。廣義的NLG是給定一個輸入(可以是文本、表格、圖片或是結(jié)構(gòu)化的數(shù)據(jù)),輸出符合該輸入的一段文本描述(可以是文章寫作、摘要,也可是圖片內(nèi)容描述)。NLG通常被認為是真正意義上的人工智能,一個完備的NLG任務(wù)意味著圖靈機的實現(xiàn)。本論文的NLG是特指對話系統(tǒng)(Chatbot System)中的自然語言生成,對于一個對話系統(tǒng),它通常有如下幾個部分:

  • 自動語音識別-ASR
  • 自然語言理解-NLU
  • 對話策略-DM
  • 自然語言生成-NLG

對于此處的NLG任務(wù),它的輸入是<Query, DM產(chǎn)生的Actions>,輸出的是一段文本回復(fù)。

因為是一篇偏實驗性的論文,所以論文的要點理解和模型框架并不算特別的難,但是需要大量的先驗知識儲備。接下來的四個小節(jié)中,我將依次列舉一些必要的先驗知識,包括:

  • Chabot System中的NLG
  • Structured NLG Data
  • Bucketing策略
  • BART模型

Chabot System中的NLG

在對話系統(tǒng)中,經(jīng)過NLU,DM之后會獲得一系列的Dialogue Actions,這類Dialogue Actions就是NLG的重要輸入。在Chabot System中做NLG,常用的方法是基于模板生成結(jié)果。但是太過于死板且不可遷移。后來就提出了基于Encoder-Decoder的模型生成,和模板生成進行比較,也是有各自的優(yōu)劣點(具體討論可見論文細節(jié))。

這里為了能讓讀者有一個對NLG任務(wù)比較直觀的理解,給出了一個簡單的例子(其中Query和Actions通常作為NLG的輸入,ExpectResponse則指代模型NLG的輸出):

Query: '我要買一張明天去北京的火車票。'
Actions: {
'intent':'買火車票',
'slots':['destination':北京,
        'departure':UNK,
        'time':DayTime[“明天”]_DetailTime['UNK]]
'
actions':['詢問具體時間','詢問出發(fā)地點']

'
ExpectResponse':'請問您想買【明天】【幾點】的火車票?【出發(fā)地點】又是哪里呢?'
}

Structured NLG Data

如果使用Encoder-Decoder的生成模型來做NLG,那么不可避免地就引入了模型輸出結(jié)果不可控制的問題。在生成的模型中,可能缺少重要的要素,也可能要素值生成錯誤,這些都是生成模型中不可控制的。

作者所在的團隊在2019年的一篇論文中(Constrained decoding for neural NLG from compositional representations in task-oriented dialogue ),給出了一種解決方法:它將輸入的action使用tree-structured的方式進行存儲。這樣的結(jié)構(gòu)引入了更多的信息,也便于后面對生成結(jié)果進行判定。本文實際上也算是Facebook在以前工作上的一種再創(chuàng)新。

為了便于讀者理解,這里給出了論文中一個關(guān)于tree-structured input的數(shù)據(jù)。這是Facebook發(fā)布的Dialogue System中的一個case。他將Actions結(jié)構(gòu)化。Reference指期望給出的NLG輸出。

Query: 'Do I have any reminder to buy milk?'
Structured Actions: 
    INFORM 1[amount[ 3 ]]
    INFORM 2[todo[ buy milk ] date time[time[ 7 pm ]]]
    INFORM 3[todo[ buy milk ] date time[colloquial[ tomorrow ]]]
    INFORM 4[amount remaining[1]]
Reference: Yes, there are 3 reminders. The first two are, buy milk at 7 PM and tomorrow. There’s 1 other reminder.

Bucketing策略

這種策略方式使用比較少,在機器學(xué)習中有使用過(我也是咨詢了一位同事之后,才了解和理解的)。

在深度學(xué)習中,我們通常隨機選取一批數(shù)據(jù)進行模型的訓(xùn)練。如batch_size = 64,選取64個隨機數(shù)據(jù)進行訓(xùn)練。Bucketing則是一種按照某種【策略】將數(shù)據(jù)分成一個個的bucket(桶),然后將一個個的Bucket的數(shù)據(jù)丟入到模型中進行訓(xùn)練。這樣的訓(xùn)練方法可以減少在模型訓(xùn)練過程中由imbanlanced distribution帶來的bias,也能提高數(shù)據(jù)的利用率,是常用的一種利用“少量數(shù)據(jù)”訓(xùn)練模型的方法。

在Bucketing的過程中,這種【策略】就非常的重要。好的策略能大大提高數(shù)據(jù)利用率,壞的策略通常不比隨機好,甚至會誤導(dǎo)模型的學(xué)習。設(shè)置Bucket策略的出發(fā)點是:各個bucket中的數(shù)據(jù)中,不一樣的信息是希望模型能夠?qū)W習的信息,一樣的(共有的)信息是模型可以忽略的信息。

在本論文的任務(wù)上,因為數(shù)據(jù)是tree-structured的數(shù)據(jù),作者這里數(shù)據(jù)的tree-structured degreeargument values,嘗試了多種方法進行Bucketing,都取得了比random好的效果。

BART模型

BERT模型我聽過,BART模型又是啥??是不是寫錯了?BART是FaceBook AI團隊在2019年發(fā)布的一款適用于生成的預(yù)訓(xùn)練語言模型。

▲BERT、GPT、BART模型框架比較

如果說BERT適合做NLU,GPT框架適合做NLG。那如果我二者取其長,是不是就能更好的做NLP任務(wù)了?這個想法很簡單也很正常,但你發(fā)不了paper,因為你沒錢去訓(xùn)練這樣的模型,但人家FaceBook有,所以人家FaceBook發(fā)了Paper(手動狗頭)。模型框架很簡單,但是非常有效,出來即刷新榜單,目前在NLP任務(wù)中,同量級的模型上仍有多處屬于SOTA。

BART模型在HuggingFace的Transformers上開源了自己的預(yù)訓(xùn)練模型。筆者在今年8月份使用過BART模型進行過文本摘要生成。對于英文的生成來說,效果確實非常好,基本不用fine-tune也能比較好的生成通順的有意義的文本;但是對于中文,因為沒有Bart-zh,所以無法直接測試。不過FaceBook開放了25種語言的mBART,可用來做中文的文本生成,但直接生成的效果不好,語句通順都成問題,還未嘗試過fine-tune。不過從當前他人的使用評價和論文的結(jié)果來看,BART是一個很適合文本生成的預(yù)訓(xùn)練模型。

Paper Body

在介紹文章主體之前,我們再梳理一下文章說到的幾個要點知識。確保這幾個知識點你都能接受和掌握,我們再來看文章細節(jié)。

  • NLG任務(wù)是給定輸入的(dialog act,user query),生成語句通順,信息正確的回答。
  • 傳統(tǒng)NLG系統(tǒng)大多使用基于模板的文本生成(template-based text generation),有優(yōu)有劣。
  • 新的基于神經(jīng)網(wǎng)絡(luò)的NLG(neural-network-based language generation),其框架中主要步驟包括:
    1. 對于輸入進行meaning representation(MR);
    2. 使用sequence-to-sequence(S2S)框架,產(chǎn)生對應(yīng)的response。
  • 因為本論文要探討的是NLG產(chǎn)品化落地,所以我們期望探索不同數(shù)據(jù)量下模型精度結(jié)果的情況。即,在Data-Reduction的情況下,如何提高Data-Efficiency。
  • 因為是要探討NLG的產(chǎn)品化落地,所以也期望做一下模型壓縮在NLG方面的探索。

在上面的幾點理解后,我們從以下4個方面來看這篇論文:

  • 訓(xùn)練數(shù)據(jù)
  • Bucketing策略
  • 評估方法
  • 模型

四種訓(xùn)練數(shù)據(jù)

數(shù)據(jù)這里使用的是Facebook團隊2019年給出的四個對話系統(tǒng)相關(guān)的數(shù)據(jù),數(shù)據(jù)的存儲格式都是tree-structured的,數(shù)據(jù)的領(lǐng)域分別是:Weather, Reminder, Time, Alarm。數(shù)據(jù)的樣例格式如上面給出。

四種數(shù)據(jù)處于不同難度級別,其中Weather最難,Alarm最簡單。論文作者認為,這四個領(lǐng)域的數(shù)據(jù)能基本代表Task-oriented Dialogue System上NLG的難度水平,也基本滿足NLG任務(wù)的任務(wù)需求(雖然筆者我不這么認為,讀者也不一定這么認為??)。

三種Bucketing策略

這里作者根據(jù)數(shù)據(jù)tree-structured的結(jié)構(gòu)特色,使用了三種Bucketing策略,分別是:

  • Coarse grained(CB): 使用data中argument names進行Bucket group
  • Medium grained(MB): 精細到使用data中sub-arguments進行Bucket group,對于詞語的形態(tài)進行歸一化
  • Fine grained buckets(FB&FBQ): 更精細化的操作,包括對argument-value去語義化,甚至對query進行去語義化 (FBQ)
▲Bucketing 策略示例

一個完整的訓(xùn)練集使用不同的Bucketing策略,將會被分割成不同數(shù)量的buckets。越精細的Bucketing策略,被劃分的buckets數(shù)量就越多。比如Weather的訓(xùn)練數(shù)據(jù)集使用CB:MB:FB劃分得到的buckets數(shù)量分別是2240:6406:15456. 如上圖是一個case以及其各種bucket策略的例子表述。

實驗結(jié)果證明,無論哪種Bucketing策略,效果都優(yōu)于random。其實可以預(yù)料得到,因為一個正確的bucket策略相當于引入了先驗知識,讓模型更能按照正確的方向進行優(yōu)化學(xué)習。所以同等訓(xùn)練量和模型容納能力的情況下,模型效果會更優(yōu)。

三種評估方法

說到NLG問題,就一定繞不開NLG產(chǎn)生結(jié)果的評估。因為是自然語言生成的結(jié)果,和標準結(jié)果之間不能簡單的用“==”來判斷結(jié)果是否正確,因為會存在語義相同,表述不同的結(jié)果;也不能使用簡單的Rouge-L來評判,因為如果在關(guān)鍵詞(如數(shù)字,是否)上表述錯誤,是不可原諒的。所以NLG的結(jié)果評判也一直是一個問題。當然,可以引入人為評測,但是如果每一個NLG都使用認為評測,那么成本將非常的高昂。這里作者所使用的3種評測方法是:

  • Tree Accuracy: 因為數(shù)據(jù)本身是tree-structured數(shù)據(jù),所以非常方便的檢測生成文本的重要token是否是MR中的token,如果是記為1,否或者缺失記為0;
  • BLEU: 2002年提出,是NLG中通用的一種結(jié)果檢測方法。此處不做細述。
  • 人工評測:有錢土豪用人工,土豪FaceBook沒道理不用。這里論文從Correctness和Grammaticality兩個方面對生成文本進行測評。

三種模型方法和結(jié)果

在原論文中最后給了7種模型策略,但我只列舉了三種,因為其它都是在該三種方法上的排列組合。

  • S2S:使用Sequence-to-Sequence框架,用LSTM做encoder和decoder,輸入的embedding使用的是glove的embedding。優(yōu)點是輕量級,小。
  • BART:基于BART的模型框架進行Encoder-Decoder的模型訓(xùn)練,在BART的基礎(chǔ)上進行fine-tune。
  • KD(Knowledge Distillation,知識蒸餾):使用BART的模型太大了,不利于模型的線上使用,需要使用知識蒸餾的做法。這里KD指的是將BART蒸餾到S2S模型中。

此外,作者還提到了JT和DDA。這不算模型,算是兩種通用的增強模型效果的方法:

  • Joint-Training(JT): 將多個相近領(lǐng)域的數(shù)據(jù)一起訓(xùn)練。
  • Dynamic Data Augmentation (DDA):對于不同的Epoch,隨機替換每個argument value。這樣即便使用一批數(shù)據(jù)進行訓(xùn)練,每個Epoch的數(shù)據(jù)都不一樣,增大數(shù)據(jù)可用性。個人認為:由于此任務(wù)數(shù)據(jù)的固有特點,才得以使用該方法進行數(shù)據(jù)增強,算是合理利用數(shù)據(jù)特色進行數(shù)據(jù)增強的一種方法。

最終輸出的7種模型分別的輸出結(jié)果如下:

圖中橫坐標是訓(xùn)練數(shù)據(jù)量,縱坐標是精度。最后作者認為:S2S+KD 和 S2S+KD+DDA取得了最好的效果。

當然,全文的重點是NLG的Data Efficiency,所以會實驗各種數(shù)據(jù)量之下的模型結(jié)果,DDA策略無疑Data Efficiency最佳。而KD效果最差,但KD主要是為了工程應(yīng)用而生,畢竟KD之后的S2S模型只有2M。

能達到這樣的結(jié)果,確實振奮人心。用幾句話總結(jié)論文的結(jié)論,那就是:我們的Bucketing策略很好,我們的DDA很好,我們的TreeAccuracy很好,我們的KD很好。

此外,論文還分別給出了在四個Domian上的3種測評結(jié)果以及人工測評結(jié)果,最后給出結(jié)論:我們提出的Tree Accuracy還是很有代表性的;我們使用的S2S+KD+DDA是很有效果的,在四個Domain上通用。

論文結(jié)論

文章的結(jié)論我打算整體翻譯一下,因為確實是提綱挈領(lǐng),很有概括性(英文好的建議讀原文,原文截圖我保留在下面):

在訓(xùn)練task-oriented對話系統(tǒng)時,不僅要考慮模型的精度,還需要考慮模型的數(shù)據(jù)利用率以及可接受性(acceptability),響應(yīng)延遲和所需的開發(fā)維護成本。為此,我們提出一個NLG開發(fā)流程:

  • 根據(jù)數(shù)據(jù)中的結(jié)構(gòu)(此處為基于樹)對meaning representation進行Bucketing采樣,以避免不必要和不平衡的數(shù)據(jù)采集,每個bucket收集1-3個case。訓(xùn)練模型并進行評估。
  • 如果有任務(wù)和語義相似的多個domain數(shù)據(jù),可以先進行聯(lián)合訓(xùn)練,然后進行domain內(nèi)微調(diào)。訓(xùn)練模型并進行評估。
  • 實施動態(tài)數(shù)據(jù)增強(DDA),以減少響應(yīng)對“可互換參數(shù)值”的依賴。與增強數(shù)據(jù)一起訓(xùn)練,并評估模型性能。
  • 首先,使用預(yù)訓(xùn)練的模型(例如BART)為未標記數(shù)據(jù)生成響應(yīng),得到增強數(shù)據(jù)。然后,用增強數(shù)據(jù)和人工標記的數(shù)據(jù),訓(xùn)練一個小模型(KD)。最后,用人工標記數(shù)據(jù),進一步微調(diào)該模型。評估模型性能。
  • 如有必要,請為每個MR存儲桶收集更多示例,并從頭開始部署模型。
▲論文結(jié)論

我的理解

關(guān)于論文

論文本身是一個偏實驗性的論文,所以閱讀時需要注重理解論文設(shè)計的原因。因為是做對話系統(tǒng)中的NLG,而且是基于該組2019年發(fā)表的數(shù)據(jù)集進行訓(xùn)練,其格式化的數(shù)據(jù)格式,引入了本文中兩個非常大的亮點:Bucketing策略 和 DDA方法。注意,這兩種方法都是需要在Tree-based數(shù)據(jù)上進行實現(xiàn)的。此外,模型使用的BART模型和KD方法,都屬于比較通用的方法,創(chuàng)新性屬于錦上添花。

當然,論文期望知道 NLG落地對數(shù)據(jù)的需求(Data Reduction)、可能的數(shù)據(jù)增強方法(DDA)、模型壓縮(S2S+KD)能達到的精度和應(yīng)用領(lǐng)域的差異影響 的結(jié)果是什么,并為此設(shè)計了一系列實驗,也給出了相應(yīng)的結(jié)論。

關(guān)于NLG

如開頭所說的,一個完備的NLG意味著真正圖靈機的實現(xiàn),也意味著真正人工智能時代的到來。目前各大頂級公司都在走這樣的路,包括目前很多論文都是將大量的NLP任務(wù)轉(zhuǎn)化為語義理解的任務(wù),如:機器閱讀理解代替NER,QA方式代替信息抽取,模型生成代替文本分類。例如T5模型將各類NLP任務(wù)轉(zhuǎn)化為一個通用任務(wù)模型,例如GPT-3的finetune用普通的自然語言描述代替。NLG目前不屬于一個很好的可以工業(yè)落地和應(yīng)用的領(lǐng)域,但是自然語言學(xué)者們卻一直在探索NLG的任務(wù)。

一直說NLG的回答有很多的不可控性,本論文給出了一種Tree Accuracy的方法來評測模型生成的結(jié)果,確實從一定程度上衡量了模型輸出結(jié)果的準確性,算是為NLG的落地提供了一些方向(在格式化文本輸出的落地上提供可能)。但是這種情況其實是假設(shè)我們已經(jīng)獲取到了輸出所需的槽位值,而非真正意義上的從文本中去理解,然后獲取相關(guān)關(guān)系,再產(chǎn)出合理化的回復(fù)。所以本文對于通用意義上的NLG有參考意義,但對于問題的解決還是有很長的路要走!路漫漫其修遠兮!

最后的最后,請記得,素質(zhì)三連?。?!

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
帶你讀論文 | 數(shù)據(jù)到文本生成的近期優(yōu)質(zhì)論文,我們?yōu)槟闾暨x了這六篇
AI框架應(yīng)用:用PyTorch構(gòu)建自然語言生成(NLG)系統(tǒng)
【論文解讀】UniLM:一種既能閱讀又能自動生成的預(yù)訓(xùn)練模型
盤點人工智能十大經(jīng)典應(yīng)用領(lǐng)域、圖解技術(shù)原理
不會寫作文?試試這個文本模板生成系統(tǒng)唄
你知道什么是NLG技術(shù)嗎
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服