聊天機器人應用實務

Practical Applications of Chatbots

簡介

Introduction

Chatbot聊天機器人分類

General Purpose

終極目標: 無所不知

Task-Oriented

負責特定工作

中文版 Eliza (心理醫師)

Alice Bot

(Artificial Linguistic Internet Computer Entity)

訂位、打包清單

點餐、訂單追蹤

Chatbot聊天機器人技術

Rule-based (規則主導/專家模式)

        作法:樣式比對(pattern matching)

Corpus-based (詞庫主導/統計模式)

        作法:採用大量詞庫進行訓練

        詞庫來源: crowdsourcing, wikipedia

問答集

詞庫也是問答集的形式、大數據的概念

ChatGPT橫空出世

Generative Pre-trained Transformer (GPT)

生成式AI (Generative)

預訓練 (pre-trained)

轉換器 (Transformer)

ChatGPT橫空出世

Chatbot聊天機器人架構

語音辨識

自然語言理解

狀態追蹤

自然語言產生

文字轉語音

對話策略

ChatGPT

名詞釋疑

  • 任務 Task
  • 預訓練 Pre-trained
  • 轉換器 Transformer

自然語言處理NLP

自然語言理解 (Natural Language Understanding) 

自然語言處理 NLP

命名實體辨識
Name Entity Recognition

詞類標記
Port-Of-Speech tagging

文字分類
Text Categorization

機器翻譯
Machine Translation

自然語言理解 NLU

自然語言推理
Natural language Inference

語意解析
Semantic Parsing

文字摘要
Text Summarization

情感分析
Sentiment Analysis

問答系統
Question-Answering System

對話代理
Dialogue Agent

自然語言處理 (Natural Language Processing) 

名詞釋疑

文本分析基本任務: 斷詞、詞性標記、實體辨識 

"我和順仔早上5點登上「福建號」"

我和<person>順仔</person>早上5點登上「<ship>福建號</ship>

斷詞(tagger)

(命名)實體辨識
name-entity-recognition

原文

我  和  順仔  早上  5點   登上   福建號

          r   c    nr        t        t         v        nr

詞性標記
part-of-speech

專業術語 + 分類

應用:索引、Hyperlink

任務

文本分析常見任務

情感分析(Sentiment Analysis)

負面評價Negative

這家店的售後服務完全不行

餐點還不錯啦,但是還有改進空間

中性評價neutral

中性評價neutral

正面評價positive

很讚喔,超喜歡你們家的產品

分類問題

情感分析

任務

文本分析常見任務

編碼

輸入層

隱藏層

輸出層

輸出結果分類

真實

政治宣傳

惡搞

反諷

假新聞

帶風向

片面資訊

新聞分類

分類問題

任務

文本分析常見任務

機器翻譯

迴歸問題

Transformer

輸入英文: milk drink I

輸出法文: Je bois du lait <eos>

編碼器

解碼器

編碼器輸出

 

解碼器輸入

<sos>: 開始符號

<eos>: 結束符號

任務

文本分析文本生成

文本生成

輸入: 一句話

輸出: 一篇短文!

經過多個語言模型...

迴歸問題

任務

預訓練

訓練資料很難取得:以訓練評價分類器為例

預訓練

語言模型language model

圖片來源: http://arXiv:2005.14165

使用「隨機梯度下降」法進行「預訓練」

各式各樣的訓練資料

同類型資料: 語意情境

預訓練

預訓練

遷移學習(transfer learning): 研究者可以專注於目標領域資料集

機器學習傳統做法

資料集1

資料集2

資料集3

任務1

任務2

任務3

Transfer Learning

來源領域任務

資料集S

來源領域知識

目標領域任務

大量

資料集T

小量

預訓練

兩階段

預訓練

預訓練

需進行編碼: 

任務與預訓練編碼問題

訓練模型擅長直接處理數值資料

[編碼方法1] One-hot encoding: 一字一編號

<SOS> I played the piano

1

2

3

4

5

6

7

8

編碼

輸入層

隱藏層

輸出層

以向量表示

編號

詞彙

<SOS>

編號

0     0      0      0      0      0      0      0  

One-hot encoding問題: 詞彙很多(資料稀疏)、編碼與語意無關...

dog

文本分析的詞彙很多

字詞編碼:向量很長、資料稀疏

 向量長度 =詞彙數量(10000)

one-hot encoding

任務與預訓練編碼問題

One-hot encoding問題: 詞彙很多(資料稀疏)、編碼與語意無關...

one-hot encoding

字彙語意相近,不一定有比較近的「距離」

近?

遠?

Coffee跟Laptop的距離比Tea近?

任務與預訓練編碼問題

[編碼方法2]: Word Embedding(詞嵌入)

字彙語意相近,編碼必須給予比較近的「距離」

任務與預訓練編碼問題

Word Embedding

詞彙

7D to 2D

7D to 2D

維度

Word2Vec

任務與預訓練編碼問題

任務與預訓練脈絡(context)

Word Embedding就是編碼問題的解答嗎?

千金散盡還復來

千金最近好嗎?

他向來一諾千金,說到做到

同樣的詞 會有相同的 詞嵌入

But...

同樣的詞,不同前後文,經常有不同意涵

脈絡(Context)的影響

Vaswani et al., Attention is All You Need https://arxiv.org/abs/1706.03762

自注意(self-attention)機制

Encoder

Decoder

Attention Layer

Attention Layer

Attention Layer

轉換器 Transformers模型

轉換器

96個Transformer編碼器

句子 ➠ 預測下一個字

轉換器

轉換器 Transformers模型

96個Transformer編碼器

句子 ➠ 預測下一個字

轉換器 自注意力機制(8/9)

Key

Query

Value

轉換器

轉換器? Transformer運作

輸入:Anthony Hopkins admired Michaeal Bay as a great director.

RNN循環神經網路

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

依序

Transformer

平行

平行

平行

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

詞嵌入

Transformers架構可採用平行計算