一文看懂人机对话

一、人机对话概述

人机对话(Human-Machine Conversation)是指让机器理解和运用自然语言实现人机通信的技术,如图1所示。通过人机对话交互,用户可以查询信息,如示例中的第一轮对话,用户查询天气信息;用户也可以和机器进行聊天,如示例中的第二轮对话;用户还可以获取特定服务,如示例中的最后两轮对话,用户获取电影票预定服务。

 

640?wx_fmt=png

图1 人机对话示例

人机对话是人工智能的重要挑战,最近几年随着人工智能的兴起,人机对话的研究也越来越火热。图2是NLP顶级会议ACL和EMNLP自2010年以来对话相关论文的数量,可以看出从2016年开始对话论文的数量增长迅猛,2018年相比于2010年对话论文数量有数倍的增长。对话相关技术的逐步成熟也引发了工业界研发对话产品的热潮,产品类型主要包括语音助手、智能音箱和闲聊软件。

1、语音助手是指在硬件设备或APP软件上植入人机对话程序辅助用户通过语音方式使用宿主设备或程序上的功能,如内容搜索、信息查询、音乐播放、闹铃设定以及餐馆和票务的预定等功能,该类型的产品有百度小度、苹果Siri、Google Now、微软小娜、阿里小蜜;

2、智能音箱是为对话系统独立设计的音箱产品,和语音助手的区别是,智能音箱独立设计了一套语音输入输出系统,用于实现远场语音控制,即远距离的语音对话交互,如家居环境下家电设备的控制,该类型的产品有百度小度音箱和小度在家、亚马逊Echo、Google Home、阿里天猫精灵、小米小爱等;

3、闲聊软件主要是借助情感计算技术和用户进行情感交流,如微软小冰。

 

640?wx_fmt=png

图2 对话论文在NLP会议上的增长趋势

 

二、人机对话技术

 

人机对话技术的研究最早可以追溯到上世纪六十年代,自阿兰·图灵提出通过图灵测试[1]来检验机器是否具有人类智能的设想以来,研究人员就开始致力于人机对话系统的研究。1966年MIT的计算机科学家Joseph Weizenbaum开发了Eliza[2]聊天系统,用于模拟心理治疗师对精神病患者进行心理治疗。1972年精神病医生Kenneth Colby基于Eliza的原理开发了Parry[3]聊天系统,只不过模拟的不是心理治疗师,而是精神病患者。1998年CMU的Randy Pausch开发的Alice[4]被认为是最像人类的聊天机器人,还获得了三届人工智能竞赛大奖-罗布纳奖(2000年、2001年和2004年),同时孕育了用于开发聊天机器人的AIML语言。

 

随着深度学习技术的兴起,以对话语料为基础使用神经网络模型进行对话学习是近几年人机对话的主流研究方法。人机对话根据功能不同可以分为任务完成、问答和聊天三种类型,不同类型采用的技术手段和评价方法也不同。下面我们对这三种类型对话进行简单的介绍:

 

1、任务完成类型

用于完成用户的特定任务需求,比如电影票预订、机票预定、音乐播放等,以任务完成的成功率作为评价标准。这类对话的特点是用户需求明确,往往需要通过多轮方式解决,主流的解决方案是2013年Steve Young提出的POMDP[5]框架,如图3所示,涉及语言理解、对话状态跟踪、回复决策、语言生成等技术。

 

640?wx_fmt=png

图3 POMDP框架

(1)语言理解(Natural Language Understanding),理解用户输入中的语义和语用信息。语义信息通常由意图和槽位信息构成,一个意图表示一个用户需求,每个任务有多种类型的意图,每个意图有多个槽位信息。在电影票预定中,意图类型有电影票预定、取消预定、修改预定等意图,槽位有影院、日期、人数等;语用信息主要是指交际功能(Dialogue Act),如询问、回答、陈述等,语言学家Harry Bunt 等人设计了一套通用的交际功能分类标准[6],共有88类,一般选用其中的几类即可。

