帶你瞭解自然語言處理文字生成方向

語言: CN / TW / HK

theme: healer-readable

本文正在參加「金石計劃 . 瓜分6萬現金大獎」


自然語言處理

每次有人問:你是搞什麼的?

(對於普通人)我:搞AI的。

(對於程式設計師)我:搞演算法的。

我一般不會說我是做自然語言處理(Natural Language Processing,NLP) 的,因為大部分人並不知道這是個什麼東西。

大部分人提起AI就只知道他是人工智慧,腦子想的都是alpha go打敗李世石或者其他和機器人相關的東西,而實際上機器人這只是人工智慧的一個小分支。

看一下下圖,下圖來自史忠植老師編著的《人工智慧》教材,這張圖是展示了和人工智慧相關的學科以及人工智慧的研究和應用領域。

b7b9ed2577433e30e3fd3fe9b5bf5d2.jpg

我目前所做的方向就是那個語言和影象理解,比較相關的學科是數學。我現在做的東西需要紮實的數學基礎做支撐。

講個自然語言處理裡最簡單的東西:語言模型。語言模型就是根據人類的自然語言不斷學習,去模仿人類說話。比如我們平時用的輸入法,你輸入完一個詞之後他會給你提示你可能需要的下一個詞的內容。

image.png

語言模型學習的過程中就像小朋友學說話一樣,不斷獲得句子,不斷學習這個詞下邊最可能接什麼話,就這樣,當我們訓練出一個好用的語言模型的時候,我們就可以讓它幫我們說話。現在很火的語言模型比如GPT-3啊之類的。

NLG VS NLU

自然語言處理有兩個重要的分支:

  • 自然語言生成(Natural language generation,NLG)

    將文字潛在表示轉化為具體的、自洽的自然語言文字。

  • 自然語言理解(Natural language understanding,NLU)

    對輸入文字進行消歧歸納,獲得能表達文字中心思想的規範化表示。

通俗來講, 自然語言理解的目標是讓機器能夠更好地理解人類說的話,但是自然語言生成的目標是讓機器能夠像人一樣說話。

自然語言生成的應用非常廣泛,比如對話系統(各種chatbot)、資料增強、故事生成等等。

想起來之前我們做的一個工作,當時是要控制細粒度的情感進行生成。然後我們思考了一下應用前景。

我:所以控制文字生成情緒幹嘛呢?做水軍嗎?

看一下文字生成幾個簡單的例子:

故事生成

image.png 第一個例子是故事生成,給模型一段話,模型根據這段話中的故事線關鍵詞進行生成,要求生成的內容是要能符合這些關鍵詞的,並且還要按照關鍵詞給出的順序進行生成。

給定文字: 今天好開心能吃到甜品,感覺自己好幸福。

故事線: 開心→好幸福

給你幾個句子:

  1. 今天我閨蜜給我熬了粥,我好幸福啊,我很開心

× 這是不按順序來,這樣的故事生成器是不符合標準的。

  1. 開心能遇到你,我感覺自己好幸福

    規定的詞用上了,並且順序是對的,這是個好的故事生成器。

  2. 這個豬,我們能看到裡面的瓣膜,(聞一下),好腥啊,我了。

    × 這種故事生成器,狗都不用!!!

但是如果我們仔細看了左邊那個圖我們會發現,和我上邊說的不太一樣,因為它:

給定的文字:John needed a computer for his birthday. He worked hard to earn money. John was able to buy his computer. He went to the store and bought a computer. John was happy with his new computer.(約翰過生日需要一臺電腦。他努力工作掙錢。約翰買得起他的電腦。他去商店買了一臺電腦。約翰對他的新電腦很滿意。)

生成的文字:The man was very happy, because he bought a new computer. He went to the store. He needed a computer. He bought the computer. He installed the computer.

可以看到雖然是使用關鍵詞生成了,但是好像並沒有按照它要求裡寫的一樣按照關鍵詞順序生成。

聊天機器人

image.png

右邊是一個對話文字生成的例子,我們可以看到對話內容。

機器人第二句話是要回覆上一句,回覆的方式千千萬。 - 如果是損友,可以來根菸可以幫她解壓。 - 如果是渣男可以回覆“……”或者亂碼錶示自己無語不想說話。 - 如果是好朋友應該認真紓解安慰她。

你做聊天機器人是給人添堵的嗎?肯定不是,所以你要防止出現第一第二種回覆的情況,也就是不要產生毒資料或者無效文本回復,這就涉及到了受控文字生成,也是我目前在做的東西,之後有機會我再講。

最後說個題外話,多輪對話不能只回復當前這句話,還要考慮之前的內容,所以對話生成當年的一個熱點是多輪對話。我感覺天貓精靈的多輪對話做的就可以(天貓精靈快給我打錢),有天貓精靈的朋友們可以試一下,喊了天貓精靈之後喊一句小愛同學。


結語

最後總結一下,我是蘿莉安,我是搞人工智慧的,再具體一點叫自然語言處理,再具體一點叫文字生成,再具體一點叫可控文字生成