小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

聊聊對話系統(tǒng):多輪對話

 520jefferson 2022-05-05 發(fā)布于北京

上一期談到,query理解很大程度上是為后續(xù)的結(jié)果生成服務(wù)的,這一期就來講講,在系統(tǒng)理解了用戶query后,是怎么處理產(chǎn)生回復發(fā)送到用戶手里的。

這個小系列的文章記錄:

    對話系統(tǒng)最為獨特的,就是這個多輪的問題,我自己本身對這塊不熟,也是在努力的學習下,有一些自己的感受和思考。

    多輪的核心——對話管理

    人能夠進行多輪對話,很大程度和我們能記住并且使用溝通過程產(chǎn)生的信息和共識,這里值得注意的是,有兩個關(guān)鍵的能力,一個是記住,另一個是使用。而現(xiàn)有的大量技術(shù)也都是圍繞著這兩點來搭建的,甚至,比較統(tǒng)一的形成了一個“對話管理模塊”,即Dialog Management,DM。

    對話管理承擔了多輪對話中信息的記錄和使用,所謂的記錄,就是對話過程的跟蹤,一般被稱為'Dialog State Tracking','DST'對話狀態(tài)跟蹤,而所謂的使用,有一個跟有意思的說法,叫做對話策略,'Dialog Policy',DP。這點和我們?nèi)粘5牧奶旌芟?,我們在對話過程中,一方面是能接收雙方交換的信息,另一方面也會根據(jù)自己的目標或者想法制定不同的對話策略,從而達到自己的目標。

    當然了,這里的拆解的部分,在現(xiàn)實應用中并不一定是獨立拆分開的,可能是組合而成的端到端形式,也可能是拆解分開的形式,這個是根據(jù)現(xiàn)實情況來進行選擇的。

    • 端到端,從經(jīng)驗上,往往具有很強的泛化能力,在DSTC之類的比賽中,AB榜上端到端的情況似乎會更加穩(wěn)定,但是缺點是模型內(nèi)可控性比較差,而且對數(shù)據(jù)質(zhì)量和數(shù)量的依賴性會比較高。
    • 拆分式在設(shè)計上會更簡單,而且具有較強的可拓展性,拼裝起來可控性也比較高,但是泛化能力會比較差。

    拆分式的對話管理

    因為把整個對話管理模塊進行了拆解,因此整個對話從信息的梳理存儲到對話策略的制定都會很明確,大家看起來也會非常好理解,這里先講這個。

    先用最常見的就是任務(wù)型對話作為例子,這個例子前面是提到過的:

    Q:我要訂機票。
    A:要訂從哪里出發(fā)的機票呢?
    Q:從深圳,到北京的。
    A:好的。希望什么時候出發(fā)?
    Q:明天上午10點左右吧。
    A:好的,系統(tǒng)給你找到XXX航班,明天10點05分起飛,預計13點到達,請問是否合適?
    Q:可以的。
    A:已經(jīng)為您預定XXX航班,請點擊付款完成最終操作。記得提前辦理值機手續(xù)喲。

    這是一段訂機票的任務(wù)型對話,這段任務(wù)型對話其實并不復雜,目標很明確,就是要引導用戶把所有信息都填充清楚后,進行訂機票的操作,列舉下來就這幾件事:

    • 開頭的意圖識別,識別為訂機票的意圖,進入多輪。
    • 拉出需要填寫的信息列表,并且引導用戶填寫這些信息:
      • Query理解持續(xù)提取用戶回復的信息。
      • 對話狀態(tài)記錄用戶的填表信息。
      • 對話策略確認仍然缺少的信息,選擇追問策略和完成策略,當然還包括一些打斷后的策略。

    顯然,這種方式是非常規(guī)則化簡單化的,而隨著逐漸復雜,對話策略也就會逐步復雜,逐步迭代為一些類似類似用樹或者用有限狀態(tài)自動機來對這些規(guī)則進行合理化管理。

    既然是拆解,那我們就拆解來看這些任務(wù)怎么做。

    對話流程中的DST

    DST主要用于對對話過程中的內(nèi)容就進行管理維護,這是為了下一步對話策略進行分析做基礎(chǔ)的,最簡單的方式其實就是直接用緩存把對話內(nèi)容記下來,形成可解釋的部分,如下面一個格式,只列舉部分字段:

    {
      'destination''北京',
      'originator''深圳',
      'takeoff_time_date'''
    }

    而后對話策略根據(jù)缺失的信息進行追問即可。

    而后,隨著內(nèi)容逐漸豐富,場景逐漸復雜,甚至因為輪數(shù)增加部分信息也有了更新和變化,這種固定格式的并不一定能夠滿足我們的需求,于是有了更多的改進措施,也逐步向模型、泛化的方式進行。

    首先是對話狀態(tài)的表示,不難看出對話狀態(tài)數(shù)跟意圖和槽值對的數(shù)成指數(shù)關(guān)系,因此需要考慮構(gòu)造合理的模式來實現(xiàn),例如隱含信息狀態(tài)、貝葉斯更新等。然后是狀態(tài)的更新和轉(zhuǎn)移,這種隨著任務(wù)逐步復雜,是最快進行模型化的,從CRF到RNN,甚至用到遷移學習等,也從單一任務(wù)或者槽位的跟蹤逐步升級為多任務(wù)多目標的跟蹤,在DSTC大型賽事中被驗證具有很好的效果。此處已經(jīng)是一個非常完整的體系了,我也并不專業(yè),這里不展開,大家可以看看其他大佬的博客,我這里列舉一些好文章吧:

    • 任務(wù)型對話系統(tǒng)中狀態(tài)追蹤(DST):https://zhuanlan.zhihu.com/p/51476362
    • 一起來看看最新的對話狀態(tài)追蹤(DST)模型:https://zhuanlan.zhihu.com/p/115019681
    • 多輪對話狀態(tài)追蹤(DST)--模型介紹篇:https://zhuanlan.zhihu.com/p/40988001

    對話流程中的DP

    DP就是對話策略,對話策略是根據(jù)現(xiàn)有的query理解和DST,制定對話返回策略的部分,這部分一旦敲定,其實最終的回復也就差不多了,所以重要性也可想而知。

    常見的對話策略都還比較簡單,例如上面的任務(wù)型,其實就是比較簡單的用一些規(guī)則,根據(jù)缺失的信息制定回復策略進行追問即可,這里甚至不需要很多復雜的操作,規(guī)則即可,但這也就僅限在一些比較簡單任務(wù)了,對于復雜的任務(wù),進行復雜的策略分析和預測就顯得非常必要,DPL(對話策略學習)應運而生。

    考慮到很多對話策略的文章直接就本著強化學習去聊了,但是我個人其實并不太想直奔那塊,而是想把對話策略先當成分類來去聊(雖然我也知道,強化學習某種意義上其實和分類問題很像),即在現(xiàn)有信息下,我們把策略的選擇當成是一個分類問題來去看,有了消息,我們該采取哪種策略,這點來看他實打?qū)嵕褪且粋€分類問題,主要原因是,它涉及的信息很多,最重要把他們綜合起來,在各種策略中找到一個比較好的,這無疑就是一個分類問題,再升級一下,可能就是一個召回+TOP1排序的問題:

    • 選擇的依據(jù)很多,DST信息,現(xiàn)有Query的信息,用戶畫像,甚至機器人的畫像(人設(shè)信息),還有一些策略規(guī)則等。
    • 策略上,先默認現(xiàn)在的機器人沒有自己生成新的回復風格的能力,那如無人工添加,就是從現(xiàn)有策略進行選擇了。
    • 可用的策略并不唯一,例如用戶說了個模糊的結(jié)果,可以是追問(特殊疑問句,如你說的是啥)、可以是疑似問(猜測你要問啥)、甚至是調(diào)侃(沒想到你說的我居然沒聽懂,是不是我沒學好)、轉(zhuǎn)移話題(啊,你說的我不懂,要不我們聊聊XX吧)等等,哪個比較好,是需要通過排序之類的思路來進一步篩選出來的。

    毫無疑問,想到這里,分類問題很合適,甚至適合在這里構(gòu)造一個完整的分類系統(tǒng),從模型分類到召回-排序的模式來做,都沒有問題。

    而后,由于本身DP就是一個決策問題,甚至是一個多次決策的問題,因此把問題交給強化學習可能更好,于是強化學習就開始成為DP的重要手段了。說到強化學習,必須提到的就是強化學習本身需要的元素,即狀態(tài)、動作、獎勵,在多輪對話里,狀態(tài)就可以理解為DST中的信息,動作就是采取的對話策略,獎勵就是采取行動會得到的獎勵,我們所希望的就是全局,也就是整次對話下來,獎勵最高,多輪對話無疑是符合這個模式的。

    和DST一樣,我這里不展開說,有興趣大家可以自己進行深入閱讀,我這里放一些我覺得比較好的文章吧:

    • 一文看懂任務(wù)型對話中的對話策略學習(DPL):https://zhuanlan.zhihu.com/p/52692962
    • 深度學習對話系統(tǒng)理論篇--Deep Reinforcement Learning for Dialogue Generation:https://zhuanlan.zhihu.com/p/31829823

    端到端式的對話管理

    端到端式的對話管理大部分出現(xiàn)在學術(shù)界中,用過特定的模型完成多輪信息的整合和對話策略的決策,甚至從輸入開始進行串聯(lián),從輸入直接到輸出完成全局的端到端結(jié)果回復。

    檢索式多輪

    沒錯,檢索式其實也有多輪,也能做多輪,而且其實研究還不少,其本質(zhì)就是把歷史的對話信息和當前的回復都放到模型的輸入中,形成端到端的模式,不過從社區(qū)目前的關(guān)注度來看,關(guān)注度其實并不太高,列出一些文章供大家參考下:

    • 多輪檢索式對話系統(tǒng)小結(jié):https://zhuanlan.zhihu.com/p/84163773
    • 檢索式多輪問答系統(tǒng)模型總結(jié):https://zhuanlan.zhihu.com/p/46366940

    生成式多輪

    與檢索式對應的生成式多輪,生成式的靈活性可想而知。簡單的方案其實很早就有了,seq2seq就是最經(jīng)典的操作,直接將這些對話信息放入模型,這種操作方式和編碼器類似,能直接生成一些基本的多輪回復,這種方式雖然簡單,但終究算是一個可行的方法。

    而后,考慮到對話信息的存儲和處理,以及對知識的錄入,其實慢慢的開始有用大模型、知識圖譜的趨勢,開始構(gòu)造出更加順滑,具有一定知識性的回復結(jié)果,GPT、BERT的始祖Transformer做的是機器翻譯,而這本質(zhì)其實還是文本生成,結(jié)合對抗生成模型的介入,這種模式為生成式多輪帶來了新的發(fā)展。

    • SIGIR 2019 |基于BERT的歷史答案編碼實現(xiàn)多輪會話問答:https://zhuanlan.zhihu.com/p/68481797

    多輪對話的其他問題和難點

    除了上面聊的東西,其實很多場景都面臨很多復雜多樣的問題,這些我經(jīng)常有聽說過的,列舉一下,有興趣的也可以多查查資料學習,也歡迎各位大佬推薦文章深入學習和閱讀。

    • 多輪打斷和話題轉(zhuǎn)移問題,在任務(wù)型等多輪對話下,打斷或者話題轉(zhuǎn)移的識別和后續(xù)策略的設(shè)計問題。
    • 主動對話問題。從一問一答,回答為目標的對話變成一些帶有主動性質(zhì),牽引性質(zhì)的對話回復。
    • 對話內(nèi)容的個性化回復和人設(shè)問題。其實本質(zhì)都是畫像的維護和使用,一方面要說“用戶想知道的信息”,并且“符合機器人的人設(shè)”,后者小冰應該是做的比較好的,很早就已經(jīng)構(gòu)造好人設(shè)畫像并且體現(xiàn)在對話系統(tǒng)里。
    • 對話式推薦系統(tǒng)。在對話過程挖掘用戶興趣,從而進行商品或者問題的推薦。
      • 這里還有一篇文章寫的非常好:https://zhuanlan.zhihu.com/p/439302820
    • 多輪的評測標準。這點其實至今都在討論,這個問題其實頗為復雜。

    拓展閱讀

    文章寫完了,但是總感覺意猶未盡,還有很多細節(jié)感覺無法寫完,否則這就奔著一本書之類的去了,先到此為止吧。對話系統(tǒng),和推薦系統(tǒng)、搜索系統(tǒng)一樣,都是一些很復雜的系統(tǒng),而且系統(tǒng)還會受到各種場景問題的外因(客服、智能助手、閑聊等)、系統(tǒng)內(nèi)運轉(zhuǎn)的內(nèi)因(多輪信息的存儲、知識庫的挖掘存儲、多意圖處理)影響,從而產(chǎn)生了其實并不一致的各種解決方案,目前雖有大體統(tǒng)一的趨勢,但是內(nèi)部結(jié)構(gòu)其實都有對自己面對的問題做了很多權(quán)衡,如果要變得更為深入,那就需要自己多實踐+多閱讀,多看看更多的方案和論文,才能有更好的提升。

    這里,列舉一些比較好的材料供大家參考學習吧:

    • A Survey on Dialogue Systems: Recent Advances and New Frontiers:https:///abs/1711.01731
    • 對話系統(tǒng)-Dialogue System:https:///2020/04/29/dialogue-system/#%E6%80%BB%E7%BB%93(這個博主的文章都很值得看!)
    • RASA對話系統(tǒng):https://github.com/RasaHQ/rasa
    • 百度的PLATO,自行上網(wǎng)查詢。

    另外大家也可以關(guān)注幾個大廠的對話系統(tǒng),技術(shù)都相對成熟了,部分會需求和應用的原因,會有些技術(shù)領(lǐng)域的限制,主要包括幾個語音助手(小布助手、小愛同學、siri、天貓精靈、小度等),幾個大廠(美團、平安、阿里小蜜、58等都有不少對話系統(tǒng)的分享)。

      本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
      轉(zhuǎn)藏 分享 獻花(0

      0條評論

      發(fā)表

      請遵守用戶 評論公約

      類似文章 更多