NLG ≠ 機器寫作

來自專欄量子位28 人贊了文章

允中 轉自 百鍊智能

量子位 出品 | 公眾號 QbitAI

編者按:NLG——自然語言生成,是近年AI領域最受關注的前沿方向之一,也是爭議和論辯最激烈的領域之一,甚至去年還引發過2位AI大神的隔空激辯。

但對於更多關注者來說,可能首要任務還是在於追本溯源,知道NLG究竟是什麼?原理如何?能做及不能做什麼?

所以我們推薦這篇不錯的專家專欄,原作者是AI創業公司百鍊智能——或者說他們就是NLG領域的縱深前行者,核心創始團隊源自北大天網實驗室,在AI領域從業多年,而且難能可貴的是,本文還是有技術有應用舉例的科普佳作。

好了,一起開始學習吧~

引子

2017年5月31日,包括 Aaron Courville(《Deep Learning》一書作者)在內的五位作者,在 arXiv 上提交了一篇論文《Adversarial Generation of Natural Language》,提出了一種新的基於生成對抗網路(Generative Adversarial Networks, GAN)的自然語言生成(Natural Language Generation,NLG)方法,在自動寫詩這件事情上取得了非常好的效果,但這並不是重點。

重點是,這篇文章引發了自然語言處理(Natural Language Processing, NLP)大神 Yoav GoldGerg和深度學習(Deep Learning, DL)大神 Yann LeCun 的論戰。

Yoav 先是在 Twitter 上發了一篇推文表明自己不喜歡這篇論文的工作,之後又寫了一篇Medium長文(圖1)表達自己的觀點:

「拜託你們這幫搞深度學習的人,別再抓著語言不放並聲稱自己已經解決語言的問題了!」,認為這篇論文並沒有解決自然語言生成(NLG) 的問題。

YoavGoldBerg的 Medium 長文截屏(後來Yoav修改了這篇文章)

隨後,Yann LeCun 在 Facebook 上對 Yoav 的觀點進行了反擊(圖2),然後又反覆數個回合。

Yann LeCun 在 Facebook 上的反擊

引發這次爭論的主題就是自然語言生成(以下簡稱 NLG),也是接下來系列文章里我們要討論的主題。

何為 NLG?

提到 NLG,首先會聯想到一個不知疲倦的機器人,可以每周7×24小時地奮筆疾書,產出各種各樣的小說、情書、劇本、新聞、財報等各種類型的文字。

現實中,的確也有一些機器生成的書出版(例如用165行 Python 代碼自動生成的書《World Clock》,由 Harvard Book Store press 出版 ),甚至在 Amazon 上有了一定的銷量和用戶好評(例如 Philip M. Parker 用機器寫了一大堆書在 Amazon 上賣)。

但實際的 NLG,更多的是基於已有文本/數據/圖像生成自然語言形式的文本,離真正的「機器寫作」差的還很遠。

NLG是自然語言處理(NLP)的重要組成部分。NLP研究如何實現自然語言形式的人機交互,其研究涉及語言學、計算機科學和數學等多個領域。

NLP 包含自然語言理解 (Natural Language Understanding,NLU) 和自然語言生成(Natural Langauge Generation, NLG)兩個重要方向,如下圖所示。

自然語言處理主要技術領域

其中,NLU 旨在讓機器理解自然語言形式的文本內容。從 NLU 處理的文本單元來講,可以分為詞(term)、句子(sentence)、文檔(document)三種不同的類型:

詞層面的基礎 NLU 領域包括分詞(漢語、緬甸語、泰語等非拉丁語系語言需要)、詞性標註(名詞、動詞、形容詞等)、命名實體識別(人物、機構、地點等)和實體關係提取(例如人物-出生地關係、公司-所在地關係、公司收購關係等);

句子層面的基礎 NLU 領域包括句法結構解析(獲取句子的句法結構)和依存關係解析(獲取句子組成部分的依賴關係);

文檔層面的基礎 NLU 領域包含情感分析(分析一篇文檔的情感傾向)和主題建模(分析文檔內容的主題分布)。

與NLU不同,NLG旨在讓機器根據確定的結構化數據、文本、音視頻等生成人類可以理解的自然語言形式的文本。根據數據源的類型,NLG可以分為三類:

  • Text to text NLG,主要是對輸入的自然語言文本進行進一步的處理和加工,主要包含文本摘要(對輸入文本進行精簡提煉)、拼寫檢查(自動糾正輸入文本的單詞拼寫錯誤)、語法糾錯(自動糾正輸入文本的句法錯誤)、機器翻譯(將輸入文本的語義以另一種語言表達)和文本重寫(以另一種不同的形式表達輸入文本相同的語義)等領域;
  • Data to text NLG,主要是根據輸入的結構化數據生成易讀易理解的自然語言文本,包含天氣預報(根據天氣預報數據生成概括性的用於播報的文本)、金融報告(自動生成季報/年報)、體育新聞(根據比分信息自動生成體育新聞)、人物簡歷(根據人物結構化數據生成簡歷)等領域的文本自動生成;
  • Vision to text NLG,主要是給定一張圖片或一段視頻,生成可以準確描述圖片或視頻(其實是連續的圖片序列)語義信息的自然語言文本,同時 text to vision 的自動生成近幾年也有一些有趣的進展。

近年來,隨著CNN(Convolutinal Neural Network)、RNN(Recurrent Neural Network)、GAN(Generative Adversarial Network)等深度學習技術的應用,NLP(尤其是 NLG)領域取得了明顯的進展,也湧現了一些有趣的 NLG 應用。

有趣的 NLG 應用

