RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

強化學習在智能對話上的應用介紹

電子設計 ? 來源:電子設計 ? 作者:電子設計 ? 2020-12-10 19:02 ? 次閱讀

本文主要介紹深度強化學習在任務型對話上的應用,兩者的結(jié)合點主要是將深度強化學習應用于任務型對話的策略學習上
來源:騰訊技術工程微信號

背景

本文主要介紹深度強化學習在任務型對話上的應用,兩者的結(jié)合點主要是將深度強化學習應用于任務型對話的策略學習上,目前工業(yè)界普遍使用的策略都是基于規(guī)則的,顯然基于規(guī)則的方法有人力成本高、泛化能力差等缺點,而強化學習恰好能解決這些問題,而且強化學習只需要一些目標,無需大量的訓練語料,避免了深度學習的一大缺點。

首先簡單介紹一下強化學習和對話系統(tǒng),然后再具體介紹一下深度強化學習在任務型對話中是怎么應用的,最后給出訓練的結(jié)果和總結(jié)。以下舉例部分都會以訂餐場景為準。

強化學習

強化學習系統(tǒng)由智能體(Agent)、狀態(tài)(state)、獎賞(reward)、動作(action)和環(huán)境(Environment)五部分組成。

Agent:智能體是整個強化學習系統(tǒng)核心。它能夠感知環(huán)境的狀態(tài)(State),并且根據(jù)環(huán)境提供的獎勵信號(Reward),通過學習選擇一個合適的動作(Action),來最大化長期的Reward值。簡而言之,Agent就是根據(jù)環(huán)境提供的Reward作為反饋,學習一系列的環(huán)境狀態(tài)(State)到動作(Action)的映射,動作選擇的原則是最大化未來累積的Reward的概率。選擇的動作不僅影響當前時刻的Reward,還會影響下一時刻甚至未來的Reward,因此,Agent在學習過程中的基本規(guī)則是:如果某個動作(Action)帶來了環(huán)境的正回報(Reward),那么這一動作會被加強,反之則會逐漸削弱,類似于物理學中條件反射原理。

Environment:環(huán)境會接收Agent執(zhí)行的一系列的動作(Action),并且對這一系列的動作的好壞進行評價,并轉(zhuǎn)換成一種可量化的(標量信號)Reward反饋給Agent,而不會告訴Agent應該如何去學習動作。Agent只能靠自己的歷史(History)經(jīng)歷去學習。同時,環(huán)境還像Agent提供它所處的狀態(tài)(State)信息。

Reward:環(huán)境提供給Agent的一個可量化的標量反饋信號,用于評價Agent在某一個時間步所做action的好壞。強化學習就是基于一種最大化累計獎賞假設:強化學習中,Agent進行一系列的動作選擇的目標是最大化未來的累計獎賞。

State:狀態(tài)指Agent所處的環(huán)境信息,包含了智能體用于進行Action選擇的所有信息,它是歷史(History)的一個函數(shù):St = f(Ht)。

可見,強化學習的主體是Agent和環(huán)境Environment。Agent為了適應環(huán)境,做出的一系列的動作,使最終的獎勵最高,同時在此過程中更新特定的參數(shù)。實際上可以把強化學習簡單理解成是一種循環(huán),具體的工作方式如下:

智能體從環(huán)境中獲取一個狀態(tài)St;

智能體根據(jù)狀態(tài)St采取一個動作at;

受到at的影響,環(huán)境發(fā)生變化,轉(zhuǎn)換到新的狀態(tài)St+1;

環(huán)境反饋給智能體一個獎勵(正向為獎勵,負向則為懲罰)。

對話系統(tǒng)

對話系統(tǒng)是為了某種目的設計的用以與人類對話的機器,這種目的可以是為了特定的任務,也可以是簡單的與人聊天,前者就是任務型對話,后者為非任務型對話系統(tǒng)。

