自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

基于深度學(xué)習(xí)方法的對話狀態(tài)跟蹤綜述

人工智能 深度學(xué)習(xí)
在用戶和對話系統(tǒng)的交互過程中產(chǎn)生的對話可以被叫做任務(wù)對話,它是一段由任務(wù)驅(qū)動(dòng)的多輪對話。

[[408715]]

 1. 引言

1.1 研究背景

隨著互聯(lián)網(wǎng)和個(gè)人智能終端的普及和廣泛應(yīng)用,各種各樣的互聯(lián)網(wǎng)應(yīng)用和個(gè)人應(yīng)用如雨后春筍般不斷涌現(xiàn),如出行預(yù)定、網(wǎng)上購物和提醒事項(xiàng)設(shè)置等。這使得人們的日常生活和出行變成越來越方便,但是越來越多的應(yīng)用增加了用戶的時(shí)間成本和使用難度,因此對虛擬個(gè)人智能助手的需求日益增加。對話式人工智能是實(shí)現(xiàn)虛擬個(gè)人智能助手的核心技術(shù),可以分為開放域?qū)υ捪到y(tǒng)和面向任務(wù)的對話系統(tǒng)兩個(gè)大類。然而,人類對話本質(zhì)上是復(fù)雜的、含有歧義的,距離創(chuàng)造出一個(gè)可以面向任意場景的開放域?qū)υ捜斯ぶ悄苋杂泻荛L的路要走。因此,工業(yè)實(shí)踐上聚焦于建立完成特定任務(wù)的對話系統(tǒng),即任務(wù)型對話系統(tǒng)。任務(wù)型對話系統(tǒng)首先通過理解消息、主動(dòng)詢問和解釋澄清來確定用戶的需要,隨后通過調(diào)用應(yīng)用程序接口完成對相關(guān)資源的查詢,最后返回正確的結(jié)果。在用戶和對話系統(tǒng)的交互過程中產(chǎn)生的對話可以被叫做任務(wù)對話,它是一段由任務(wù)驅(qū)動(dòng)的多輪對話。一個(gè)典型的模塊化任務(wù)型對話系統(tǒng)如圖1所示,由四個(gè)關(guān)鍵部分組成:

  •  自然語言理解模塊:將用戶文本消息轉(zhuǎn)化為可以被機(jī)器理解的語義標(biāo)簽,如意圖、槽位和槽值;
  •  對話狀態(tài)跟蹤模塊:在對話中的每一輪基于對話歷史維護(hù)最新的對話狀態(tài),通常表示為一組槽位-槽值對;
  •  對話策略模塊:基于當(dāng)前的對話狀態(tài),決定對話系統(tǒng)的下一步動(dòng)作,比如確認(rèn)用戶的需要,查詢資源庫和提供滿足條件的結(jié)果等。另外,對話狀態(tài)跟蹤和對話策略模塊的組合被稱為對話管理器;
  •  自然語言生成模塊:將對話策略模塊決定的系統(tǒng)對話行為轉(zhuǎn)換成人類的語言,回復(fù)給用戶。

圖1 模塊化任務(wù)型對話系統(tǒng)結(jié)構(gòu)圖

其中,對話狀態(tài)跟蹤的研究是任務(wù)型對話系統(tǒng)領(lǐng)域中十分重要的研究課題之一。具體來說,對話策略和自然語言生成兩個(gè)模塊需要基于當(dāng)前的對話狀態(tài),才能選擇下一個(gè)系統(tǒng)動(dòng)作并生成系統(tǒng)回復(fù)。因而,對話狀態(tài)的正確識(shí)別對于增強(qiáng)任務(wù)型對話系統(tǒng)的整體性能至關(guān)重要。

1.2 動(dòng)機(jī)

近年來,隨著深度學(xué)習(xí)方法在圖像、語音和文本領(lǐng)域的突破,它的應(yīng)用范圍逐漸地?cái)U(kuò)張到對話系統(tǒng)領(lǐng)域。得益于其強(qiáng)大的表示能力,建立在深度學(xué)習(xí)之上的任務(wù)型對話系統(tǒng)的性能不斷提升,逐漸地成為了主流。而對話狀態(tài)跟蹤作為任務(wù)型對話系統(tǒng)的核心模塊,許多基于深度學(xué)習(xí)的對話狀態(tài)跟蹤器(可以被稱作神經(jīng)對話狀態(tài)跟蹤器)也被提出,展現(xiàn)出了優(yōu)異的性能和更強(qiáng)的泛化能力。另一方面,許多基準(zhǔn)數(shù)據(jù)集的提出,如DSTC2[1]、WOZ 2.0[2]、MultiWOZ 2.0[3]和CrossWOZ[4]等,讓使用深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)解決對話狀態(tài)跟蹤任務(wù)成為可能,同時(shí)提供了測試平臺(tái)以廣泛地、公平地評估對話狀態(tài)跟蹤系統(tǒng)的性能。蓬勃發(fā)展的神經(jīng)對話狀態(tài)跟蹤研究呼吁系統(tǒng)性地調(diào)研和分析最新進(jìn)展的工作出現(xiàn)。對此,我們在本篇文章中深入整理總結(jié)了基于深度學(xué)習(xí)方法的對話狀態(tài)跟蹤的發(fā)展歷程。

