自然語言處理-第十二期-Chatbot聊天機器人開篇

背景

自然語言處理-第十二期-Chatbot聊天機器人開篇

這週末本來打算繼續研究NLP的,但是碰到了一個 Chatbot(聊天機器人)的模型。真的很有意思。想想自己能做一個類似微軟小冰一樣的妹子就很興奮。

本來想展示下自己與機器模型的聊天記錄。但是這個週末模型折騰了很久,而且我的電腦也實在跑不動那麼大的數據庫。所以後續給大家帶來。本篇旨在闡述自己的思考及該模型的一些概況。

Chatbot

相信大家對微軟小冰都有印象,能夠聊天能夠扯淡。雖然其黑化成種族主義,但是體驗過的同學都會有感覺,她與以前的機器人不同。或者我們能給到小冰“能扯淡”、“個性化”等等標籤。但是它與傳統的chatbot不同在哪裡呢?

另外有必要說明的是,目前有兩種chatbot:一種帶任務的如Siri,一種不帶任務瞎扯淡就行的 如小冰。 我們所有提到的chatbot都是小冰類型的。

傳統的Chatbot

說是傳統機器人,其實現在大部分的應用上面都是這種。這種機器人其實就是一個簡單的Mapping過程,在設計時窮舉或者建立一個問題庫。 大家接觸最多的應該是 淘寶的-旺旺機器人。這種其實就是識別關鍵字自動回覆或者就是簡單回覆。

感覺傳統的chatbot比較死板就對了


神經網絡Chatbot

從下圖可以看出來小冰與傳統機器人至少在以下幾個方面不同:

  • 其可以應對開放性的問題,並且能夠給出答覆;
  • 其答覆的字數不限定;
  • 感覺該chatbot是有一定個性,即語言傾向的;
  • 從某種程度上,其回覆的是人類的語言;
自然語言處理-第十二期-Chatbot聊天機器人開篇

模型

下圖,可以很形象或者很簡單的說明,chatbot的機制。下圖可以理解為一個聊天的過程,也可以看作一個訓練的過程。

自然語言處理-第十二期-Chatbot聊天機器人開篇

那麼實現以上過程的模型有哪些不同呢:

首先,與以前遇到的神經網絡模型不同,前期網絡模型多用於概率判斷或者圖像識別。該模型輸入值為 一個文本,輸出值為一個文本;

其次,如果大家已經熟悉了Word Embedding 的過程(請參考NLP系列第四期),那麼可以知道每個詞就是一個向量。那麼換個角度,上面的問題是,輸入一系列帶順序的向量,輸出一系列帶順序的向量;

然後,輸出的文本,字數不限定;


Chatbot實現以上點,所用的模型是Seq2Seq模型。從下圖至少可以看出,該模型採用了兩個 循環神經網絡來處理文本輸入和輸出。對於Seq2Seq模型,就不在開篇中過多介紹,會在後續帶來

自然語言處理-第十二期-Chatbot聊天機器人開篇

下期預告

本期插了個隊,Chatbot模型可以帶來開放性的語言處理和問答處理。是一個很有意思的模型。希望下一期能整好模型,給大家帶來我與chatbot的對話。


分享到:


相關文章: