【论文阅读】自然语言生成(NLG)——基于plan思想的Data2Text任务实现
生活随笔
收集整理的這篇文章主要介紹了
【论文阅读】自然语言生成(NLG)——基于plan思想的Data2Text任务实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
NLG方向可以算是NLP的一個分支,即自然語言生成,理解上data2text,image2text,doc2text都在這個范疇內。相對來說data2text是較為容易的一個任務,可以作為很多復雜NLG任務中處于最終一步的任務,因此它的重要性不言而喻。本文摘自ACL 2019錄取的30篇知識圖譜論文之一1904.03396,筆者做了較為詳細的閱讀標注僅供參考。
最近間歇性腦殼疼,是真的腦殼疼,生理上的疼。
論文標題:Step-by-Step: Separating Planning from Realization in Neural Data-to-Text Generation
論文下載地址:https://arxiv.org/abs/1904.03396
項目地址:https://github.com/AmitMY/chimera
Step-by-Step: Separating Planning from Realization in Neural Data-to-Text Generation
論文下載地址:https://arxiv.org/abs/1904.03396
項目地址: https://github.com/AmitMY/chimera
目錄
- Abstract 摘要
- 1. 引語 Introduction
- 2. 方法概述 Overview of the Approach
- 2.3 總體應用 General Applicability
- 3. 文本計劃 Text Planning
- 3.1 訓練數據添加plan
- 3.2 測試時間計劃選擇 Test-time Plan Selection
- 4. 計劃實現 Plan Realization
- 5. 實驗配置 Experimental Setup
- 6. 實驗與結果 Experiments and Results
- 6.1 自動化評價機制
- 6.2 手工評價機制
- 6.3 計劃實現連貫性 Plan Realization Consistency
- 7. 相關工作 Related Work
- 8. 總結
Abstract 摘要
- 排序(ordering)
- 信息結構化(structuring)
- 最終生成用于描述data的流暢text
- 該階段對本階段輸入完全信任
- 之后再跟進一個神經生成階段中, 主要用于實現對data的描述
- 為了訓練plan2text的生成器, 本文提出一種篩選高質量“文本計劃”(text plans)的方法
- 本文基于WebNLG語料數據集的benchmark進行實現與驗證
- 模型在BLEU-score與手動驗證上都取得了更好的結果
- 模型可以對同一輸入做到不同輸出
- 為文本生成架構的研究鋪路
1. 引語 Introduction
- 輸入: John, birthPlace, London; John, employer, IBM;
- 輸出:
- John, who was born in London, works for IBM;
- John, who works for IBM, was born in London;
- London is the birthplace of John, who works for IBM;
- IBM employs John, who was born in London;
- 難點: 按照什么順序描述所有data, 按照什么樣的方式表示每條data
- 當然也可以分成兩個句子: John works for IBM. John was born in London;
- 總體來說, 如何排序data, 排序entity, 以及句子分割可以引出12種不同的架構
- 另一個維度的變體是在給定架構下如何將信息動詞化:
- John works for IBM and was born in London;
- John is employed by IBM. He was born in London;
- 如何信息結構化: 本文使用“文本計劃”(text planning)
- 如何動詞化一個plan: 本文使用“計劃實現”(plan realization)
- 不過目前的潮流傾向于忽視這個區別
- 而將問題轉為end2end, 即將data作為輸入映射成輸出text, 使用encoder-decoder架構
- 這往往可能導致輸出結果與輸入并非一個意思, 如省略, 重復, 甚至改變原來的facts
- NLG社區將這種錯誤視為adequacy或correctness的問題
- 與模板方法相比:
- 神經方法的輸出的置信度往往較低, 即不能完全表示原意, 且很難控制輸出的結構
- 但是在語言細節的捕捉上做得好
- 該階段的輸出用于輸入神經生成系統
- text planner決定信息結構并清楚表達出來, 本文將使用一個序列的的排好序的樹來表示
- 該階段是象征性的, 用于確保模型輸出保持置信度并且完成輸入fact的全部內容
- 一旦plan被決定, 神經生成系統就會將它輸出為流暢的自然語言文本
- 我們的方法在WebNLG語料庫上的表現與一般的神經系統一樣流暢, 但是具有更高的置信度與完成度
- 模型可以控制輸出的結構并且可以有多種不同的輸出
- 項目地址在本markdown文件第二行
2. 方法概述 Overview of the Approach
- 我們的方法用于從RDF集合的輸入生成文本
- 所有用于輸入的RDF三元組可以視為圖: entity為節點, RDF關系是有向且已標注的邊
- 每一條RDF三元組與一條或多條參考text對應, 用于描述該RDF三元組的信息
- 參考text為單獨的句子或句子序列
- 抽象化表示:
- 輸入的圖G有三元組(s_i,r_i,o_i)的集合構成, 分別表示subject, relation, object
- s_i與o_i屬于DBPedia實體集合, r_i屬于已標注的DBPedia關系集合
- (G,參考text)為輸入輸出對, 同樣的G可能有多個reference
- 生成過程分為兩部分:
- 文本計劃(text planning)
- 句子實現(sentence realization)
- 給定輸入G, 生成一個計劃plan(G)用于分割G中的所有fact得到若干句子, 該data2plan的步驟是非神經的, 可以使用數據驅動的打分函數來排序可能的建議, 然后選取打分高的結果
- 根據plan申城一個個句子, plan2sentence步驟使用NMT系統
- 基于plan的架構中, 對于(G,參考text)的輸入輸出對會額外添加一個對應的plan, 構成新的數據集, 用于訓練plan2text與plan-selection方法
2.3 總體應用 General Applicability
3. 文本計劃 Text Planning
- plan捕捉fact2sentence的分割以及sentence的順序
- sentence中不同fact的順序
- fact中不同entity的順序, 稱relation的方向(direction)
- 如(A,location,B)可以視為A is located in B或者B is the location of A
- 不同fact共用同一entity時的語句架構, 有鏈式, 平行(sibling), 混合架構三種
- 鏈式架構: John lives in London, the capital of England
- 平行架構: John lives in London and works as a bartender
- 混合架構: John lives in London, the capital of England, and works as a bartender
- 文本計劃使用一個序列的句子計劃建模, 再按順序實現
- 每個句子計劃使用排序樹建模, 確定信息實現的架構, 使用樹的架構便于不同fact間共享entity的連貫性
- 文本計劃假設每個entity僅在一句話中出現一次, 這也是WebNLG語料庫的特點
- plan的示例在Figure 1.b
- (h,l_1,m),(m,l_2,x)代表一組連貫的facts共享中間的entity
- John lives in London, the capital of England
- (h,l_1,m1),(h,l_2,m_2)代表一組連貫的facts共享同樣的entity
- John lives in London and works as a bartender
- (h,l_1,m),(m,l_2,x)代表一組連貫的facts共享中間的entity
- 對于小的輸入圖G可以直接把所有可能的計劃全部列舉出來, 如在每個節點做一次DFS來得到各種不同順序的子女節點排序方式
- 特別地如果圖G存在環(WebNLG語料庫中有0.4%的圖存在環, 本文對這些進行忽略), 一定要確保是無環圖
3.1 訓練數據添加plan
- ref中每一個句子的facts都是用T中的計劃組合的
- 對應的句子與句子計劃, entity的順序是相同的
- 確認參考文本中的entities以及輸入中的entities相對于fact是獨特的, 這件事是相對容易的
- 確認句子分割相對容易
- 參考文本與它的匹配計劃一定共享相同的entities以相同的順序和相同的句子分割
- 定義三元組集合與句子是潛在一致(potentially consistent)的, 當且僅當每個三元組包含至少一個來自句子的entity(要么是主語要么是賓語), 且每個句子中的每個entity至少被一個三元組覆蓋到
- 給定參考文本, 使用NLTK分詞后, 尋找G的一個不交的劃分, 使得每個劃分的集合與一個對應的句子一致
- 對于G的一個不交的劃分, 考慮窮舉法
- 定義一個參考文本與一個來自對應RDF的句子計劃是匹配的, 當且僅當句子中的entities集合與plan是相同的, 且所有的entity以相同順序出現
- 事實上還需要指定G集合中中任意兩個entity間只能有一個關系, 這在WebNLG6940的樣本中僅15個不滿足該條件, 因此可以忽略
- 基于此可以將每個句子和計劃都視為entity的序列, 確認序列匹配即可
- 但是這種規則的問題在于映射text與plan中的entity并非平凡
- entity存在變體: A.F.C Fylde v.s. AFC Fylde
- entity同義但需要外部知識: UK conservative party v.s. the Tories
- entity存在代詞指代相同情況: them, he, the former
- 因此需要放款匹配的規則, 本文考慮文本中可能的未知entity ???
- 具體地, 句子計劃用一個entity序列(pe_1,…,pe_k)表示, 每個句子用(se_1,…,se_m)表示, m<=k
- 注意我們將plan中的entity與sentence中的entity匹配使用Levenshtein方法, 手動調整閾值來模糊匹配
- 特別地匹配日期型的entity時使用chrono-python包來將日期轉為自然語言文本
- 然后定義句子與句子計劃一致, 若以下兩個條件成立:
- (se_1,…,se_m)是(pe_1,…,pe_k)的一個子序列
- plan中剩下的entity都已經在plan中之前出現過了
- 該條件考慮這樣一個事實: 大部分未明確的entity都是代詞或者相似的非詞匯話的指代表達(如the former, the latter)
- 這種情況下就一定是指代前文中的某個詞匯了
3.2 測試時間計劃選擇 Test-time Plan Selection
- 每個experts是一個針對plan中某個property的條件概率估計
- 條件概率是訓練集上plan的MLE估計
- 本文使用了如下幾個experts:
- 關系方向 Relation direction
- WebNLG中的manager有68%的表示為is managed by, 此外還可能表示為is the manager of
- 基于此表示為P_dir(d=<–)|manager)=0.68
- 全局方向 Global direction
- 雖然逆向的關系出現概率普遍低于50%, 但是長句中仍然有一兩個的關系是逆向的
- 考慮條件概率p_gd(nr=n|G), 即觀察n條逆向邊在一個輸入G中, 包含|G|個三元組
- 分割趨勢 Splitting tendencies
- 對于每個輸入size, 我們跟蹤所有可能將facts集合分割成特定大小子集的方法
- 如統計p_s(s=[3,2,2]|7)的值, 即輸入size為7, 后來分成了3+2+2
- 關系轉移 Relation transitions
- 考慮每個句子計劃作為一個關系類別的序列: (r_1,r_2,…,r_k,EOS), EOS用于標記序列末
- 計算這個序列的markov轉移概率: p_trans(r_1,r_2,…,r_k,EOS) = 連乘k個轉移概率
- 所有可能的plan都用上述轉移公式計算概率
- 注意一個包含n個三元組的輸入將會生成O(2^(2n)+n*n!)個可能的plan
- 但是對于WebNLG中大部分n<=7, 效率尚可, 當n很大時即圖G很大, 仍需要更優的打分機制, 留作未來工作
- 打分機制用于抽取較優的plan
- 可能替代 Possible Alternatives
- 除了單一的plan選擇, 也可以實現多個plan, 如多個高分plan
- 引入用戶控制, 即用戶決定需要多少個句子, 需要強調的entity以及順序等, 這些留作未來工作
- 同一張圖不同輸出的示例, 各有不同的強調:
- The Dessert Bionico requires Granola as one of its ingredients and originates from the Jalisco region of Mexico
- Bionico is a food found in the Mexico region Jalisco. The Dessert Bionico requires Granola as an ingredient.
- Bionico contains Granola and is served as a Dessert. Bionico is a food found in the region of Jalisco, Mexico.
- 關系方向 Relation direction
4. 計劃實現 Plan Realization
- NMT系統使用了復制注意力機制(copy-attention mechanism)與預訓練的Glove.6B詞向量
- 預訓練的詞向量是用于初始化plans中的關系節點, 以及參考文本中的節點
- 每個句子計劃單獨翻譯
- 一旦文本生成, 在輸入圖G中用完整的entity字符串替換掉entity節點;
- 所有日期型字符串轉化成July 4th, 1776的形式
- 所有帶單位的數字型字符串刪除引號和括號, “5”(minutes)轉為5 minutes
5. 實驗配置 Experimental Setup
- 每個樣本輸入不超過7個三元組
- 測試集分為AB兩部分, 前者用于調優, 后者用于打榜
- 本文在WebNLG挑戰里最好的提交結果與Melbourne(一個end2end的系統取得了最高評分在所有類別的自動評價機制下以及UPF-FORGe, 一種傳統的基于語法的NLG系統評分)比較
- 此外本文還構建了一個end2end的基線模型
- 該模型使用一個set編碼器, LSTM解碼器, 注意力機制, 復制注意機制, 一個神經checklist模型
- entity-dropout和checklist兩大元素是與之前其他系統關鍵的不同之處
- 本文稱之為強神經(StrongNeural)
6. 實驗與結果 Experiments and Results
本文的模型稱為BestPlan
6.1 自動化評價機制
- BLEU
- Meteor
- ROUGE_L
- CIDEr
6.2 手工評價機制
6.3 計劃實現連貫性 Plan Realization Consistency
- 是否所有plan中的entity都出現在了realization中
- plan與realization中的entity是否以相同順序出現
7. 相關工作 Related Work
- 本文的plan selection算法相較太平實, 可以改進
8. 總結
總結
以上是生活随笔為你收集整理的【论文阅读】自然语言生成(NLG)——基于plan思想的Data2Text任务实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 818这些年碰到的假简历真套路(附反套路
- 下一篇: 移动UI 设计有哪些色彩级别