1.3 對話狀態(tài)跟蹤的新范式

自然語言理解和對話狀態(tài)跟蹤模塊緊密相關(guān)。從模塊的輸出形式來說,兩者都完成了對話的槽位填充,事實(shí)上他們卻扮演了不同的角色。自然語言理解模塊嘗試對當(dāng)前的用戶文本消息進(jìn)行分類,比如意圖、領(lǐng)域類別以及消息中每個(gè)單詞的所屬槽位。也就是說,它通常通過為用戶文本消息中的每個(gè)單詞標(biāo)注槽位標(biāo)簽的方式完成槽位填充。然而,對話狀態(tài)跟蹤模塊不分類或者標(biāo)注用戶消息。而是基于整個(gè)對話歷史,嘗試為預(yù)先定義的槽位列表中的每個(gè)槽位名找到相應(yīng)的槽值。在對話的每一輪,它在到當(dāng)前輪的整個(gè)對話歷史中進(jìn)行檢索,決定哪些內(nèi)容可以被填入槽位列表中的某個(gè)特定槽位中。不難發(fā)現(xiàn),與對話狀態(tài)跟蹤模塊相比,自然語言理解模塊有如下幾個(gè)缺點(diǎn):

  •  它的輸入一般只有本輪的用戶消息,分類過程缺少了系統(tǒng)消息以及對話歷史的幫助;
  •  不能識(shí)別槽值不直接出現(xiàn)在文本中的槽位。例如,用戶在預(yù)定酒店時(shí)要求其房間有無線網(wǎng)絡(luò),此時(shí)“網(wǎng)絡(luò)”槽位的槽值應(yīng)為“是”,該槽值并沒有直接出現(xiàn)在用戶輸入的文本中;
  •  錯(cuò)誤的語義槽識(shí)別結(jié)果可能會(huì)對后續(xù)模塊產(chǎn)生不良影響。

早期的對話狀態(tài)跟蹤方法將自然語言理解模塊的輸出作為對話狀態(tài)跟蹤模塊的輸入,而最近的方法考慮到自然語言理解模塊的諸多限制,直接使用原始用戶消息來跟蹤對話的狀態(tài)。

2. 任務(wù)概覽

在這一節(jié)中,我們首先給出對話狀態(tài)跟蹤的任務(wù)定義,然后簡要描述常用的數(shù)據(jù)集和評價(jià)指標(biāo)。

2.1 任務(wù)定義

對話狀態(tài)

對話狀態(tài)跟蹤的目標(biāo)是,在對話的每一輪,從系統(tǒng)回復(fù)和用戶話語中抽取相關(guān)信息更新對話狀態(tài)。對話狀態(tài)是連接用戶和對話系統(tǒng)的橋梁,包含了對話系統(tǒng)完成一系列決策時(shí)需要的所有重要信息。考慮到諸如跟蹤效率、跟蹤準(zhǔn)確率、領(lǐng)域適應(yīng)性和端到端訓(xùn)練等眾多要求,對話狀態(tài)存在許多的表現(xiàn)形式。接下來以第二屆對話狀態(tài)跟蹤挑戰(zhàn)DSTC2提供的任務(wù)型對話數(shù)據(jù)集為例,簡單介紹該數(shù)據(jù)集的對話狀態(tài)的定義。

