王宇 王澈 于丹


摘? 要:依據對話機器人回復方式的不同,可以將對話機器人分為基于生成式的對話機器人和基于檢索式的對話機器人。本文主要針對上下文信息的使用,將這兩類機器人繼續分類為單輪檢索、多輪檢索、單輪生成和多輪生成對話機器人,對各對話機器人的構建進行了總結和闡述,列舉了應用場景和算法實現挑戰,并通過兩個工業對話機器人構建中基于生成式和基于檢索式的應用,分析了目前兩類對話機器人落地應用的主要難點和解決方法。最后對未來的研究趨勢和方向進行了展望。
關鍵詞:基于生成的對話機器人;基于檢索的對話機器人;單輪對話;多輪對話
Abstract: Responses of chatbots are generated by methods that are either generation-based or retrieval-based. This paper mainly focuses on the use of contextual information, to further classify these two types of chatbots into single-turn retrieval, multi-turn retrieval, single-turn generation, and multi-turn generation chatbots. And then, the paper summarizes and elaborates the construction of each type of these chatbots, and lists application scenarios and algorithm implementation challenges. Through generative and retrieval-based applications in construction of industrial chatbots, main difficulties and solutions are analyzed. Finally, the future research trends and directions are considered.
Keywords: generation-based chatbot; retrieval-based chatbot; single-turn dialogue; multi-turn dialogue
1? ?引言(Introduction)
通過自然語言與人進行有效交流的能力,是機器具有智能的一個重要的體現,同時也是一個很具有挑戰性的任務。自第一個聊天機器人Eliza[1]誕生開始,眾多研究者嘗試采用了各式各樣的方法,構建智能對話機器人,并取得了令人欣喜的結果。按照對話機器人回復方式的不同,可以將對話機器人技術分為基于生成式的對話機器人和基于檢索式的對話機器人。
基于檢索式的對話機器人是通過對話者輸入的語義特征,從成對的或者非成對的數據中,檢索出最能夠匹配對話者語義特征的數據,作為對話機器人的回復,這是一個檢索而非創造的過程。基于生成式的方法則是通過大量人類對話數據,學習人類語言學特征,訓練可針對對話者輸入而自動生成文本作為回復的模型,這是一個生成的過程。
作為實現對話機器人有效回復的兩種主要方式,學術界則一直在不斷拓展二者的表現上限。而工業界則也一直將對話機器人擺在很高的位置,將其視為未來人機交互的主要形式,不斷地加大研究力度,希望結合生成式和檢索式的方法,將對話系統的商業應用價值實現至最大。目前以蘋果Siri和微軟Cortana為代表的對話系統,通過手機和電腦被廣泛使用;天貓精靈和小愛則是以智能家居機器人的角色走進千家萬戶。微軟以開放域聊天為賣點,針對多語種構建了Xiaoice、Rinna、Zo、Ruuh等聊天機器人,用戶群體已達千萬人。
目前已有很多總結對話機器人技術的論文[2],但很少有對落地應用進行闡述的論文。本文將針對近些年檢索式和生成式對話機器人的先進技術發展進行總結和綜述,并對已經進行商業應用的對話機器人的回復方式進行論述。
2? 問題定義(Problem definition)
根據實際需求和場景限定,可將對話系統分為單輪對話系統和多輪對話系統。如圖1所示,檢索式和生成式對話機器人以生成回復時是否利用上下文信息為標準,可以繼續細分為單輪檢索式對話機器人、多輪檢索式對話機器人、單輪生成式對話機器人、多輪生成式對話機器人。
3? 基于檢索式的對話機器人(Retrieval-based chatbot)
基于檢索式的對話機器人通過輸入語境的特征分析,從詢問回復數據對(或問答對)中選取最匹配的部分回復給對話者。可以通過是否引入上下文對話信息的情況,把檢索式對話分為單輪檢索對話和多輪檢索對話。
3.1? ?單輪檢索對話
單輪檢索對話,僅對輸入的一個詢問q進行回復,而不涉及歷史對話信息,不具有記憶功能,是很多對話機器人基本也是最為實用的一種方式。比如客服機器人,只需一輪對話,即可滿足對話者當前的需求。此類對話一般為問答對話,同時也可以收集特定語料,完成一定程度的開放域閑聊。
一般來說,需要事先構造詢問回復數據對庫,一個詢問對應了一個或多個回復。通常來說,對于輸入q,在詢問回復數據對庫中,檢索出跟q最相關的詢問回復數據對,將對應回復作為r輸出,完成一次單輪對話。根據檢索對象的不同,又可以分為q和詢問比較、q和回復的匹配和兩者的結合使用。
(1)q和詢問比較。通過比較q和詢問回復數據對庫中所有詢問的語義相似性,尋找相似度最高的詢問回復數據對數據,將此數據的回復作為r,反饋給對話者。將問題性質轉換為比較兩個句子語義是否相同的語義相似性問題,可以通過語義相似性比較的方法進行實現,比如使用基于卷積神經網絡的TextCNN[3]、TextRCNN[4]等,基于循環神經網絡的TextRNN[5]、TextAttentionRNN[6]等;同時使用近兩年大放異彩的預訓練語言模型Bert[7]、GPT[8]提高比較的準確性,如孿生結構的SentenceBert[9]。
(2)q和回復的匹配。q和詢問比較只能回答問答對里跟r最為相關的問題,可延伸性差。如,“大疆無人機是中國最好的無人機”,既可以回答“大疆無人機是中國的嗎”,也可以回答“大疆無人機是哪國的”,但是如果問答對庫里面沒有“大疆無人機是哪國的”這樣的問題,通過q和詢問比較的方法是無法進行回答的。所以,借鑒了搜索引擎的一些方法,研究者們提出了q和回復的匹配的方法,將問題轉換成兩個文本關聯度的語義匹配問題。可以使用常見的語義相似性匹配的方法,如DSSM[10]、MV-LSTM[11]、BiMPM[12]等。
(3)q和詢問比較與q和回復的匹配的結合使用。另外,將q和詢問比較與q和回復的匹配以某種加權的方式進行檢索,或者在語義層面在模型中進行多種信息交互,進行語義匹配。前者可以認為是q和詢問比較與q和回復的匹配的方法的組合使用;而后者則是在語義空間中,將q與詢問—回復對數據的信息進行交互,計算相關性評分。SymBiMPM[13]是對BiMPM的改進,使用了兩個BiMPM模型,一個是q和詢問比較,另一個是q和回復的匹配r,兩者信息用于相似度比較。MMT-DNN[14]借鑒MT-DNN[15]模型模式,構建出兩塊Transformer Encoder[16]層,第一塊基于Bert[7]構建q與詢問和回復的表征,第二塊兩個共享參數Transformer Encoder層,分別比較q和詢問、q和回復的相似度,最后拼接后進行相似度評價。
3.2? ?多輪檢索對話
多輪檢索對話結合歷史對話信息,針對對話者的query,從候選回復中選取最相關的回復。對話的上下文語境具有連續語義關系,對于query檢索是必不可少的信息,這也是其與單輪檢索對話最為不同的地方。常使用的方法是將上下文語境詞語輸入循環神經網絡中,提取最后一層隱藏層作為上下文信息去匹配候選回復,但是忽略了作為一個單獨的整體帶來的信息。
Zhou[17]等人通過使用兩個GRU模型提取多語境下單詞和語境兩個維度的信息,提出Multi-view Response Selection的方法,解決多輪檢索上下文信息語境信息不足的問題,但是仍然存在顆粒度信息不足的問題。Wu等人[18]提出序列匹配網絡(Sequential Matching Network, SMN),通過詞語和語境兩個不同的顆粒度與候選回復匹配構建匹配矩陣,卷積和池化操作提取重要的匹配信息轉換為一個向量,按照時序輸入循環神經網絡中,通過循環神經網絡的隱藏層計算匹配得分。Zhang等人[19]對SMN模型進行了改進,提出了DUA模型,強調了語境的重要性,并進行了深度編碼,認為最后一個語境很重要,將信息補充到其他語境和回復里面。DUA模型將最后一個語境的GRU Embedding與其他語境和回復連接,接入帶有注意力機制的GRU去提取關鍵信息和去除冗余信息,再進行詞語和句子匹配矩陣構建,計算匹配得分。Zhou等人[20]放棄了對語境序列進行單獨表征的方法,而是采用基于Transformer[17]結構對文本多顆粒度信息進行提取。模型將語境和候選回復輸入Transformer,Transformer每一層代表不同顆粒度的語義信息,相同顆粒度信息的語境和候選回復進行匹配生成自注意力和交叉注意力匹配矩陣,將不同語境匹配矩陣聚合3D矩陣后,使用3D卷積和池化操作進行特征信息提取,通過感知機計算匹配得分。
4? 基于生成式的對話機器人(Generation-based chatbots)
生成式對話機器人通過大規模的對話語料訓練和一個端到端的模型,學習人類對話的模式和特征,輸入對話者的自然語言,依據語境輸出生成的回復。生成式對話機器人受到機器翻譯任務的啟發,模型的一般范式是編碼解碼模式,通過編碼機學習語義特征,通過解碼器進行回復生成。這種方法的明顯好處是具有很高的泛化性,即使不在已知對話語料中,仍可以進行普適性的回答。以是否利用上下文信息c為依據,生成式對話又可以分為單輪生成式對話和多輪生成式對話。
4.1? ?單輪生成式對話
單輪生成式對話機器人通過對話者輸入的q,生成回復r,基本都是以編碼-解碼的端到端的模型為基準進行構建。編碼器將輸入q進行語義解碼,將語義編碼傳遞給解碼器用于回復生成。
Shang等人[21]基于新浪構建語料庫,采用RNN編碼語義信息,并使用Attention機制,得到全局語義向量和局部語義向量,加權輸入解碼器機芯解碼。Shao等人[22]則是將解碼器首尾相連接,將生成的部分作為Attention機制的一部分,對已有信息量進行進一步補充,用于生成具有高信息量的長回復。Wu等人[23]對解碼階段的詞語映射進行改進,提出一種基于動態解碼詞典的序列到序列模型(DVS2S),使得每步解碼根據當前對話實際有不同的詞典,以去除不相關詞匯的干擾,縮小映射范圍,加快解碼速度。在訓練時,該模型同時學習動態詞典構建和回復生成。在預測中,模型使用預測模型動態地為輸入分配相應的小詞匯表,并且僅使用小詞匯表進行解碼,實驗結果表明,在不影響解碼質量的情況下,在線解碼生成的速度提高40%。
4.2? ?多輪生成式對話
依據上下文c,并對當前輸入q進行生成回復r。多輪生成式對話和單輪生成式對話的最大區別在于,多輪生成式對話需要對上下文語境信息進行建模,如何有效地利用上下文語境u之間的內在聯系,是提升多輪生成式對話質量的關鍵。
Sutskever等人[24]根據上下文語境輸入LSTM進行編碼,獲取歷史語義特征,并通過另外一個LSTM對編碼器最后一個隱藏層進行解碼,生成詞語直到生成終止符為止,生成的語句作為多輪對話的回復。Hu等人[25]結合對話機器人對情感分析的需求,提出了音調的重要性,將編碼信息和音調信息一起輸入解碼器中,針對不同對話者的音調特征,進行了個性化回復。但是以上這些方法都是使用語境u作為上下文單位信息的來源,而沒有多顆粒度下的信息提取。Serban等人[26]使用層次神經網絡(Hierarchical Neural Network,HNN),將詞語輸入循環神經網絡提取語境信息,將語境時序序列輸入另外一個循環神經網絡作為上下文解碼信息,輸入解碼器進行回復生成。Xing等人[27]在此基礎上引入了注意力機制,對詞語和語境顆粒度下的重點信息進行關注和學習,提取關鍵信息并有針對性地回復,提高對話機器人對話質量。隨著Transformers結構在自然語言處理中大放異彩,生成式對話機器人也乘著東風掀起了一次高潮,Wang[28]等人收集并清晰整理出目前最大的中文多輪對話數據集,并在GPT模型的基礎上提出CDial-GPT方法,將多輪對話進行串聯后輸入GPT模型,進行多輪對話訓練,并在多輪生成式對話上取得了優異的成果。
5? 落地應用簡述(Brief description of landing application)
基于檢索式的方法主要是突出了回復的穩定性上的優勢,詢問回復數據對庫的數據是人為可控的,所有回答都不會超過詢問回復數據對庫里面的內容,內容是可控可選擇的,適合事實類問答功能的實現。窮舉所有問題是不可能的,但是如果無法連續地對輸入的q進行有效的回復,則會顯得對話機器人“呆”和“笨”。
基于生成式的方法主要是體現在回復的多樣性和泛化性上,通過學習人類對話,模擬真實對話場景,適合對不確定領域的閑聊進行構建。但基于生產式對話的實際表現遠沒有人們預想的那么優秀,其回答具有不可控性,前后文信息不一致、“安全性”回答一直是困擾基于生成式對話開發人員的問題。目前主流的方法是對生成的r的質量依據上下文和設定把控并修改。
現階段,工業界的對話機器人并不是以單一的生成式對話和檢索式對話為主,而是將二者集合在大的對話框架之下。一般來說,生成式對話用于閑聊域,檢索式對話用于限定域或者基于事實回復。Xiaoice[29]的核心對話中,則是結合檢索式對話、生成式對話和基于知識圖譜的檢索對話方式并聯,依據三種回復質量選取最優回復r。而阿里小蜜[30]則是選擇了一種基于檢索式和基于生成式的串聯的方法,首先構建了9 000 萬對聊天記錄的客服服務詢問—回復數據庫,采用基于檢索的方法對輸入的q進行相似性比較,如果符合閾值,則返回最相似詢問—回復數據中的回復作為輸出的r;如果超過閾值,則對q進行基于生成式的方法生成r作為輸出。
目前,從零構建一個基于檢索式或基于生成式的工業對話機器人最大的阻礙可以體現在數據和硬件兩個方面。盡管目前大數據和互聯網的高速發展,使人類比以前任何時候都容易獲得和處理海量數據,但是真正意義上的高質量數據獲取起來依舊很難。對于基于檢索式的方法,高質量的詢問回復數據對決定了對話的上限;而對于基于生成式的方法,高質量的對話數據則是模型表現力的根本保證。Xiaoice團隊花了四年收集到了300 億對詢問—回復對,而阿里小蜜團隊則憑借淘寶和天貓用戶基數的優勢,收集了9,000 萬對優質客服聊天記錄。優質的數據是構建對話機器人不會改變的需求。
由于算法和硬件的關系一直是負相關的,優秀的算法往往要極大地消耗硬件的算力,這也是學術界的優秀成果不能第一時間在工業界應用的原因之一。權衡算法性能和硬件的關系,這是對話機器人在工業界落地必須思考的問題。
6? ?未來展望(Future)
現階段工業對話機器人某種程度上來說依舊是以檢索式對話為主,生成式對話為輔,將主要的對話功能中心壓在檢索式對話,以生成式對話作為開放域對話的補充,原因在于基于檢索式對話的可控性和生成式對話的不可控性。
目前的生成式對話模型訓練都是基于文本的數據,缺少了真正對話者的背景信息和對話者的世界認知,即對話者自身處于一種具體的場景下,基于自己對真實世界的理解,進行了具有意義的對話。
所以,在未來很長一段時間內,基于檢索式的對話方式仍然是工業對話機器人長期使用且有效的方法,但基于對話者的背景信息和對話者的世界認知訓練的生成式對話機器人,在未來極大可能作為學術界和工業界重點研究的一個方向而成為研究主流。
7? ?結論(Conclusion)
本文總結了基于檢索式的對話機器人和基于生成式的對話機器人目前主流的算法,簡述了工業落地的實踐,概括了從零構建工業機器人的痛點,并對未來對話機器人的形勢進行了預測。
根據是否利用上下文信息和反饋回復的方法,將對話機器人細分為單輪檢索式、多輪檢索式、單輪生成式和多輪生成式的對話機器人,并分別對相關的技術進行了歸納和總結。
以Xiaoice和阿里小蜜兩個實際工業機器人為例,闡述了基于檢索式的對話機器人和基于生成式的對話機器人的綜合使用,并指出高質量數據和算法與硬件的直接矛盾是從零構建工業機器人的兩個痛點。
最后,本文認為未來一段時間內,工業機器人仍將以基于檢索方法為主流對話方式,而生成式為輔助對話的一種手段。基于對話者的背景信息和對話者世界認知的生成式對話機器人將會在未來可能會得到大力發展。
參考文獻(References)
[1] Weizenbaum J. ELIZA—a computer program for the study of natural language communication between man and machine[J]. Communications of the ACM, 1966, 9(1):36-45.
[2] 陳晨,朱晴晴,嚴睿,等.基于深度學習的開放領域對話系統研究綜述[J].計算機學報,2019,42(7):1439-1466.
[3] Kim Y. Convolutional neural networks for sentence classification[DB/OL]. [2014-09-03]. https://arxiv.org/pdf/1408.5882.pdf.
[4] Lai S, Xu L, Liu K, et al. Recurrent convolutional neural networks for text classification[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2015:2267-2273.
[5] Liu P, Qiu X, Huang X. Recurrent neural network for text classification with multi-task learning[DB/OL]. [2016-05-17]. https://arxiv.org/pdf/1605.05101.pdf.
[6] Zhou P, Shi W, Tian J, et al. Attention-based bidirectional long short-term memory networks for relation classification[C]. Proceedings of the 54th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), 2016:207-212.
[7] Jacob D, Ming-Wei C, Kenton L, et al. Bert: Pre-training of deep bidirectional transformers for language understanding[DB/OL]. [2018-10-11]. https://arxiv.org/pdf/1810.04805.pdf.
[8] Radford A, Narasimhan K, Salimans T, et al. Improving language understanding by generative pretraining[DB/OL]. [2020-03-15]. https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf.
[9] Reimers N, Gurevych I. Sentence-bert: Sentence embeddings using siamese bert-networks[DB/OL]. [2019-08-27]. https://arxiv.org/pdf/1908.10084.pdf.
[10] Huang P S, He X, Gao J, et al. Learning deep structured semantic models for web search using click through data[C]. Proceedings of the 22nd ACM international conference on Information & Knowledge Management, 2013:2333-2338.
[11] Wan S, Lan Y, Xu J, et al. Match-SRNN: Modeling the Recursive Matching Structure with Spatial RNN[DB/OL]. [2016-04-15]. https://arxiv.org/pdf/1604.04378.pdf.
[12] Zhiguo Wang, Wael Hamza, Radu Florian. Bilateral Multi-Perspective Matching for Natural Language Sentences[DB/OL]. [2017-07-14]. https://arxiv.org/pdf/1702.03814.pdf.
[13] Damani S, Narahari K N, Chatterjee A, et al. Optimized Transformer Models for FAQ Answering[C]. Pacific-Asia Conference on Knowledge Discovery and Data Mining, Springer, Cham, 2020:235-248.
[14] Zhou X, Dong D, Wu H, et al. Multi-view response selection for human-computer conversation[C]. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, 2016:372-381.
[15] Liu X, He P, Chen W, et al. Multi-task deep neural networks for natural language understanding[DB/OL]. [2019-05-20]. https://arxiv.org/pdf/1901.11504.pdf.
[16] Vaswani A, Shazeer N, Parmar N, et al. Attention is all you need[DB/OL]. [2019-09-16]. https://arXiv:1706.03762v5.
[17] Zhou X, Dong D, Wu H, et al. Multi-view response selection for human-computer conversation[C]. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, 2016:372-381.
[18] Wu Y, Wu W, Xing C, et al. Sequential Matching Network: A New Architecture for Multi-turn Response Selection in Retrieval-based Chatbots[DB/OL]. [2017-05-15]. https://arxiv.org/pdf/1612.01627.pdf.
[19] Zhang Z, Li J, Zhu P, et al. Modeling Multi-turn Conversation with Deep Utterance Aggregation[DB/OL]. [2018-11-06]. https://arxiv.org/pdf/1806.09102.pdf.
[20] Zhou X, Dong D, Wu H, et al. Multi-view response selection for human-computer conversation[C]. Proceedings of the 2016 Conference on Empirical Methods in Natural Language Processing, 2016:372-381.
[21] Shang L, Lu Z, Li H. Neural responding machine for short-text conversation[DB/OL]. [2015-04-27]. https://arxiv.org/pdf/1503.02364.pdf.
[22] Shao L, Gouws S, Britz D, et al. Generating High-Quality and Informative Conversation Responses with Sequence-to-Sequence Models [DB/OL]. [2017-07-31]. https://arxiv.org/pdf/1701.03185.pdf.
[23] Wu Y, Wu W, Yang D, et al. Neural response generation with dynamic vocabularies[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2018:5594-5601.
[24] Sutskever I, Vinyals O, Le Q V. Sequence to sequence learning with neural networks[C]. Advances in neural information processing systems, 2014:3104-3112.
[25] Hu T, Xu A, Liu Z, et al. Touch your heart: A tone-aware chatbot for customer care on social media[C]. Proceedings of the 2018 CHI Conference on Human Factors in Computing Systems, 2018:1-12.
[26] Serban I, Sordoni A, Bengio Y, et al. Building end-to-end dialogue systems using generative hierarchical neural network models[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2016:3776-3783.
[27] Xing C, Wu Y, Wu W, et al. Hierarchical recurrent attention network for response generation[C]. Proceedings of the AAAI Conference on Artificial Intelligence, 2018:5610-5617.
[28] Wang Y, Ke P, Zheng Y, et al. A large-scale chinese short-text conversation dataset[C]. CCF International Conference on Natural Language Processing and Chinese Computing, Springer, Cham, 2020:91-103.
[29] Zhou L, Gao J, Li D, et al. The design and implementation of Xiaoice, an empathetic social chatbot[J]. Computational Linguistics, 2020:53-93.
[30] Qiu M, Li F L, Wang S, et al. Alime chat: A sequence to sequence and rerank based chatbot engine[C]. Proceedings of the 55th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers), 2017:498-503.
作者簡介:
王? 宇(1994-),男,碩士,初級研究員.研究領域:自然語言處理,人工智能.
王? 澈(1995-),女,碩士,初級研究員.研究領域:人工智能,圖像處理.
于? 丹(1976-),女,博士,研究員.研究領域:數據分析與挖掘,人工智能.