Dongxing's Wiki Dongxing's Wiki
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
首页
  • 剑指 Offer
  • LeetCode
  • 算法与数据结构
  • Python 语言
  • Web 开发
  • Hive
  • Elastic Search
  • 机器学习
  • NLP
  • 检索技术
  • 数据分析
  • 经验笔记
  • Linux 配置
  • 博客进化记
  • 杂谈
GitHub (opens new window)
  • NLP基础

    • 七月NLP课程笔记(1) NLP基础技能
    • 七月NLP课程笔记(2)朴素贝叶斯
    • 七月NLP课程笔记(3)-LDA主题模型
    • 七月NLP课程笔记(4)-基于统计的翻译
    • 七月NLP课程笔记(5)-隐马尔科夫模型及其应用
    • 七月NLP课程笔记(6)-深度学习与NLP应用
    • 七月NLP课程笔记(7)-词向量与相关应用
    • 七月NLP课程笔记(8)-条件随机场
    • 中文分词相关技术
    • 使用gensim训练word2vec
    • 对话系统研究进展 - Paperweekly沙龙笔记
      • 资料链接
      • 1 构建更智能的聊天机器人 清华 黄民烈
        • 聊天机器人的挑战:
        • 所做的工作:
        • Emotional 聊天机器人:
        • Interactiveness 如何提高交互性:
        • 一致的个人属性信息
        • 结合常识
        • 相关链接
      • 2 开放域对话的新场景和新挑战 微软小冰的探索和实践 刘越
        • 小冰是什么
        • 开放域对话
        • 小冰核心对话引擎
        • 开放域对话的新场景:知识型对话,引导型对话,角色化对话
      • 3 Response Editing 吴俣
        • Ensemble 方法
      • 4 Knowledge Aware Dialogue Generation 周昊
        • 将常识引入对话生成
        • 带情感的聊天
    • AI Challenger 2018 细粒度情感分析
  • NLP工具

    • 体验腾讯 AI lab 最近发布的中文 word2vec 预训练 embeddings
    • Stanford CoreNLP 快速上手
    • ParsCit 安装与使用
  • 知识图谱

    • 整理一些最近看的知识图谱资料
    • 知识图谱在金融业应用报告会笔记
    • DeepDive 中文 关系抽取实践
    • KBQA | Core Techniques of Question Answering Systems over Knowledge Bases: a Survey
  • NLP
  • NLP基础
anthony
2018-09-05
目录

对话系统研究进展 - Paperweekly沙龙笔记

# 资料链接

计算未来轻沙龙第1期—对话系统研究进展 视频回顾:https://www.bilibili.com/video/av30997299/ 课件下载链接:https://pan.baidu.com/s/1xS7sUmtateXoYwNIAUBGVg
课件下载密码:mh6w

# 1 构建更智能的聊天机器人 清华 黄民烈

# 聊天机器人的挑战:

  • 语义- 理解当前内容、上下文、场景
  • 一致性- 个性、语言风格、情感和表情
  • 主动性- 策略和行为

# 所做的工作:

  • 主动性- 表达情感、主动提问、使用不同句式、切换话题
  • 一致性- 显式指定个人属性
  • 语义理解- 如何结合常识

# Emotional 聊天机器人:

加入情感分析功能(详见4)

# Interactiveness 如何提高交互性:

机器人要学会主动提问。

# 类型化的解码器

问题中一般包含三种词:疑问词,话题词,一般词(用于补全句子内容和语法)

工作:seq2seq时使用Typed decoders,类型化的解码器。在解码器生成每个词的时候,先控制它生成何种类型的词,然后再生成具体的词。

# 控制对话句式

句式:问句,祈使句,陈述句 不同句式可以达到不同的对话目的。

工作:使用CVAE(条件变量自编码器)框架,简单来说,仍然是在生成每个词时控制词的类型,使句子满足给定句式。

# 改变话题

把话题深入(deep,例如下雨就说到带伞)、把话题扩展(wide,例如下雨就说到感冒、在家睡觉)。

工作:加入两个channel,可以根据上下文内容,产生将当前话题更深入的关键词或者更扩展的关键词,然后把两个channel和encoder一起加attention,放到decoder里。

# 一致的个人属性信息

在问及机器人的年龄、家庭等属性时,需要一致的回答。

工作:对某个问题,先检测它是否涉及机器人的个人属性,如果不,则直接走传统方法,否则进入更详细的处理。先提取出涉及哪个属性,然后从预设的属性表中提取出该属性的值。将该值放入双向解码器往两头解码得到一个句子(保证这个词会出现在解码的句子中)。

有个问题,比如问擅长的乐器,答案是钢琴,但训练数据中没出现过钢琴,只出现了小提琴,则可以通过一个position detector确定出训练数据中哪些词可被钢琴代替,然后用小提琴去双向生成,再用钢琴替换生成结果里的小提琴。

# 结合常识

加入常识知识。(详见4)

# 相关链接

  • http://coai.cs.tsinghua.edu.cn/ds/ 对话系统技术平台

# 2 开放域对话的新场景和新挑战 微软小冰的探索和实践 刘越

# 小冰是什么

有EQ的聊天机器人,小冰的功能可以赋能给其他机器人(如网易云的多多西西),小冰也可以做个人助理,可以生产内容(新闻、剧本、作曲),跨平台的媒体解决方案(例如给网易新闻自动评论新闻、网易云推荐歌曲)。

(感觉更多变成一个AI相关的热门IP了)

# 开放域对话

对话的一般划分:任务型、信息QA型、通用对话闲聊型

# 小冰核心对话引擎