在對話中,用戶通過指定約束條件尋找合適的餐廳,也可能要求系統(tǒng)提供某些槽位(如餐廳的電話號(hào)碼)的信息。數(shù)據(jù)集提供了一個(gè)本體(ontology),其中詳細(xì)地描述了所有可能的對話狀態(tài)。具體來說, 中列出了用戶可以詢問的屬性,被叫做可請求槽位(requestable slot),比如餐廳提供的菜品類型或者餐廳的電話號(hào)碼。它也列出了可以被用戶提出作為約束條件的屬性及其可能的取值,這些屬性被叫做可通知槽位(informable slot)。圖2展示了DSTC2中的 的細(xì)節(jié)。因此,某個(gè)對話輪的對話狀態(tài)被定義為三個(gè)部分:

  •  目標(biāo)約束(Goal Constraint):每個(gè)可通知槽位的值都可以由用戶指定,作為用戶達(dá)成某一目標(biāo)(如預(yù)定一個(gè)西苑餐廳周日下午6點(diǎn)的6人桌)的約束條件。槽值可以來自 ,也可以是特殊值 或 。其中,表示用戶對該槽位的取值沒有偏好, 意味著用戶尚未為這個(gè)槽位指定一個(gè)有效的目標(biāo);
  •  被請求槽位(Requested Slots);這些槽位的槽值可以被用戶詢問,應(yīng)該由系統(tǒng)通知給用戶;
  •  當(dāng)前輪的搜索方法(Search Method):搜索方法表明了用戶與系統(tǒng)交互的類別。 表示用戶嘗試發(fā)起一個(gè)約束, 表示用戶需要一個(gè)替代選項(xiàng), 表明用戶想要詢問某個(gè)槽位名對應(yīng)的槽值, 表明用戶想要終止對話,而其他情況的類別都為 。

圖2 DSTC2的本體ontology

在DSTC2關(guān)于對話狀態(tài)的定義中,當(dāng)前輪的搜索方法也可以看作是一個(gè)特殊的槽位 Search_Method,它的取值有5種可能。由此可見,任務(wù)型對話的對話狀態(tài)可以統(tǒng)一定義為一組(槽位,槽值)對,隨著對話的進(jìn)行不停的更新。接下來給出對話狀態(tài)跟蹤任務(wù)的形式化描述。

形式化定義

令 表示一個(gè) 輪對話, 和 分別表示對話第 輪的系統(tǒng)回復(fù)和用戶話語。假設(shè)我們有 個(gè) 預(yù)定義的槽位 ,那么對話第 輪的對話狀態(tài)被定義為 。其中, 表示槽位 的相應(yīng)槽值, 是槽位 的取值空間。把所有槽位的取值空間放在一起,可以構(gòu)建出一個(gè)本體 。

基于對話 和本體 ,任務(wù)被定義為學(xué)習(xí)一個(gè)對話狀態(tài)追蹤器 ,該追蹤器可以有效地捕捉用戶在對話中表達(dá)的意圖。根據(jù)定義可以看出,跟蹤器可能需要在每一輪預(yù)測多個(gè)槽位的值。除此之外,一些槽位的取值空間可能是巨大的,也就是說,這些槽位存在大量的可選值。這些現(xiàn)象讓對話狀態(tài)的預(yù)測變得更有挑戰(zhàn)性。

值得注意的是,我們使用“槽位”這個(gè)術(shù)語表示領(lǐng)域名稱和槽位名稱的組合,從而包含領(lǐng)域和槽位信息。例如,我們使用餐廳-價(jià)格范圍而不是價(jià)格范圍,去表示餐廳領(lǐng)域的價(jià)格范圍槽位。當(dāng)對話包含多個(gè)領(lǐng)域時(shí),這種格式非常有用,它也被許多之前的研究工作廣泛采納。

2.2 數(shù)據(jù)集

神經(jīng)對話狀態(tài)跟蹤器需要一定規(guī)模的面向任務(wù)的對話數(shù)據(jù)集進(jìn)行訓(xùn)練或者驗(yàn)證,同時(shí)在這些數(shù)據(jù)集中每個(gè)對話輪都應(yīng)該有相應(yīng)的對話狀態(tài)。由于面向任務(wù)的對話數(shù)據(jù)獲得難度高且標(biāo)注對話狀態(tài)費(fèi)時(shí)費(fèi)力,大大地增加了人工標(biāo)注工作量。目前大部分方法,采用的訓(xùn)練測試數(shù)據(jù)集主要以DSTC2、WOZ、MultiWOZ和CrossWOZ數(shù)據(jù)集為主,數(shù)據(jù)集的統(tǒng)計(jì)數(shù)據(jù)見表1。

表1 常用任務(wù)型對話數(shù)據(jù)集統(tǒng)計(jì)

其中,CrossWOZ 是中文任務(wù)型對話數(shù)據(jù)集,DSTC2和WOZ 是單領(lǐng)域任務(wù)型數(shù)據(jù)集。

2.3 評價(jià)指標(biāo)

運(yùn)用已經(jīng)構(gòu)建好的開放數(shù)據(jù)集,研究人員可以對神經(jīng)對話狀態(tài)跟蹤器進(jìn)行訓(xùn)練,而判斷已訓(xùn)練的跟蹤器的優(yōu)劣則需要建立一個(gè)通用的評價(jià)標(biāo)準(zhǔn)。評估對話狀態(tài)跟蹤器的常用指標(biāo)是聯(lián)合目標(biāo)準(zhǔn)確率(Joint Goal Accuracy)和槽位準(zhǔn)確率(Slot Accuracy)。