任務型的對話主要為了一個特定的目標進行對話,比如常見的訂飛機票、訂餐等。對于任務型對話工業(yè)界主要實現(xiàn)方案還是為pipeline的方式,即按照SLU、DST、DPL和NLG的方式組織整個對話系統(tǒng),在學術界上end-to-end的方式也越來越受到關注,與pipeline不同,end-to-end模型使用一個模塊,并與結(jié)構(gòu)化的外部數(shù)據(jù)庫交互。

非任務型的對話則類似于微軟小冰和人進行一些聊天。非任務型的對話主流實現(xiàn)方案有兩種:生成式和檢索式。隨著seq2seq模型的越來越成熟,生成式方案也越來越受到關注,這種方法是把對話任務看成是一種翻譯任務,認為Q(人說的話)和A(機器的回復)是兩種語言。檢索式則是系統(tǒng)有很多訓練數(shù)據(jù),其中包括擴展問題(每個問題都對應一個標準問)、答案(每個標準問對應一個答案),當用戶說一句話時,則系統(tǒng)用這句話作為query在訓練集中進行檢索和排序得到匹配的問題,最后根據(jù)這個問題的標準問查詢答案。當然也有這兩種方式的結(jié)合,即使用生成式生成候選的答案,再使用檢索式進行匹配和排序得到精準回答。

DQN+任務型對話

DQN

Q-learning是強化學習中的一種,在Q-learning中,我們維護一張Q值表,表的維數(shù)為:狀態(tài)數(shù)S * 動作數(shù)A,表中每個數(shù)代表在態(tài)s下可以采用動作a可以獲得的未來收益的折現(xiàn)和——Q值。我們不斷的迭代我們的Q值表使其最終收斂,然后根據(jù)Q值表我們就可以在每個狀態(tài)下選取一個最優(yōu)策略。由于這里主要介紹強化學習的在任務型對話中的應用,不進行詳細的介紹,具體的可參照《極簡Qlearning教程

DQN是深度學習與強化學習的結(jié)合,即使用神經(jīng)網(wǎng)絡代替Q-learning中Q表。在普通的Q-learning中,當狀態(tài)和動作空間是離散且維數(shù)不高時可使用Q-Table儲存每個狀態(tài)動作對的Q值,但是當狀態(tài)和動作空間是高維或者連續(xù)時,使用Q-Table不現(xiàn)實,而神經(jīng)網(wǎng)絡恰好擅長于此。因此將Q-Table的更新問題變成一個函數(shù)擬合問題,相近的狀態(tài)得到相近的輸出動作。具體來說,比如我們現(xiàn)在還有一個Q值表,神經(jīng)網(wǎng)絡的作用就是給定一個狀態(tài)s和動作a,預測對應的Q值,使得神經(jīng)網(wǎng)絡的結(jié)果與Q表中的值接近。不過DQN的方式肯定不能繼續(xù)維護一個Q表,所以將上次反饋的獎勵作為逼近的目標,如下式,通過更新參數(shù) θ 使Q函數(shù)逼近最優(yōu)Q值 。因此,DQN就是要設計一個神經(jīng)網(wǎng)絡結(jié)構(gòu),通過函數(shù)來擬合Q值,即:

當然這也會帶來一些問題:

神經(jīng)網(wǎng)絡需要大量帶標簽的樣本進行監(jiān)督學習,但是強化學習只有reward返回值,如何構(gòu)造有監(jiān)督的數(shù)據(jù)成為第一個問題,而且伴隨著噪聲、延遲(過了幾十毫秒才返回)、稀疏(很多State的reward是0)等問題;

神經(jīng)網(wǎng)絡的前提是樣本獨立同分布,而強化學習前后state狀態(tài)和反饋有依賴關系——馬爾科夫決策;

神經(jīng)網(wǎng)絡的目標分布固定,但是強化學習的分布一直變化,比如你玩一個游戲,一個關卡和下一個關卡的狀態(tài)分布是不同的,所以訓練好了前一個關卡,下一個關卡又要重新訓練;

