---
# System prepended metadata

title: Towards Conversational AI
tags: ['20200829']

---

# Towards Conversational AI
###### tags: `20200829`

陳蘊儂
台灣大學資訊工程系 / 助理教授

## 語言技術市場的演進
Apple Siri 2011開始
Google Now 2012
Microsofr Cortana 2014
Google Assistant 2016
這些系統都是綁定平台或設備 如手機、筆電

Amazon Alexa/Echo 2014 雖然技術能力比較差，但結合銷售平台、且便宜。
Google Home 2016 技術比較好，但強在資料庫與多語言
Apple HomePod 2017 強調音樂播放能力，因此需要處理 
Facebook Portal 2019 主打視訊，最近疫情的關係，所以今年(2020)賣得好!

開始變成一個獨立的音箱
最開始只能撥音樂，現在可以買東西

## Why Natural Language?
1. Turing test (跟人一樣做對話)
2. information comsumpiton (總結資訊)
3. Task completion (完成任務，例如定鬧鐘、買東西)
4. Decision Support (有點像推薦系統)

因此可以區分為 
1. social chatting (沒有任務性的)
2. Task-Oriented chatting (要完成任務的)

## Two Branches of Conversational AI
>### Chit-Chat 
>希望聊天的時間越長越好
>紀錄
>#### Full Duplex (聲音對話，紀錄是6hr 3min, @China)
>#### Message-Based Conversations (訊息對話，紀錄是75xx個對話) 

>### Task Oriented Chat
>希望完成任務，聊天時間越短越好

這兩個差別，越來越小了

## 深度學習複習

## Task-Oriented Dialogues
語音訊號 -> 
語音辨識 -> 
語言了解 -> (讓語音變成電腦可以認識的文字)
Semantic Frame -> (讓電腦區別特定的訊息)
對話管理 -> 對語言中的任務做分類、評價，並且利用已知的、或設定好的方式，來做反應
natural language generation ->產生對話， 回應

### Language Understanding (LU)
1. Domain Identification 對語言訊號的domain來分類，所以是一個分類問題
2. User Intent Detection 對某個domain內的要求再做分類，所以也還是一個分類問題
3. Slot Filling 對資訊的labeling，然後對這個label做一些分類，並且產生output
4. Slot tagging (有很多方法)

因為NN的發展，因此似乎可以一次做
#### Joint Semantic Frame Parsing
讓他自己學

#### Contextual Language Understanding
由於我們在對話的時候，我們會因為習慣的關係把前後文自己連接起來，然後做判斷

但電腦不容易，不太容易去做前後的追朔與比較

> End-to-End Memory Networks

### Dialogue Management (DM)
#### Dialogue State Tracking
當前面的分類處理完以後，要對對話做管理
並且處理一些可能存在的錯誤，並且做判斷

多個domain的處理(也就是搜尋多個資料庫)並且做出綜合判斷

#### Dialogue Policy Optimization

#### Issues in NLG
Issue
> NLG 傾向產生更短的句子，但記得句子的內容與回應要能夠符合原來的問題或需求
> NLG 可能產生文法不對的句子

## Recent Trend
Recent Advances in NLP
> ELMo&BERT的出現
>> 理論上可以拿來用，但仍然有使用上的問題
>> 例如：語音辨識的錯誤，使得翻出來的文字是錯誤的，這使得ELMo與BERT雖然很強，卻會辨識出奇怪的結果
>> 
>> 所以，要解決語音辨識的問題

Chit Chat Bot
有一些對話是可以利用已知的對話來做
因此可以捨棄一些搜尋資料庫所需要花的時間

但這樣的對話，會產生一些問題
1. 機器會不管你講甚麼，但都產生一些general的文字 > 用MMI來解，上下文有連結關係
2. Response incosnsitency 回應的內容在上下文不一樣。> Personalized Response Generation 在學習的過程，讓同一個人產生的資料形成一個資料庫，都從這個資料庫去出發
3. Dialogue-level optimization via RL > 讓對話拉得更長
4. No Grounding (回答的結果，雖然句子正確，但似乎與問題沒有關係)=>有點像task orinantedy的作法 =>利用一些文本來做訓練
5. Multimodality & Personalization > 要知道使用者的習慣的行為，來讓機器人判斷要怎麼碩做
6. 同理心 (empathy in Dialoigue System) > 要透過文字、語音與表情，來決定後續的動作 > Cogntivie Behaviror Therapy (CBT,辨別憂鬱症的表達，提供正面的訊息或是通知醫生)