聯(lián)合目標(biāo)準(zhǔn)確率

在對話的每一輪,將對話狀態(tài)跟蹤器的輸出和人工真值標(biāo)注進(jìn)行對比。其中,人工真值標(biāo)注包括了所有可能的(領(lǐng)域,槽位)對的槽值。聯(lián)合目標(biāo)準(zhǔn)確率被定義為每個(gè)槽位的值都被正確預(yù)測的對話輪的比例。如果一個(gè)槽位還未被提及,它的人工真值標(biāo)注被設(shè)為 ,而且值為 的槽位也需要被預(yù)測。聯(lián)合目標(biāo)準(zhǔn)確率是一個(gè)相對嚴(yán)格的評價(jià)指標(biāo),即使一個(gè)對話輪中只有一個(gè)槽位被錯(cuò)誤地預(yù)測,該輪的對話狀態(tài)也是錯(cuò)誤的。因此,一個(gè)對話輪的聯(lián)合目標(biāo)準(zhǔn)確率的取值要么是 ,要么是 。

槽位準(zhǔn)確率

槽位準(zhǔn)確率獨(dú)立地將每個(gè)(領(lǐng)域,槽位,槽位)三元組和其對應(yīng)的人工真值標(biāo)注進(jìn)行比較。與聯(lián)合目標(biāo)準(zhǔn)確率相比,它的評價(jià)粒度更為精細(xì),但不適合評價(jià)對話跟蹤器的整體性能。每個(gè)對話輪中大多數(shù)的槽位未被提及(即槽值為 ),即使槽值全部被預(yù)測為 ,槽位準(zhǔn)確率也會(huì)很高。

3. 現(xiàn)有方法及分類

對話狀態(tài)跟蹤的歷史由來已久。早期的研究工作使用人工設(shè)計(jì)的規(guī)則或者統(tǒng)計(jì)方法實(shí)現(xiàn)對話狀態(tài)的跟蹤。

  •  由于人工總結(jié)的規(guī)則無法覆蓋對話中的所有情形,基于規(guī)則的方法有許多的限制,如有限的泛化性能、高錯(cuò)誤率、較差的領(lǐng)域適配能力等等。
  •  而統(tǒng)計(jì)方法建立在數(shù)據(jù)的概率分布之上,其性能被數(shù)據(jù)中的噪音、歧義、矛盾等嚴(yán)重?fù)p害。

隨著硬件計(jì)算資源的快速提升以及深度學(xué)習(xí)的崛起,研究人員開始考慮把各種各樣的深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)引入到對話狀態(tài)跟蹤器中,代表性的研究工作如DNN[5]、RNN[6]、NBT[7]和TRADE[8]等。這些神經(jīng)對話狀態(tài)跟蹤器在大量的有標(biāo)注數(shù)據(jù)集上訓(xùn)練之后,其性能超越了基于規(guī)則和統(tǒng)計(jì)的方法。相比于早期方法,該類方法將研究者從設(shè)計(jì)規(guī)則的繁雜工作中徹底解放出來,同時(shí)也增加了對話狀態(tài)跟蹤器相對于不完美數(shù)據(jù)的魯棒性。

典型的神經(jīng)對話狀態(tài)跟蹤器以對話歷史、本輪對話和預(yù)定義的槽位列表為輸入,輸出到本輪對話為止的最新對話狀態(tài)。為了更為具體地總結(jié)現(xiàn)有方法的核心特點(diǎn),我們提出了神經(jīng)對話狀態(tài)跟蹤器的通用結(jié)構(gòu),包含三個(gè)部分:特征抽取、狀態(tài)操作預(yù)測和狀態(tài)解碼。

3.1 特征抽取

3.1.1 槽位與對話的特征抽取

由于需要跟蹤對話狀態(tài)中的所有槽位,研究人員關(guān)注如何從對話文本中抽取與每個(gè)槽位相關(guān)的信息,這不僅需要對槽位和對話進(jìn)行語義表示,還可能需要交互式地對兩者進(jìn)行建模。因此,槽位與對話之間的信息交互可以分為兩種類型:

  •  分離式建模;分別表示槽位和對話
  •  交互式建模:獲得的對話表示與槽位相關(guān),槽位表示同樣與對話相關(guān)

分離式建模

Mrkšić等人在2017年提出NBT模型,見圖3,

  •  利用表示學(xué)習(xí)方法分別將候選槽位-槽值對和對話中的詞語嵌入到稠密的單詞向量中,
  •  在狀態(tài)解碼階段,NBT模型才在兩者的表示上進(jìn)行推理計(jì)算,從而判斷該槽位-槽值對是否出現(xiàn)在對話中。