過往的研究表明,使用非線性網(wǎng)絡表示值函數(shù)時出現(xiàn)不穩(wěn)定等問題。

針對以上問題的具體解決方案如下:

構(gòu)造標簽:通過Q-Learning使用reward來構(gòu)造標簽(對應問題1),如上所述,用神經(jīng)網(wǎng)絡來預測reward,將問題轉(zhuǎn)化為一個回歸問題;

經(jīng)驗回放:通過experience replay(經(jīng)驗池)的方法來解決相關性及非靜態(tài)分布問題(對應問題2、3);

網(wǎng)絡結(jié)構(gòu):使用一個神經(jīng)網(wǎng)絡產(chǎn)生當前Q值,使用另外一個神經(jīng)網(wǎng)絡產(chǎn)生Target Q值(對應問題4)。

構(gòu)造標簽

對于函數(shù)優(yōu)化問題,監(jiān)督學習的一般方法是先確定Loss Function,然后求梯度,使用隨機梯度下降等方法更新參數(shù)。DQN則基于Q-Learning來確定Loss Function。我們想要使q-target值和q-eval值相差越小越好。DQN中的損失函數(shù)是:

這里yi先可以認為是狀態(tài)s和動作a對應的標準Q值,實際根據(jù)后面的雙網(wǎng)絡結(jié)構(gòu),yi是根據(jù)上一個迭代周期或者說target-net網(wǎng)絡的參數(shù)計算出的q-target值,跟當前網(wǎng)絡結(jié)構(gòu)中的參數(shù)無關,yi的計算如下,然后整個目標函數(shù)就可以通過隨機梯度下降方法來進行優(yōu)化

經(jīng)驗回放

經(jīng)驗池的功能主要是解決相關性及非靜態(tài)分布問題。具體做法是把每個時間步agent與環(huán)境交互得到的轉(zhuǎn)移樣本 (st, at, rt, st+1) 儲存到回放記憶單元,要訓練時就隨機拿出一些(minibatch)來訓練。(其實就是將對話的過程打成碎片存儲,訓練時隨機抽取就避免了相關性問題),上面的代碼是將每次神經(jīng)網(wǎng)絡預測的結(jié)果保存在經(jīng)驗池中,下面則是在每次訓練的時候從經(jīng)驗池中隨機取出一個batch進行訓練。

雙網(wǎng)絡結(jié)構(gòu)

雙網(wǎng)絡結(jié)構(gòu)即構(gòu)建兩個神經(jīng)網(wǎng)絡:target_net和eval_net,eval_net用來進行參數(shù)訓練和預測Q值,而target_net是eval_net的一個副本,這個網(wǎng)絡使用來預測目標Q值(構(gòu)造標簽中的yi),相當于監(jiān)督訓練中的label。target_net是每隔一定時間更新為eval_net的參數(shù),這樣在一段時間里目標Q值使保持不變的,一定程度降低了當前Q值和目標Q值的相關性,提高了算法穩(wěn)定性。

任務型對話

任務型對話的主要目標是完成一個任務如訂餐、訂票等,在這種場景下僅僅給用戶一個回答是遠遠不夠的,還需要真正的理解一個用戶的意圖,以及這個意圖相關的信息,如果一個用戶想訂餐,那么需要知道用戶的就餐具體日期、用餐人數(shù)等等,所以就需要進行槽提取等等,同時還需要關注當前的獲取的信息量以及未獲取的信息等。

SLU:語言理解,把用戶的自然語言表述的文本處理成預先設計好的機器能夠理解的形式,通常為意圖和槽值對。如用戶輸入“我想訂一個明天的位子”,則SLU的輸出應該是intent=訂餐,slot=date:明天(實際中提取出的槽值需要做標準化處理)。這個部分意圖識別可作為分類任務或者檢索任務,而槽提取一般可用作為NER問題。