# 结构

  • 基础层:有基本的生成式、检索式、上下文聊天模型,也有KBQA等QA模型,然后使用一个模型来判断当前对话应该使用哪个模型来做。另外还有Query Understanding 和 User Understanding。

  • 中间层:需要有 Domain 的领域对话模型(例如体育领域),Memory功能记住过往对话,Emotion识别用户情绪并作出反应,Characterization角色化 让小冰赋能更多IP。

  • 最顶层:Session会话层面的控制,管理会话的内容、状态、节奏

# 产品级chatbot的技术挑战

  • 上下文、一致性
  • 人设和自我认知
  • 常识和领域知识
  • 对用户事件的记忆和理解
  • 情感识别和表达
  • 如何满足用户的高期望
  • 对话内容可控
  • 技术和产品场景的gap
  • 系统架构设计

# 开放域对话的新场景:知识型对话,引导型对话,角色化对话

# 知识型对话

需要什么知识?语法、词句、百科常识。面向表示的知识(帮助理解),面向推理的知识(帮助推断)。

知识在聊天中的作用:回答问题;推理使得更有逻辑;对话主题的理解和控制。

如何实现:知识的获取、表示和应用;如何推理

一些探索:KBQA(基于语义解析或者信息检索的从知识库中检索)、基于知识的话题流(引导相关话题,要注意话题的生成、话题转换的时机等)、将知识引入基础对话模型(基于检索的模型,语义匹配等)。

基于知识的理解和推理很难,但可以选择不同层面和不同粒度的场景去实践。(一些小的改进也行)

# 引导型对话

有意识地一步一步引导对话。

主要挑战:

  • 何时开始或终止引导(引导要自然,不能乱引导)
  • 引导路线规划
  • 动态调整引导走向
  • 对话流程可学习

# 角色化对话

小冰的技术赋能更多IP。

如何通过对话来塑造一个人物?

  • 基础人设:是谁,是什么生物
  • 表达方式:语言风格,惯用词
  • 概念、观点:需了解所处在世界中的常见概念,有自己对事物的观点等
  • 性格特征:内向外向,大五人格

多人场景的挑战:网易云音乐的多多西西,两个机器人参与对话。

  • 该谁说话
  • 更复杂的上下文
  • 角色配合

# 3 Response Editing 吴俣

聊天机器人典型解决方案:基于规则(模板)、生成式、检索式。

# Ensemble 方法

思路:给定query,先去检索出一些回答,然后基于query和这些回答去生成。

之前的方法:检索出来之后把query和回答都表示成向量,然后拼起来,然后去decoder。decoder还可以去copy一些前面的词来增强连贯一致。

想法:prototype改写。举例子,库中数据有一条是,上下文中说到吃甜品,回复说甜品好吃;如果当前聊天,上下文说的是吃蔬菜,检索出和这一条很相似,打算回复 甜品好吃 时,可以根据当前上下文和库中上下文的不同,让模型学会去把甜品改成蔬菜。

优点:检索出来的结果本来就是非常流畅的话了,这个直接在它基础上改写,生成的句子也会很流畅。

背景工作:source句子和target句子进行比较,得到两个插入了哪些词、删除了哪些词的集合,两个集合各自的word embedding相加或者平均之类的得到两个embedding,叫做 edit vector,然后把query以及检索出来的回复,以及 edit vector 一起作为decoder的输入,就能让模型有效学会改写句子,输出是改写后的句子。

当前工作:当前工作就是在背景工作的基础上,source是检索出的结果的上下文,target是当前上下文,这样两个集合的embedding就能表示出两个上下文之间的区别(同时加入了attention,找出哪些词更重要)。然后,把检索出的句子(这点与背景工作不同),以及edit vector 作为输入,让模型输出改写成符合当前上下文的句子。

效果 能够对response的相关度有小幅的提升,能对回复的多样性有很大提高,但缺点是对句子的流畅性有所破坏。

启发: 能否把edit vector的思路,用在其他NLP或者更广泛的其他方面?

# 4 Knowledge Aware Dialogue Generation 周昊

知识驱动的对话生成

# 将常识引入对话生成

什么是常识:柠檬是酸的,树上有叶子,狗有四条腿等。

常识的作用:帮助识别input中的重点词,有助于理解;可根据常识来生成更有质量的回复。

工作:在encoder-decoder模型的基础上,分别加入了knowledge interpreter和knowledge aware generator。

在encoder的rnn每一步时,将该词对应的知识图谱通过graph attention做一个embedding,和词embedding一起放入rnn中。在decoder生成时,每一步输入的是上一个词的embedding和图谱,输出时经过一个knowledge aware generator,这个generator会根据当前输入词去找它的图谱,找一个最相关的实体,判断是否直接把这个实体输出(如果是的话就直接把这个实体作为当前时刻的输出了)。

# 带情感的聊天

理解情感能提升机器人的EQ。既能更好地理解用户的需求,也能避免机器人产生一些不友好的回复。

方法:仍然是在seq2seq结构上的改进。 对语料,使用一个分类器为其标注情感标签。 在decoder中,引入emotional embedding、internal memory、external memory来表达情绪。

internal memory:有一个预先设定的情绪的向量,在decoder每一步时一起输入来指导词的输出,根据这一步输出词的不同修改这个向量作为下一步的输入。类似衰减的感觉(情感一开始最强烈后面就平淡了)。

external memory:在decoder每一步输出时,判断当前是生成一个emotional的词还是生成一个平淡的词(对词表的词进行了情感标注)

上次更新: 2020/09/19, 22:09:00
使用gensim训练word2vec
AI Challenger 2018 细粒度情感分析

← 使用gensim训练word2vec AI Challenger 2018 细粒度情感分析→

Theme by Vdoing | Copyright © 2017-2023 anthony 京ICP备17072417-3
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式