圖3 NBT模型結(jié)構(gòu)圖

這類分離式特征提取方法有如下特點(diǎn):

(1)得到的槽位特征與對話歷史特征互相獨(dú)立;

(2)在一個(gè)對話回合內(nèi),無論槽位-槽值對有多少,對話歷史的特征提取只需要進(jìn)行一次。

交互式建模

如果選擇對候選槽位-槽值對和對話進(jìn)行交互式建模,會(huì)有以下兩個(gè)缺點(diǎn)

(1)對于完整的本體 的依賴:在應(yīng)用時(shí),需要明確每個(gè)槽位的可能取值,無法識(shí)別槽位的未見槽值;

(2)當(dāng)槽位的可選槽值的數(shù)量過多時(shí),這類方法的時(shí)空復(fù)雜度較高。

為了避免以上的缺點(diǎn),研究者轉(zhuǎn)變方向探索建模槽位與對話間關(guān)系的方法。Shan等人[9]提出CHAN(Contextual Hierarchical Attention Network)模型(結(jié)構(gòu)如圖4),

  •  使用slot-word attention機(jī)制從之前每一輪對話中抽取與槽位相關(guān)的信息,
  •  利用slot-turn attention機(jī)制進(jìn)一步地從整個(gè)對話歷史中選取與槽位最相關(guān)的特征。

圖4 CHAN模型結(jié)構(gòu)圖

相比于分離式建模,

  •  聯(lián)合建模槽位和對話歷史可以幫助槽位更精確地定位對話歷史中與該槽位緊密相關(guān)的部分;
  •  然而,聯(lián)合建模的時(shí)空復(fù)雜度高于分離建模。

3.1.2 槽位間的關(guān)系建模

除了建模槽位與對話之間的相關(guān)性,有些工作還考慮到槽位與槽位之間可能存在的關(guān)系[10, 11, 12, 13],如共指和槽值共現(xiàn)等。

  •  共指關(guān)系表示一個(gè)槽位的值來自于另一個(gè)已經(jīng)存在的槽位;
  •  槽值共現(xiàn)指的是槽值間可以有很高的共現(xiàn)概率,如餐廳的名字與它提供的菜品類型高度相關(guān)。

不考慮槽位間關(guān)系的對話狀態(tài)跟蹤器,獨(dú)立地預(yù)測每個(gè)槽位的槽位,忽略了槽位之間存在的聯(lián)系。CSFN-DST[10]和SST[11]模型構(gòu)建了一個(gè)schema graph試圖捕獲不同槽位之間的相關(guān)性。SAS[12]模型計(jì)算了一個(gè)槽位相似度矩陣,從而實(shí)現(xiàn)相似槽位之間的信息流動(dòng)和信息交互。在槽位相似度矩陣中,若兩個(gè)槽位被認(rèn)為相似,兩者之間相似度設(shè)為 ,否則為 。判斷槽位的相似性有兩種方式:(1)計(jì)算不同槽位的名稱和類型之間的余弦相似度,根據(jù)兩個(gè)超參數(shù)判斷是否相似;(2)槽位名稱和類型的K-means聚類結(jié)果。

然而,CSFN-DST和SST模型不具有擴(kuò)展性。在這兩個(gè)模型中,人工構(gòu)建的schema graph不能完全地反映出槽位間的相互關(guān)系,同時(shí)構(gòu)建圖的過程中使用了許多先驗(yàn)知識(shí)。對于SAS模型,一方面,超參數(shù)難以設(shè)定,另一方面,非 即 的相似度設(shè)置方案明顯不合理。除此之外,以上三種方法都只依據(jù)槽位名稱衡量槽位相關(guān)性,可能會(huì)忽略或者高估一些槽位之間的關(guān)系。為了解決上述缺陷,Ye等人[13]提出了STAR模型,利用槽位的名稱和相應(yīng)的槽值更精確地建模槽位關(guān)系。

3.2 狀態(tài)操作預(yù)測

對槽位和對話文本進(jìn)行表示和特征抽取之后,提取后的特征可以被用來確定針對槽位的操作類別,即狀態(tài)操作預(yù)測。根據(jù)不同的槽位更新機(jī)制,我們可以將狀態(tài)操作分為兩個(gè)大類:面向狀態(tài)識(shí)別和面向狀態(tài)更新。采用前者的跟蹤器注重于從整個(gè)對話中抽取狀態(tài),而后者更關(guān)心狀態(tài)跟蹤的效率提升。

面向狀態(tài)識(shí)別的操作