DST:對話狀態(tài)跟蹤,根據(jù)對話歷史管理每一輪對話的輸入,并且預測當前對話的狀態(tài)。比如使用規(guī)則的方法:有哪些槽已經(jīng)填充,哪些未填充等、哪些已經(jīng)問過usr、問過多少次等等。

DPL,對話策略學習,根據(jù)當前對話狀態(tài)做出下一步的反應。比如根據(jù)DST知道有哪些槽未填充,用規(guī)則的方法選取一個優(yōu)先級最高的槽提問。DPL的任務是一個序列決策的過程,因此常用的方法有規(guī)則方法、CRF,以及本文的重點:強化學習方法。

NLG,自然語言生成,根據(jù)系統(tǒng)得到的動作生成客戶易理解的自然語言文本。這個很容易理解,如果DPL的動作是問用戶就餐人數(shù),在系統(tǒng)里面可能是類似request{“num”:“UNK”},NLG的作用就是把這個轉(zhuǎn)換成“請問有幾個人就餐呢”。

應用

將強化學習應用于任務型對話的主要是把強化學習應用于DPL學習對話的動作決策,即強化學習中的Action對應于對話中的下一步動作,比如是回答用戶的某個問題還是問用戶下一個槽相關的問題等等。用強化學習的一個好處就是不需要訓練數(shù)據(jù),因為訓練過程中只需要Simulator根據(jù)設置的goal進行回答和提問就可以了。實際應用中將DM作為強化學習中的Agent,反饋一些信息給用戶。DQN中的reward是根據(jù)對話的結(jié)果進行提供,分為兩個階段,一個是在對話未完成的時候,每增加一輪對話就給一個-1的獎勵,另外就是在對話完成時,如果完成任務則給一個(max_turn-turn)的獎勵,否則獎勵為-(2* max_turn)。

另外,在訓練強化學習的過程中,實際上并不需要用到SLU和NLG,在Agent和User Simulator之間只需要通過結(jié)構(gòu)化的數(shù)據(jù)進行交流,而不需要轉(zhuǎn)換成自然語言,比如:


表示“2019年2月18日和2019年2月19還有空位置”:


則表示“我想訂一個5人的位子,什么時間有空位子?”。

Simulator:模擬用戶行為,Simulator的主要做法就是針對Agent反饋的信息,結(jié)合自身的goal進一步與Agent進行交互,比如是回答Agent問題,還是進行反問,是完成goal結(jié)束對話,還是拒絕。這相當于使用的是規(guī)則的方式,不過也有使用模型的方式構(gòu)建一個world model來模型用戶。

Goal:任務的目標,在訂餐任務中我們設置的目標形式如下圖。強化學習能夠很好的應用于任務型對話的一大原因就是這些goal本身并不需要人為一個個編寫,只需要根據(jù)業(yè)務需求根據(jù)各個槽完成生成即可,這就避免了大量的訓練預料。

除了以上,還需要根據(jù)實際的情況虛構(gòu)一個數(shù)據(jù)庫以模擬實際使用中的數(shù)據(jù)查詢,如餐廳在某些條件下是不是有剩余位子等。

效果

成功率

獎勵

對話輪數(shù)

舉例(此處不考慮SLU和NLG,在真正訓練過程中都是使用了結(jié)構(gòu)化的數(shù)據(jù)),假設我們的goal如下:

使用強化學習的的結(jié)果如下:

人工翻譯過來(其實就是基于模板方法的NLG)如下:

上面的結(jié)果還是很好的,與針對這個場景精心設計的規(guī)則的方法基本上能保持一致:

總結(jié)

可以加入額外懲罰和獎勵,加快收斂,比如上一章節(jié)中的效果是不加任何額外懲罰和獎勵,可以看出大概在5000個epoch的時候就已經(jīng)收斂,但是如果加入一些答非所問、回答重復問題等懲罰則不到1000個epoch就會收斂,另外加入這些懲罰和獎勵也會讓網(wǎng)絡朝著我們想要的方向進行訓練,得到更好的結(jié)果。

