魔术桌
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • 更新日志
  • 新闻资讯
  • 数据资产
  • 网站导航
  • 订阅推荐
  • 商品推广
  • 日记
  • 摘录
  • 论文
  • 方案
  • 技术
  • 风格
  • 视觉
  • 原材料
  • 加工工艺
  • 元器件
  • 产品设备
  • 设计模式
  • 数据结构
  • 算法设计
  • 软件架构
  • 程序语言
  • 代码类库
  • 操作系统
  • 软件包
  • 健康
  • 环境
  • 社会
  • 道德
  • 法律
  • 经济
  • 政策
  • Excerpt - 2017微软AI大讲堂

文章摘要: 摘要内容。

微软亚洲研究院副院长周明博士的演讲——自然语言聊天、问答和对话详细信息请点击转跳到网页

周明博士:“其实微软小冰就是在模拟人跟电脑的对话。电脑接收文字、图像或者语音,识别其中的内容,然后给予适当的回复。有的回复很有意思,让人觉得好像电脑后面就坐着一个真实的人,但有的时候回复也差强人意,而这正是我们这次编程之美所期待的,希望大家一起加入到人机对话的创新过程中,把人机对话做的更好。”

人机对话有三个层次,一个是聊天,一个是问答,还有一个是对话,即面向某一特定任务的对话。

在我们每天都会产生的这些对话中实际上包含了三个最基本的人类智力的活动。

  • 第一个,聊天。聊天一般没有太多实质性的内容,主要是拉近人与人之间的关系;
  • 第二个就是问答,比如“你买什么东西”,“这个方便面多少钱一包”,这是提问,它的目的是提供信息;
  • 第三个,面向特定意图的对话。比如售货员知道我的意图是买方便面,开始围绕这个意图跟我进行了有目的的对话,最终我完成支付行为,售货员把方便面放到我手上。

最近几年,深度神经网络逐渐取代了传统的统计机器学习,成为主流的研究方向。现在,自然语言技术已全部转向深度学习网络,我们的对话系统也都用到了深度学习网络。

深度学习网络一般有一个输入层,一个输出层,中间有N层是神经网络,他们之间通过一种连接方式以不同的权值来发挥作用,当输入时,根据神经网络的权值逐层推进,就会得到一个输出。

其实在训练的时候有很多样本,输入和输出是对应的。当输入到神经网络时,有的时候会发现结果不对,那么则可以根据它与答案之间的差距进行反向传播并修正参数。当网络趋势越来越好,那么到一定时候网络就可以收敛,进而网络就达到了一定的智能行为,这就是最简单的神经网络架构。

聊天是怎么做的,这样的人机对话是怎样形成的?

  • 一种很简单,就是将网上的论坛、微博或是网站里出现过的对话句子抽取出来,当成训练语料库。当来了一个句子时,系统会从语料库里找到一个跟这个句子最相像的句子,而这个句子对应的答复就可以直接输出作为电脑的回复。虽然看起来这个方法简单粗暴,但有时候还是挺有效的。
  • 然而有的时候,系统找到的句子可能对应了很多回复,它不知道哪个回复最适合当前的输入语句。所以这里就要有一个匹配的过程,就是怎么判断输入语句跟语料库里的回复在语义上是相关的或者是一致的?
  • 要注意的是,短字符串匹配的时候太依赖于自己的信息了。而我们日常说话时往往是有背景、有常识的,我们说的每句话都有一个主题词表。比如我来到了清华三食堂,那这个背后的主题词可以说吃饭、早饭、中饭、晚饭、价钱、饭卡等,这些词都是跟它相关的主题词,匹配的时候要体现出这些主题词。
  • 解决方法是:首先找出输入语句的N个主题词,然后再找出可以回复的那些句子的主题词,用主题词来增强匹配的过程。这也是通过神经网络来算两个词串,再加上主题词增义的相似度。

==具体算法实际上是通过Attention model(注意力模型)计算每个主题词跟当前这句话的匹配强度,所有主题词根据强度不同进行加权以体现当前背景主题词的强度,然后再和原句匹配在一起,来算相似度。== ==另外,我们也可以把主题词当成所谓的Knowledge base(知识图谱),通过主题词限定当前的输入应该有哪些信息可以输出,哪些信息不要输出,哪些信息应该补足,哪些信息可以直接使用等等。实际上在具体实现时可以看到一个句子有三种表示方法,两个句子之间每个句子都有三种表示方法,用两两表示方法计算距离最后就会得到一个矢量,再通过多层感知得到一个数值,来表征这两个输入串的距离。所以,这两个输入串不是赤裸裸地直接去匹配,而是用周围知识所代表的主题词来增强。==

问答就是用户有问题,系统要理解这个问题,然后利用系统所有的资源来回答这个问题,资源可能是FAQ、文档、表格、知识图谱等等,哪一个回答出来了,就说明哪一个是答案,如果有多个资源都可以回答问题,那我们选取那个最有可能的来进行输出。

简单说一下所谓Knowledge base(知识图谱)有两条路走,一条是对用户的问题进行语义理解,一般用Semantic Parsing(语义分析),语义分析有很多种,比如有用CCG、DCS,也有用机器翻译来做的。它得到了一个句子的逻辑表示,根据逻辑表示再到知识库里去查,查到这个结点是什么,关系是什么等,通过这种方式,自然而然就查到了。

在未来有三件大事非常重要

  1. 如何更好地来为上下文或者是多轮对话建模
  • 目前还是用比较粗糙的信息表示方法来做,没有精确的来断定前文出现了哪些具体的信息,将来我们可以用信息抽取的方法把这些信息记录下来,引导未来的对话。
  1. 个性化的信息如何指导生成个性化的回复。
  • 最后,现在的回复也是千篇一律,大人、小孩、男孩、女孩,可能都是一样的,但人们在实际对话中面对不同的人群是不一样的,如何能够对回复的风格进行自动调整,使对话更加丰富多彩,这也是目前的一个挑战。
更新时间: 2025/10/2 21:54