采用這類狀態(tài)操作的方法直接利用提取后的特征預(yù)測從對話開始到當(dāng)前的最新對話狀態(tài),可以不設(shè)置狀態(tài)操作,也可以設(shè)置特殊操作輔助模型完成狀態(tài)識(shí)別。如圖5中的TRADE模型使用三類狀態(tài)操作判斷槽位是否屬于特殊值,即 、 和 。

圖5 TRADE模型結(jié)構(gòu)圖

盡管包括TRADE在內(nèi)的方法已經(jīng)取得了不錯(cuò)的效果,這類方法仍然存在問題:在對話的每一輪,模型都需要預(yù)測從對話開始到當(dāng)前對話為止出現(xiàn)的所有槽位-槽值對。隨著對話的繼續(xù),從越加冗余的對話歷史文本中抽取對話狀態(tài)就越加困難,這類解決方案可以稱之為獨(dú)立方案,如圖6所示。

圖6 獨(dú)立方案示意圖

從方案的表現(xiàn)形式上來說,獨(dú)立方案將包含 輪交互的完整對話的對話狀態(tài)生成問題拆解成了獨(dú)立的 個(gè)子問題,子問題間互不干擾。每個(gè)子問題的解法是把到當(dāng)前輪為止的對話歷史看作一個(gè)整體,直接從其中生成所有已出現(xiàn)的對話狀態(tài)。可以看出這類方法重復(fù)預(yù)測不變槽位的槽值,這一缺陷導(dǎo)致跟蹤狀態(tài)的效率低下,在實(shí)際使用中很難達(dá)到極短響應(yīng)速度的要求。

面向狀態(tài)更新的操作

采用面向狀態(tài)更新操作的方法追求高效地完成狀態(tài)跟蹤,盡可能地減少對不變槽位的重復(fù)計(jì)算,進(jìn)而減少任務(wù)型對話系統(tǒng)的響應(yīng)速度。比如,SOM-DST(Selectively Overwriting Memory for Dialogue State Tracking)模型[14]通過減少冗余計(jì)算和并行跟蹤所有槽位,可以將每輪對話的狀態(tài)跟蹤推理時(shí)間縮減為TRADE模型的 8%。

具體來說,SOM-DST把對話狀態(tài)看作一個(gè)可以選擇性重寫的存儲(chǔ)結(jié)構(gòu)(memory),進(jìn)而將對話狀態(tài)跟蹤解耦成兩個(gè)子任務(wù):

(1)狀態(tài)操作預(yù)測子任務(wù)決定了對memory中的每個(gè)槽位執(zhí)行的操作類型,包括 、 、 和 等操作;

(2)槽值生成子任務(wù)為memory 中需要重寫的槽位生成新的槽值。圖7展示在對話的第 輪,SOM-DST如何更新對話狀態(tài), 操作發(fā)生在第 和 個(gè)槽位上,第 個(gè)槽位的新槽值需要推理并引用第一個(gè)槽位的槽值 “center”。

圖7 選擇性重寫示例圖

如圖8中的模型圖所示,SOM-DST將前一輪對話 、本輪對話 和前一輪的對話狀態(tài) 作為輸入,對本體 中的所有槽位并行處理,輸出本輪的對話狀態(tài) 。實(shí)際上,解耦之后的模型只需要生成需要改動(dòng)的槽位(所有槽位的最小子集)的槽值,狀態(tài)操作預(yù)測器負(fù)責(zé)篩選需要生成新值的槽位,槽值生成器只為被選擇的槽位解碼槽值。減少需要解碼的槽位和對所有槽位并行處理使得SOM-DST模型的平均響應(yīng)時(shí)間達(dá)到了27ms,相比于TRADE模型的340ms,這是一個(gè)更可以被用戶接受的響應(yīng)時(shí)間。

圖8 SOM-DST模型結(jié)構(gòu)圖

與之類似,Lin等人[15]提出最小信念跨度(minimal belief span),認(rèn)為當(dāng)系統(tǒng)與不同領(lǐng)域的API交互時(shí),從頭開始生成對話狀態(tài)是不可擴(kuò)展的。他們提出的MinTL框架基于最小信念跨度,在上一輪的對話狀態(tài)上進(jìn)行 、 和 這三種操作,從而實(shí)現(xiàn)對話狀態(tài)的更新。

我們將這類方法稱為遞進(jìn)方案,如圖9所示,遞進(jìn)方案將每一輪的對話狀態(tài)看作一種明確的數(shù)據(jù)結(jié)構(gòu),在生成當(dāng)前輪的對話狀態(tài)時(shí)不光可以看到對話歷史,還可以利用之前輪已生成的對話狀態(tài)。該類方法可以根據(jù)當(dāng)前輪對話對之前輪的對話狀態(tài)進(jìn)行更新,從而更快速地完成對話狀態(tài)的生成。