目前我們主要在訂餐的任務上進行了試驗,這個任務還比較簡單,需要找一個更為復雜的場景進行驗證。

訓練過程中只是使用了slot是否填充等,對于已經(jīng)填充的slot未利用slot的值,對此需要進一步探究slot的值對于DPL的決策是否有影響。

一旦在線上使用的槽的個數(shù)需要發(fā)生變化就必須重新進行訓練,非常耗時。

Goal和Simulator還是一種比較“僵硬”的做法,需要在實際線上的使用過程中不斷訓練,這樣可以使得對話決策更智能更符合用戶預期。

更多騰訊AI相關技術干貨,請關注專欄騰訊技術工程

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 人工智能
    +關注

    關注

    1791

    文章

    47183

    瀏覽量

    238245
  • 強化學習
    +關注

    關注

    4

    文章

    266

    瀏覽量

    11246
收藏 人收藏

    評論

    相關推薦

    【「具身智能機器人系統(tǒng)」閱讀體驗】+初品的體驗

    動態(tài)互動的。 該理論強調(diào)智能行為源于智能體的物理存在和行為能力,智能體必須具備感知環(huán)境并在其中執(zhí)行任務的能力。具身智能的實現(xiàn)涵蓋了機器學習、
    發(fā)表于 12-20 19:17

    《具身智能機器人系統(tǒng)》第1-6章閱讀心得之具身智能機器人系統(tǒng)背景知識與基礎模塊

    搜索策略等規(guī)劃算法,強調(diào)了軌跡規(guī)劃需要考慮機器人的運動學約束。軌跡規(guī)劃中,機器人需要同時考慮最大曲率、加速度限制等物理約束,生成平滑可行的運動軌跡。強化學習規(guī)劃控制中的應用也很有創(chuàng)新性,通過
    發(fā)表于 12-19 22:26

    螞蟻集團收購邊塞科技,吳翼出任強化學習實驗室首席科學家

    近日,專注于模型賽道的初創(chuàng)企業(yè)邊塞科技宣布被螞蟻集團收購。據(jù)悉,此次交易完成后,邊塞科技將保持獨立運營,而原投資人已全部退出。 與此同時,螞蟻集團近期宣布成立強化學習實驗室,旨在推動大模型強化學習
    的頭像 發(fā)表于 11-22 11:14 ?561次閱讀

    如何使用 PyTorch 進行強化學習

    的計算圖和自動微分功能,非常適合實現(xiàn)復雜的強化學習算法。 1. 環(huán)境(Environment) 強化學習中,環(huán)境是一個抽象的概念,它定義了智能體(agent)可以執(zhí)行的動作(acti
    的頭像 發(fā)表于 11-05 17:34 ?280次閱讀

    谷歌AlphaChip強化學習工具發(fā)布,聯(lián)發(fā)科天璣芯片率先采用

    近日,谷歌芯片設計領域取得了重要突破,詳細介紹了其用于芯片設計布局的強化學習方法,并將該模型命名為“AlphaChip”。據(jù)悉,AlphaChip有望顯著加速芯片布局規(guī)劃的設計流程,并幫助芯片在性能、功耗和面積方面實現(xiàn)更優(yōu)表現(xiàn)
    的頭像 發(fā)表于 09-30 16:16 ?419次閱讀

    人工智能如何強化智能家居設備的功能

    ,以配合用戶的生活習慣與作息。本文將為您介紹人工智能將如何強化智能家居設備的功能,以及由芯科科技(Silicon Labs)所推出的解決方案,將如何增進智能家居設備的功能性與安全性。
    的頭像 發(fā)表于 08-27 10:46 ?880次閱讀
    人工<b class='flag-5'>智能</b>如何<b class='flag-5'>強化</b><b class='flag-5'>智能</b>家居設備的功能

    科大訊飛發(fā)布星火極速超擬人交互,重塑智能對話新體驗

    8月19日,科大訊飛震撼宣布了一項關于其明星產(chǎn)品——星火語音大模型的重大革新,即將推出的“星火極速超擬人交互”功能,預示著人機交互的新紀元。該功能定于8月30日正式登陸訊飛星火App,面向廣大用戶開放體驗,引領一場前所未有的智能對話風暴。
    的頭像 發(fā)表于 08-20 16:46 ?348次閱讀

    PythonAI中的應用實例

    Python人工智能(AI)領域的應用極為廣泛且深入,從基礎的數(shù)據(jù)處理、模型訓練到高級的應用部署,Python都扮演著至關重要的角色。以下將詳細探討PythonAI中的幾個關鍵應用實例,包括機器
    的頭像 發(fā)表于 07-19 17:16 ?1057次閱讀

    人工智能對軍事領域的影響有哪些

    智慧華盛恒輝人工智能對軍事領域的影響深遠且廣泛,主要體現(xiàn)在以下幾個方面: 智慧華盛恒輝一、作戰(zhàn)效能與智能化 智慧華盛恒輝提升作戰(zhàn)效能: 人工智能通過大數(shù)據(jù)分析和機器學習算法,能夠快速處
    的頭像 發(fā)表于 07-16 09:55 ?521次閱讀

    通過強化學習策略進行特征選擇

    更快更好地學習。我們的想法是找到最優(yōu)數(shù)量的特征和最有意義的特征。本文中,我們將介紹并實現(xiàn)一種新的通過強化學習策略的特征選擇。我們先討論強化學習
    的頭像 發(fā)表于 06-05 08:27 ?346次閱讀
    通過<b class='flag-5'>強化學習</b>策略進行特征選擇

    中美首次人工智能政府間對話瑞士日內(nèi)瓦召開

    據(jù)外交部美大司官方微博“寬廣太平洋”發(fā)布,中國與美國之間的人工智能政府間對話首次會議于2024年5月14日瑞士日內(nèi)瓦召開。
    的頭像 發(fā)表于 05-15 09:20 ?366次閱讀

    淺談AI技術SSD控制器中的應用

    當前AI技術蓬勃發(fā)展,深度學習、強化學習等技術不斷突破,使得AI圖像識別、語音識別、自然語言處理等領域取得了顯著成果。
    的頭像 發(fā)表于 04-20 10:02 ?870次閱讀
    淺談AI技術<b class='flag-5'>在</b>SSD控制器中的應用

    用于對話式AI的高性能MEMS麥克風,助力改進用戶體驗

    對話式人工智能(AI)是一個快速發(fā)展的機器學習(ML)領域,旨在使人機交互更加自然直觀。
    的頭像 發(fā)表于 03-12 09:44 ?833次閱讀
    用于<b class='flag-5'>對話</b>式AI的高性能MEMS麥克風,助力改進用戶體驗

    名單公布!【書籍評測活動NO.30】大規(guī)模語言模型:從理論到實踐

    強化學習展開,詳細介紹各階段使用的算法、數(shù)據(jù)、難點及實踐經(jīng)驗。 預訓練階段需要利用包含數(shù)千億甚至數(shù)萬億單詞的訓練數(shù)據(jù),并借助由數(shù)千塊高性能GPU 和高速網(wǎng)絡組成的超級計算機,花費數(shù)十天完成深度神經(jīng)網(wǎng)絡
    發(fā)表于 03-11 15:16

    一文詳解Transformer神經(jīng)網(wǎng)絡模型

    Transformer模型強化學習領域的應用主要是應用于策略學習和值函數(shù)近似。強化學習是指讓機器與環(huán)境互動的過程中,通過試錯來
    發(fā)表于 02-20 09:55 ?1.4w次閱讀
    一文詳解Transformer神經(jīng)網(wǎng)絡模型
    RM新时代网站-首页