(2)对话状态跟踪(Dialogue State Tracking),一个用户需求会包含一个意图和多个槽位信息,而一次对话交互只能提供其中的一部分信息,因此对话状态跟踪是根据每轮对话信息完善用户的完整需求信息。

(3)回复决策(Policy Modeling),根据DST输出的结果决策当前的回复动作,如槽位询问、槽位澄清或结果输出等,每个回复动作由一个交际功能和几个槽位构成。

(4)语言生成(Natural  Language Generation),根据Policy输出的动作生成一个自然语言句子。

系统实现上分为Pipeline方式和End2End方式。Pipeline方式指每个技术模块单独实现,然后以管道形式连接成整个系统[7]。End2End方式是指一个模型同时实现各个技术模块的功能,使模块之间进行充分的信息共享[8]。

2、问答类型

用于解决用户的信息查询需求,主要是一问一答的对话形式,如“美国总统是谁”,以回复答案的准确率作为评价标准。和NLP传统Question Answering (QA)任务不同的是对话中的问答会涉及上下文的成分补全和指代消解技术。

3、聊天类型

用于解决用户的情感倾诉需求以及其它类型对话之间的衔接需求。和前两种对话类型的区别是该类型对话是开放性对话,用户的输入是开放的,用户可以输入任何合理的自然语言句子;系统的输出也是开放的,比如图1示例中用户输入“看来今天不适合出门啊”,系统可以回复“是啊,还是呆在家好”,也可以回复“可以去电影院看电影”,甚至可以回复“知足吧,至少你有机会出门,我没脚只能天天呆机房”等等。由于对话的开放性,其技术难度和挑战性要远高于其它类型对话,目前的解决方案主要是检索和生成两种。

(1)检索方案

检索方案采用的是信息检索的技术,分为候选回复召回和候选回复排序两个阶段,如图4所示。召回阶段先离线对对话语料建立倒排索引库,在线对话时根据用户输入从索引库中检索候选回复。排序阶段根据对话上下文进一步计算候选回复的相关性,以选出最佳候选作为系统输出,2016年Zhou等人提出在字粒度和句子粒度级别分别计算对话上下文和候选回复的相关性然后进一步融合,有效改善了排序效果,提升回复质量[9]。

检索方案从百亿级的语料库中检索回复,可以有效解决聊天类型对话的开放性问题,而且检索出的回复语义丰富度和流畅性都很好,在单轮对话中表现很好,但在多轮对话中,检索方案就问题重重了。对话具有很强语境关联性,多轮对话确立的语境在语料库中基本不存在,使用检索方案从语料库中选出的回复很难适用于当前的语境,会存在多轮逻辑冲突、语义相关性差等问题,这是检索方案的致命缺陷。

 

640?wx_fmt=png

图4 检索方案

 

(2)生成方案

生成方案不是从语料库中选出历史回复,而是生成全新的回复,语料库只用于对话逻辑的学习,是目前学术界的一个研究热点。生成方案主要采用机器翻译的Seq2Seq对话框架,对话的上文作为模型输入,下文作为模型输出[10],使用Encoder表示输入,Decoder预测输出,如图5所示。除了Seq2Seq框架,有不少研究人员也开展了基于GAN和强化学习的对话框架,GAN模型中generator模型用于生成回复,discriminator模型用于判断输入回复是标准回复还是预测回复[11];强化学习模型中reward为语义相关性、句子流畅性等,action为生成的回复句子[12]。

生成方案训练时从对话语料中学习对话逻辑,预测时根据用户输入预测和上下文相关的回复输出。目前生成模型还存在安全回复、机器个性化和效果评估等几个挑战性问题。

 

640?wx_fmt=png

图5 生成方案

 