圖9 遞進(jìn)方案示意圖

3.3 狀態(tài)解碼

作為神經(jīng)對話狀態(tài)跟蹤器的最后一個(gè)分量,狀態(tài)解碼部分基于前面分量獲得的所有信息完成對槽值的解碼。雖然跟蹤器的目的是從對話中找出某一槽位的槽值,但是面向不同的應(yīng)用場景,可以有不同的方式解碼槽值。

3.3.1 基于預(yù)定義本體

如果應(yīng)用中,槽位的所有可能槽值已知,那么在對話的每一輪,狀態(tài)解碼器可以試圖尋找與對話歷史最相關(guān)的槽位-槽值對。這種解碼方式需要事先知道完整的本體 ,因此歸納為基于預(yù)定義本體 的狀態(tài)解碼器。

多分類解碼器

對于每個(gè)槽位,多分類解碼器從所有可能的槽值中選擇正確的那個(gè),如STAR模型[13]。圖10中,槽位特征 經(jīng)過一個(gè)線性層轉(zhuǎn)換,獲得的 與該槽位所有槽值的向量表示計(jì)算相似度,相似度最高的值作為結(jié)果。

圖10 STAR模型結(jié)構(gòu)圖

二分類解碼器

采用這種解碼器的對話狀態(tài)跟蹤器,一次完成一個(gè)槽位-槽值對和對話歷史的特征抽取?;诔槿『蟮奶卣?,二分類解碼器判斷該槽位-槽值對是否出現(xiàn)在對話之中,如圖3中的NBT模型。

由于每個(gè)槽位需要完成多次完整的模型推理計(jì)算,二分類解碼器增加了系統(tǒng)的響應(yīng)時(shí)間。

3.3.2 基于開放詞表

然而,在任務(wù)型對話系統(tǒng)的實(shí)際應(yīng)用場景下,某些槽位的槽值列表不能完整地獲得。

  •  比如與時(shí)間相關(guān)的槽位,預(yù)約的就餐時(shí)間等,設(shè)計(jì)者很難將所有可能的槽值全部枚舉出來;
  •  也可能因?yàn)闆]有遍歷后端數(shù)據(jù)庫的權(quán)限,對話系統(tǒng)無法訪問到所有已存在的餐廳名稱。

面向這類應(yīng)用場景,許多研究工作設(shè)計(jì)了基于開放詞表的狀態(tài)解碼器直接從對話中找出或者生成槽值。

復(fù)制生成機(jī)制

在一個(gè)槽值的每一步解碼步中,TRADE模型[8](圖5)結(jié)合復(fù)制機(jī)制(copy mechanism)和生成機(jī)制,對兩種機(jī)制得到的詞表概率分布加權(quán)平均,概率最高的單詞作為解碼步的輸出。其中,復(fù)制機(jī)制實(shí)現(xiàn)從對話歷史中選擇值,生成機(jī)制生成未直接出現(xiàn)在對話中的單詞,兩者的結(jié)合提高了對話跟蹤器的實(shí)用性和開放性。

識(shí)別文本跨度

基于文本跨度(text span)的解碼器,通過在對話歷史文本中選取子序列的方式,直接從對話歷史中抽取槽值。如高等人[16]將對話狀態(tài)跟蹤任務(wù)轉(zhuǎn)化為抽取式的問答任務(wù),隨之提出的DST-Reader模型通過預(yù)測子序列的開始和結(jié)束從輸入的對話文本中抽取槽值。

圖11 DST-Reader模型結(jié)構(gòu)圖

如圖11的示意圖所示,模型

  • 將對話文本序列 看作一段篇章(passage),針對每一個(gè)槽位 ,構(gòu)建一個(gè)問題(question)去詢問當(dāng)前對話中的某一個(gè)槽位的槽值是什么,如“what is the value for slot i?”;
  •  若狀態(tài)操作類型為 ,則從對話中選取子序列的開始位置和結(jié)束位置,得到的子序列即為槽值。

3.3.3 混合方法

根據(jù)槽位的槽值可枚舉性,槽位可以被分為可枚舉槽位和不可枚舉槽位。可枚舉槽位指的是該槽位的可能槽值固定不變,如“酒店星級”一般被分為一星至五星。而不可枚舉槽位是之前提到的預(yù)約的就餐時(shí)間和餐廳名稱這類槽位。