在 Text to text NLG 領域,令人矚目的進展當屬 GNMT (Google Neural Machine Translation)。它基於帶 Attention 機制的 Encoder(8層LSTM)- Decoder(8層LSTM) 框架(圖4),通過引入殘差連接(Residual Connection),並基於 Google 打造的 TPU (Tensor Processing Unit)進行並行化處理,高效地進行 GNMT 模型的訓練和預測。

GNMT 的 Encoder-Decoder 框架

GNMT 相對傳統的 PBMT(Phrase-Based Machine Translation)模型,在多個主要語言對的翻譯中將翻譯誤差降低了 55%-85% 以上。

同時,Google 在 GNMT中借鑒遷移學習(Transfer Learning)的思路,通過不同語言對的翻譯模型共享參數,實現了未經訓練的語言對之間的自動翻譯(即「Zero-Shot Translation」)。

在 Data to text NLG 領域,一項有趣的工作是Facebook AI Research 2016年發表在 EMNLP 會議上的一篇論文研究了如何利用人物的結構化數據(通常是表格化的數據)生成人物 biography 的工作,並通過抽取維基百科的 infobox 和正文第一段話,自動化地構建了一個大型平行語料庫 WikiBio,包含了超過70萬條平行數據和超過40萬的詞表。

它基於條件神經語言模型,利用表格數據作為條件,進行自然語言形式的 biography 文本生成(圖5)。

它將表格數據以局部條件(local conditioning,描述之前生成的詞序列與表格數據的關係)和全局條件(global conditioning,利用表格中所有的域和對應數據對人的特徵進行建模)的形式加入到神經網路模型中,並設計了一種 copy 機制使模型可以靈活考慮表格中出現過的詞。

基於這樣的機制,可以達到類似下面例子的結果。

人物 biography 文本生成案例

Vision to text NLG 領域的典型應用當屬 Image Captioning(看圖說話),它的輸入為一張圖片(Video Captioning 中輸入為一個圖片序列,但技術方案類似),輸出是描述該圖片語義的自然語言文本。

下圖中有一些有趣的例子。

一些有趣的 vision-to-text NLG 例子

同機器翻譯的GNMT方案類似,Image Captioning 的技術方案也基於 Encoder-Decoder 框架,只是 Encoder 部分的神經網路從 LSTM 替換成了 CNN,用以準確刻畫圖片的語義信息。

同 GNMT 類似,引入 Attention 機制來智能選擇影響 Decoder 部分生成文字的圖像空間特徵。具體的模型結構如圖7所示。

Image Captioning 模型結構

NLG 技術的能力邊界

NLG 技術,一個核心在於NL,即自然語言形式的文本,更易於普通人閱讀;另一個核心在於G,即生成,但不是創作,不涉及深入地分析、提煉和推理。

在 Text to text NLG 中,本質上是將輸入文本進行處理,映射到一個語義向量空間中,然後再用輸出文本來表達同樣的語義,而這一過程中語義信息本身並沒有經過進一步加工。

Data to text NLG 的目的是將結構化數據嵌入自然語言文本中,便於普通人的快速閱讀,即使有一些看似推理的結果(例如天氣預報中根據下周七天的天氣數據,輸出「未來一周大部分時間晴好,僅周三有短時小雨」這樣的文本),其實也是人為定義了新的結構化數據欄位。

Vision to text NLG 中也是如此,只是用自然語言文本來表達原先圖像表達的語義,也不涉及語義的進一步加工。

換句話說,目前的 NLG 技術並不能實現人類的「寫作」過程 - 其中包括對大量輸入信息的理解、提煉、分析、推理和重組,而僅能夠給出輸入信息(文本、數據和圖像)的自然語言形式的表示。

NLG 技術生成的文本,單篇文本看起來會非常規範和優質,但把大量的生成文本放在一起,就會感覺出濃濃的機器味兒 - 更為模式化且缺少靈活性。因此,用「機器寫作」來作為 NLG 的別稱,是有點過於高看其能力了。

即便如此,由於機器可以不知疲倦且客觀地工作,NLG 技術在下述場景中有了廣泛的應用:

  • 需要利用海量數據生成大量的自然語言文本,且零錯誤,如企業年報等
  • 需要極高的時效性,全天候檢測熱點/異常點,並實時生成文本內容,如突發新聞快訊等;
  • 生成客觀不帶情感的內容,如財經快訊、體育快訊等;
  • 根據受眾特點,對相同的輸入文本/數據/圖像,生成符合受眾特點的個性化文本內容,如商品文案等。

預告

這會是一個關於NLG技術的系列文章,讀者定位是對NLG技術感興趣的所有人,所以在寫作過程中,會兼顧客觀性與趣味性,也會兼顧深度與廣度,期望能幫助大家開闊思路。

接下來系列文章的主題會是:

  • 工業界中的 NLG
  • 學術界中的 NLG
  • NLG 關鍵技術方案
  • 用 GAN 來 NLG
  • 行業大咖和八卦

敬請期待!

傳送門

關於百鍊智能,歡迎移步量子位前情報道:

《又一北大系AI公司浮出水面,百鍊智能宣布獲千萬元天使投資》

如果你對該話題感興趣,也歡迎投稿與我們交流,郵件可發送:[email protected],或添加量子位小助手,加入NLP專業交流群。

歡迎大家關注我們的專欄:量子位 - 知乎專欄

誠摯招聘

量子位正在招募編輯/記者,工作地點在北京中關村。期待有才氣、有熱情的同學加入我們!相關細節,請在量子位公眾號(QbitAI)對話界面,回復「招聘」兩個字。

量子位 QbitAI· 頭條號簽約作者

?? ? 追蹤AI技術和產品新動態

推薦閱讀:

相关文章