由于聊天型对话的开放性特点,对话模型的效果评估上具有很大的挑战性,常见的评估方法——预测结果和标准结果的匹配程度,难以准确的衡量聊天型对话的效果,目前可靠的评估方法依然是人工评估,2017年Bengio团队提出用模型拟合人工评估的方式探索自动评估的解决方案[13]。闲聊对话系统可以通过和用户交互的轮次来自动衡量系统的效果,交互轮次越多说明用户对聊天效果越满意,也可以间接说明聊天系统效果越好。这和任务完成类型的评估是截然相反的,任务完成类型在成功完成任务的前提下对话轮次越少说明模型的效果越好。

 

三、人机对话语料

 

早期的对话系统依赖于模板匹配技术,通过文本匹配查找相似输入的回复作为输出回复,使得系统的对话能力和灵活性存在很大的局限性。因此上世纪九十年代以来,研究人员开始进行基于数据驱动的对话系统研究。1990年Hemphill等人建设了旅行信息系统(ATIS)数据集[14],用于机票预订对话系统的研究[15];2001年Walker等人建设旅行规划数据集,用于旅行规划系统Communicator的研究[16];2013年微软建设了公交时刻表查询对话数据集用于对话状态跟踪(DSTC)技术的研究[17];2015年Alessandro Sordoni等人在Twitter上整理了2900万人-人对话数据集[18],用于聊天对话技术的研究;2016年Ryan Lowe等人从Ubuntu技术论坛上整理了700万Ubuntu社区聊天数据集用于限定领域下的聊天技术研究[19]。2018年Nikita Moghe等人基于电影知识数据人工标注了电影领域的聊天数据集,用于知识对话技术的研究[20]。

 

四、人机对话技术展望

 

人机对话经过半个世纪的发展有了长足的进步,不过现在的技术水平还处于初级阶段,将来在以下几个方面需要进一步攻克:

(1)通用语言理解和语言生成技术:目前任务完成类型对话每个任务都有各自的语言理解和语言生成模型,领域迁移困难,通用的语言理解和语言生成技术是解决这一问题的关键。

(2)深度融合知识和常识信息:对话中话语背后蕴含了丰富的知识和常识等语境信息,话语的理解和生成与知识和常识信息密不可分。

(3)记忆机制:通过记忆机制记住、提炼并整合历史对话内容,对话时结合记忆信息辅助对话决策模型(Policy Model)进行下一步决策。

(4)多模态的对话技术:人类对话中不仅有语言交互,还有视频、图像等信息的交互,如对话中的手势、说话时的情绪等信息,语言理解时融合多模态信息可以使得机器掌握更完整的语境信息,语言生成时融合多模态信息可以使对话更加生动形象。

 

五、2019 语言与智能技术竞赛

 

 

为了推进人机对话技术的进步,百度提出了知识驱动的对话任务,机器根据知识信息构建的图谱主动和用户进行聊天,让机器具备模拟人类使用自然语言进行信息传递的能力。为此,百度在电影和娱乐人物领域构建了具有14万实体360万知识的图谱,并基于该图谱众包标注了12万轮对话数据。相比于自动挖掘的对话数据,百度数据对知识的使用更加充分,而且对话中机器角色能够根据给定对话目标主动引导对话的进程,向用户传递知识信息。