上述的兩類狀態(tài)解碼器都是以同等的方式對待所有的槽位。然而,

  • 基于預(yù)定義本體 的狀態(tài)解碼器在面對不可枚舉槽位時(shí),無法解碼出未出現(xiàn)在槽值列表中的值。
  •  基于開放詞表的狀態(tài)解碼器理論上雖然可以生成沒有直接出現(xiàn)在對話中的槽值,但顯然基于預(yù)定義本體 的狀態(tài)解碼器更適合處理可枚舉的槽位。

因此,一些研究工作提出了混合方法,使用兩種狀態(tài)解碼器分別處理可枚舉槽位和不可枚舉槽位。

4.結(jié)論

基于深度學(xué)習(xí)方法的對話狀態(tài)跟蹤模型,即神經(jīng)對話狀態(tài)跟蹤模型,在過去幾年受到研究者的廣泛關(guān)注。針對這一任務(wù)型對話系統(tǒng)中的重要模塊,本文首先介紹了對話狀態(tài)跟蹤任務(wù)的重要性、定義、常用數(shù)據(jù)集以及評價(jià)指標(biāo)。隨后,提出一個(gè)通用框架細(xì)致地梳理了近些年的神經(jīng)對話狀態(tài)跟蹤模型,分為特征抽取、狀態(tài)操作預(yù)測和狀態(tài)解碼三個(gè)階段。

在特征抽取階段,跟蹤器完成對槽位和對話歷史的特征抽取,獲得蘊(yùn)含豐富信息的文本表示;有的模型更進(jìn)一步地對兩者進(jìn)行交互式的建模,得到分別與槽位和對話更為相關(guān)的特征表示,幫助后續(xù)模塊更準(zhǔn)確地跟蹤槽位狀態(tài);更有甚者建模槽位間的特征表示,充分利用槽位間的共指和槽位共現(xiàn)等關(guān)系。在狀態(tài)操作預(yù)測階段,提取后的特征可以被用來確定針對每一個(gè)槽位的操作類別。在每一個(gè)對話輪,面向狀態(tài)識(shí)別的操作幫助跟蹤器在對話歷史中尋找所有槽位的槽值;而面向狀態(tài)更新的操作識(shí)別出需要更新的槽位,在狀態(tài)解碼階段對其槽值進(jìn)行解碼,這減少了冗余的計(jì)算,但可能會(huì)損失一定的跟蹤準(zhǔn)確率。狀態(tài)解碼器將前面分量獲得的所有信息作為輸入,輸出槽位的槽值?;陬A(yù)定義本體的解碼方式需要完整的本體,在每個(gè)槽位的所有可能槽值上完成分類;基于開放詞表的解碼方式直接從對話歷史中獲得槽值,可以通過復(fù)制加生成的模式,也可以通過識(shí)別文本跨度在對話歷史中確定包含槽值的連續(xù)子序列;混合方法對可枚舉和不可枚舉的槽位分別采用第一種和第二種解碼方式,從而同時(shí)保證了對話狀態(tài)跟蹤的準(zhǔn)確率、實(shí)用性和開放性。 

 

責(zé)任編輯:龐桂玉 來源: 機(jī)器學(xué)習(xí)算法與自然語言處理
相關(guān)推薦

2022-10-26 15:41:38

深度學(xué)習(xí)Deepfake機(jī)器學(xué)習(xí)

2017-08-07 10:08:29

深度學(xué)習(xí)分類體系信息檢索

2018-03-15 15:40:39

廣告點(diǎn)擊率PaddlePaddlTensorflow

2018-03-26 20:28:24

深度學(xué)習(xí)

2021-11-12 15:16:32

深度學(xué)習(xí)數(shù)據(jù)合成人工智能

2024-10-08 08:19:19

2023-11-20 09:53:13

自動(dòng)駕駛系統(tǒng)

2017-05-08 23:02:56

敏捷學(xué)習(xí)GitHubissue

2016-12-28 15:19:22

大數(shù)據(jù)機(jī)器學(xué)習(xí)銷售預(yù)測

2016-09-30 15:33:02

集成學(xué)習(xí)機(jī)器學(xué)習(xí)算法

2019-05-22 14:28:08

AI人工智能深度學(xué)習(xí)

2009-09-28 10:40:28

.NET學(xué)習(xí)

2018-04-23 14:49:31

表征句子深度學(xué)習(xí)自然語言

2009-09-08 09:25:46

思科認(rèn)證學(xué)習(xí)方法思科認(rèn)證

2010-05-04 17:48:53

2009-09-16 10:16:29

CCNA學(xué)習(xí)方法CCNA

2009-06-17 15:06:39

Java 學(xué)習(xí)方法

2024-10-08 15:20:00

AI安全

2018-09-06 11:25:46

機(jī)器學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)人工智能

2017-07-06 13:18:37

深度學(xué)習(xí)應(yīng)用問題及趨勢
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)