網軍、機器、人

王勻、林尚廷、林秉軒

Idea and Motivations

靠北工程師

一大堆留言

建立自己的網軍!!

Our Goal

Comment Bot

讓機器人在網路上到處根據貼文留言

what we expect...

一句話證明你是會計系的 \(\Rightarrow\) 三大報表會不會?

AI換臉真是偉大的發明啊! \(\Rightarrow\) 真的偉大發明

工程車輪胎爆胎怎麼辦? \(\Rightarrow\) 叫工程師換輪胎呀

Idea of Implementation

question

separated words

 word cut

 word2vec

encoded vectors

AI換臉真是偉大的發明啊!

AI,換臉,真是,偉大,的,發明,啊,!

\begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix}

RNN

vectors representing corresponding answer

\begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix}
\begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix} \begin{bmatrix} 0.2\\ 10\\ -12\\ -0.1\\ \vdots \end{bmatrix}

encoded vectors

Idea of Implementation

DEMO

Algorithms and tools

word2vec dataset: wikipedia

直接下載維基百科公開的備份檔,以訓練gensim模型

句子

單字

向量

回應

  • 基於前綴詞典實現高效的詞圖掃描,生成句子中漢字所有可能成詞情況所構成的有向無環圖(DAG)
  • 採用了動態規劃查找最大概率路徑,找出基於詞頻的最大切分組合
  • 對於未登錄詞,採用了基於漢字成詞能力的HMM 模型,使用了Viterbi 算法

句子

單字

向量

回應

吃葡萄不吐葡萄皮

\(\rightarrow\) 吃,葡萄,不吐,葡萄,皮

今天天氣真好!

\(\rightarrow\) 今天,天氣,真好,!

神經網路是非常神奇的技術

\(\rightarrow\) 神經,網路,是,非常,神奇,的,技術

回家的路上遇到示威遊行
\(\rightarrow\) 回家,的,路,上,遇到,示威,遊行

句子

單字

向量

回應

word2vec model

句子

單字

向量

回應

  1. Skip-grams(SG):給定單詞,預測此詞的上下文單詞。
  2. Continuous Bag of Words(CBOW):從給定的上下文單詞,去預測該單詞。

generate similar

句子

單字

向量

回應

學校 \(\approx\) 中小學校 院校 該校 小學

未來 \(\approx\) 將來 過去 今後 將會 希望 願景

公車 \(\approx\) 市公車 接駁車 低底盤 公車處

電腦 \(\approx\) 個人電腦 計算機 筆電 筆記型

句子

單字

向量

回應

句子

單字

向量

回應

LSTM

LSTM

LSTM

LSTM

LSTM

encoded

POST

句子

單字

向量

回應

LSTM

LSTM

LSTM

LSTM

LSTM

encoded

COMMENT

句子

單字

向量

回應

dialog corpus: PTT

  • 將PTT八卦版的文章與其推文整理成一問一答的形式,目前噪音頗大
  • FB粉專(例如靠北工程師)的貼文常以圖片呈現,從圖片中讀取文字較為麻煩

句子

單字

向量

回應

PTT 語料庫

comment bot 的回答

Q: 地震會先上網PO文通常哪種人?
A: 笑勇迷水準整天罵人垃圾
Q: 地震會先上網PO文通常哪種人?
A: 痛快勇迷水準整天罵人一堆
Q: 打得贏肥宅
T: 打不贏重力繞著肥宅做圓周運動
Q: 打得贏肥宅
A: 打不贏重力繞著肥宅做弧度運動
Q: 留髮留頭
A: 還好早禿頭
Q: 留髮留頭
A: 還好之前禿頭

停用詞(stop words)通常不具意思,在做NLP有時會將他移除。為了訓練容易,這裡的模型將停用詞移除詞庫

句子

單字

向量

回應

Result

Result

資料量少:幾乎可以完全模仿

資料量大:需要多一點的epochs才能得到合理的回答

Difficulties

  • 語料庫

​八卦版的對答時常不合邏輯,因此需要一般對話的語料庫先行訓練,再以八卦版的對話微調(仍在蒐集語料庫)

  • 停用詞

​停用詞的加入使模型訓練結果較差,應以演算法輔助解決

  • 客觀評估數據

目前仍無法以客觀的數據表示結果得好壞,僅以人為方式評估

Applications

商業用途

  • 針對社群的特性 (e.g. 初音ミク同好會、音樂遊戲討論區、高中數學討論區...) 下相對應的廣告。
  • 廠商可以用來宣傳商品、政府可以行政策推廣。
  • 用以減省行銷部門以及公司公關經營的人力成本。

消息分辨

  • 機器人畢竟還是難以模仿人類情感,故留言會有相似的基本模式或特徵。
  • 若利用GAN的技術,將識別程式與網軍機器人一同作為訓練,即可辨別某句留言是否為機器人帳號所為。
  • 反資訊滲透 -- 可以防堵不正當的資訊或被批量製造的假消息。

資訊戰?

  • 自動化散布訊息
  • 控制社群媒體
  • 吸引群眾的目光
  • 帶動社會輿論的風向

其他應用

  • 說話風格的模擬 -- 藉聊天紀錄微調模型
  • 粉絲專業管理 -- 自動回覆簡單留言 

Thanks for your listening

YTP Final

By thomaswang2003

YTP Final

  • 424