今年中国计算机学会、中国中文信息学会和百度公司联合举办了“2019语言理解与智能技术竞赛”,旨在推动机器语言理解与交互技术发展。知识驱动对话也是该比赛的任务之一,欢迎学术界和工业界的学者、开发者报名参加(http://lic2019.ccf.org.cn)。

人机对话技术还出于探索阶段,百度希望通过设立新的对话任务探索新的人机对话技术,同时通过开放数据和开源基线系统促进人机对话技术的进步。

 

 

引用

[1] Alan M Turing. 2009. Computing machinery and intelligence. In Parsing the Turing Test.

[2] Weizenbaum, Joseph. 1966. ELIZA---a computer program for the study of natural language communication between man and machine. Communications of the ACM.

[3] Colby, Kenneth Mark. 2013. Artificial paranoia: a computer simulation of paranoid processes. Elsevier.

[4] Wallace, Richard S. 2009. The anatomy of ALICE. Parsing the Turing Test.

[5] Steve Young, Milica Gasic, Blaise Thomson, and Jason D Williams. 2013. Pomdp-based statistical spoken dialog systems: A review. In Proceedings of IEEE.

[6]DIT++ taxonomy of dialogue acts. https://dit.uvt.nl/

[7] Henderson, Matthew, Blaise Thomson, and Jason D. Williams. 2014. The second dialog state tracking challenge. In Proceedings of SIGDIAL.

[8] Bordes, Antoine, Y-Lan Boureau, and Jason Weston. 2016. Learning end-to-end goal-oriented dialog. arXiv.

[9] Zhou, Xiangyang, et al. 2016. Multi-view response selection for human-computer conversation. In Proceedings of EMNLP.

[10] Shang, Lifeng, Zhengdong Lu, and Hang Li. 2015. Neural responding machine for short-text conversation. In Proceedings of ACL.

[11] Xu, Zhen, et al. 2017. Neural response generation via gan with an approximate embedding layer. In Proceedings of EMNLP.

[12] Li, Jiwei, et al. 2016. Deep reinforcement learning for dialogue generation. In Proceedings of EMNLP.

[13] Lowe, Ryan, et al. 2017. Towards an automatic turing test: learning to evaluate dialogue responses. In Proceedings of ACL.

[14] Hemphill, Charles T., John J. Godfrey, and George R. Doddington. 1990. The ATIS spoken language systems pilot corpus. In Speech and Natural Language: Proceedings of a Workshop Held at Hidden Valley, Pennsylvania. 

[15] Price, Patti J. 1990. Evaluation of spoken language systems: The ATIS domain. In Speech and Natural Language: Proceedings of a Workshop Held at Hidden Valley, Pennsylvania.

[16] Walker, Marilyn, et al. 2001. DARPA Communicator dialog travel planning systems: The June 2000 data collection.In Proceedings of EUROSPEECH.

[17] Williams, Jason, et al. 2013. The dialog state tracking challenge. In Proceedings of SIGDIAL.

[18] Sordoni, Alessandro, et al. 2015. A neural network approach to context-sensitive generation of conversational responses. In Proceedings of NAACL.

[19] Lowe, Ryan, et al. 2015. The ubuntu dialogue corpus: a large dataset for research in unstructured multi-turn dialogue systems. In Proceedings of SIGDIAL.

[20] Moghe, Nikita, et al. 2018. Towards exploiting background knowledge for building conversation systems. In Proceedings of EMNLP.

 


 

大家认为人机对话还有哪些应用场景呢?请在本文下方留言吧!

得赞数排名前5的同学送定制T恤衫一件

欢迎大家多多留言给小编哦(^o^)

 


 

640?wx_fmt=jpeg

======================================================================== MICROSOFT FOUNDATION CLASS LIBRARY : 考试 ======================================================================== AppWizard has created this 考试 application for you. This application not only demonstrates the basics of using the Microsoft Foundation classes but is also a starting point for writing your application. This file contains a summary of what you will find in each of the files that make up your 考试 application. 考试.dsp This file (the project file) contains information at the project level and is used to build a single project or subproject. Other users can share the project (.dsp) file, but they should export the makefiles locally. 考试.h This is the main header file for the application. It includes other project specific headers (including Resource.h) and declares the CMyApp application class. 考试.cpp This is the main application source file that contains the application class CMyApp. 考试.rc This is a listing of all of the Microsoft Windows resources that the program uses. It includes the icons, bitmaps, and cursors that are stored in the RES subdirectory. This file can be directly edited in Microsoft Visual C++. 考试.clw This file contains information used by ClassWizard to edit existing classes or add new classes. ClassWizard also uses this file to store information needed to create and edit message maps and dialog data maps and to create prototype member functions. res\考试.ico This is an icon file, which is used as the application's icon. This icon is included by the main resource file 考试.rc. res\考试.rc2 This file contains resources that are not edited by Microsoft Visual C++. You should place all resources not editable by the resource editor in this file. ///////////////////////////////////////////////////////////////////////////// AppWizard creates one dialog class: 考试Dlg.h, 考试Dlg.cpp - the dialog These files contain your CMyDlg class. This class defines the behavior of your application's main dialog. The dialog's template is in 考试.rc, which can be edited in Microsoft Visual C++. ///////////////////////////////////////////////////////////////////////////// Other standard files: StdAfx.h, StdAfx.cpp These files are used to build a precompiled header (PCH) file named 考试.pch and a precompiled types file named StdAfx.obj. Resource.h This is the standard header file, which defines new resource IDs. Microsoft Visual C++ reads and updates this file. ///////////////////////////////////////////////////////////////////////////// Other notes: AppWizard uses "TODO:" to indicate parts of the source code you should add to or customize. If your application uses MFC in a shared DLL, and your application is in a language other than the operating system's current language, you will need to copy the corresponding localized resources MFC42XXX.DLL from the Microsoft Visual C++ CD-ROM onto the system or system32 directory, and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation. For example, MFC42DEU.DLL contains resources translated to German.) If you don't do this, some of the UI elements of your application will remain in the language of the operating system. /////////////////////////////////////////////////////////////////////////////
### 大语言模型(LLM)的基本概念和原理 大语言模型(Large Language Model, LLM)是一种基于深度学习的自然语言处理技术,其核心目标是通过训练大量的文本数据来生成与人类语言相似的文本[^2]。LLM 的设计旨在模仿人类的语言能力,能够完成从文本生成、翻译、摘要提取到对话理解等多种任务。 #### 1. 大语言模型的特点 大语言模型的主要特点包括参数规模巨大、训练数据量庞大以及强大的泛化能力。这些模型通常包含数十亿甚至上万亿个参数,使其能够捕捉复杂的语言模式并适应多种应用场景[^3]。此外,LLM 具备上下文理解能力,能够在特定语境中生成连贯且有意义的回复。 #### 2. 大语言模型的基本组成 LLM 的基本组成包括以下几个部分: - **编码器(Encoder)**:负责将输入文本转换为向量表示,以便模型能够理解语言中的语义信息。 - **解码器(Decoder)**:根据编码器生成的向量表示,生成相应的输出文本。 - **注意力机制(Attention Mechanism)**:用于帮助模型关注输入文本中的重要部分,从而提高生成文本的质量和相关性[^2]。 #### 3. 大语言模型的工作流程 大语言模型的工作流程可以概括为以下阶段: - **预训练(Pre-training)**:使用大规模无标注文本数据进行训练,使模型学习通用的语言知识。 - **微调(Fine-tuning)**:在特定任务上使用标注数据对预训练模型进行调整,以适应具体的应用场景。 - **推理(Inference)**:利用训练好的模型生成符合要求的输出文本[^3]。 #### 4. 大语言模型的应用 大语言模型的应用范围非常广泛,涵盖了多个领域和技术方向。例如: - **文本生成**:自动生成文章、故事、诗歌等。 - **机器翻译**:实现高质量的多语言互译。 - **对话系统**:构建智能客服、虚拟助手等交互式应用。 - **代码生成**:辅助程序员编写代码或优化现有代码。 - **内容创作**:生成营销文案、新闻报道等专业内容[^1]。 ```python # 示例:使用 Hugging Face Transformers 库加载预训练的大语言模型 from transformers import pipeline # 初始化文本生成管道 text_generator = pipeline("text-generation", model="gpt2") # 生成一段文本 output = text_generator("Once upon a time", max_length=50) print(output) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值