Neural Approaches to Conversational AI
Neural Approaches to Conversational AI
学姐介绍的一篇综述阅读笔记
SIGIR 2018
主要贡献:
提出一个综合的调查关于最近几年的应用在QA,任务导向和闲聊对话机器人的神经网络方法
描述了现在和传统方法之间的联系,允许我们更好的理解研究为什么并且如何进化并且散发光在我们前行的道路上
提出先进的方法去训练对话数据,使用监督学习和强化学习的方法
概述在搜索对话和工业中使用的标志性对话系统,研究我们已经达到的成就和仍需面对的挑战
对话:
task completion: agent need to accomplish user tasks
social chat: agent need to converse appropriately with users - like a human as measured by the Turing test - and provide useful recommendations
bots : task-oriented & chitchat
dialogue as optimal decision making
连续的决策制定过程。它有一个自然的结构:一个高层次的选择使得客服去激活某一种特别的子任务,和 一个低层次的过程,又被选择的客服控制,选择最初的动作去完成子任务。
这样的层次决定制定过程能被马尔科夫决策过程(MDPs)描述,这里的选择被定义为primitive actions to higher-level actions。这是对传统的MDP的扩展,原来的MDP设置为一个客服在每一个时间步只能选择一个primitive action,新的MDPs可以选择一个“multi-step” action。
如果我们将每一个option看作一个action,那么top- & low- level 都能够自然的被强化学习框架捕捉。对话agent在MDP中导航,通过一系列离散的step to interact with its environment。在每一个时间步,agent会observe the current state, and chooses an action 根据policy。agent之后会收到reward,然后observe a new state,继续这个循环直到阶段终点。goal of dialogue learning 是去发现最佳策略去最大化expected rewards。
sounding board: a social chatbots designed to maximize user engagement , measured by the expected reward function of conversation-turns per session (CPS)。
混合方法去组合不同ML方法的力量,例如,我们可能会使用仿造品或者监督学习方法。
the transition of NLP to Neural Approaches
NLP应用不同于其他数据处理系统,在语言知识应用的多样性方面,包括音系学,词态学,语法,语义和论述。这些组合任务可以被看作是自然语言的模糊性在不同程度上,通过匹配一个自然语言句子到一系列人为定义的清楚的符号表达,例如POS(part of speech),context free grammar, first-order predicate calculus.
代替的,端到端的系统聚焦在小心的裁剪增长的神经网络复杂度
机器学习背景
supervised learning (SL)
mean squared error (MSE)
stochastic gradient descent (SGD)
在未知领域,agent要学会通过和环境互动进而自己去学习如何进行下一步动作,这就是强化学习(RL)。1:agent必须要充分利用已经知道的知识为了去获得奖励,但同时也必须要去探索未知的领域和知识为了在未来有更好的行动选择。2:delay reward and temporal credit assignment:agent 直到session的结束都不知道一个对话是否是成功的完成了任务,因此他必须确定在sequence中的哪个动作会对最后的奖励获得有作用,这个问题就是temporal credit assignment。3:partially observed states:神经网络学习通过编码所有的在现在轮和过去步获得的信息去表示状态
和过去的技术相比,神经网络方法提供一个更有效的解决方案通过利用深度神经网络的表示学习力量。
deep learning
multi-layer perceptron (MLP) inputs/outputs/hidden layers
deep neural networks (DDN)
information retrieval (IR)
设计一个深度学习分类器的主要努力是在优化神经网络结构for effective representation learning。
convolutional layers for local words dependencies & recurrent for global word sequences
deep semantic similarity model (DSSM)
reinforcement learning
agent-environment interaction is modeled as a discrete-time Markov decision process (MDP), described by a five-tuple M=<S,A,P,R,Y>
s:环境能够存在的可能无限大的状态集合;a:agent可能存在的可能无限大的状态集合;p(s'|s,a) 在动作 a 后环境的状态从 s 转移到 s' 转移概率;r(s,a) 在agent再状态 s 执行完动作 a 后 agent 立刻接受到的平均奖励;y 属于 0 到 1,左开右闭
transition : (s,a,r,s'), action-selection policy denoted by π (确定或者随机)

Q-learning
第一种算法基于一个理论:一个优化策略能被立刻检索到如果优化 Q 功能是可获得的,优化策略被描述为:
$$
π^(s) = \mathop {argmax}_{a}Q^(s,a).
$$
因此,一大部分的强化学习的算法聚焦在学习$Q^*(s,a)$上,统称为value-function-based methods.
在实际中,用一个表格去表示 Q(s,a)是昂贵的,每一个 (s,a) 一条记录。因此我们通常使用压缩形式去表示 Q。特别的,我们假设 Q-function 有一个预定义好的参数形式,一个线性近似的例子是:
$$
Q(s,a;\theta) = \phi(s,a)^T \theta
$$
其中的$\phi (s,a)$是一个 d-dimensional hand-coded feature vector for state-action pair (s,a), $\theta$是从数据中学到的相关系数向量。一般来讲$Q(s,a;\theta)$有许多不同的表达形式。例如 deep Q-network(DQN)。进一步,Q-function的表达也可以使用非参数的形式,例如决策树或者是 Gaussian processes。在发现一个state transition (s,a,r,s')后$\theta$作如下更新

上面公式就是Q-learning,$\nabla$求梯度。
Q-learning通常是不稳定的且需要许多example在达到最优解Q*之前。两个修改可以帮助改善这个,第一个是 experience replay, 代替仅仅使用一次 observed transition to update $\theta$, one may store it in a reply buffer, and 周期性从中采样去执行Q-learning update。这种方法使得每个transaction都能多次利用,而且这也帮助学习过程更加稳定通过避免数据分布当更新参数的时候改变太过剧烈。
第二个就是 two-network implementation。这里,learner maintains an extra copy of the Q-function, called the target network, parameterized by $\theta_{target}$ .学习过程中,这个参数是fixed

周期的,$\theta_{target}$ 被更新为 $\theta$ ,the process continues. 这是固定值迭代算法的一个例子
dueling Q-network / double Q-learning / SBEED
POLICY Gradient
另一种算法是直接去优化policy,不用必须去学习Q-function。policy本身directly parameterized by $\theta \in \mathbb{R}^d$ ,$\pi(s;\theta)$ is often a distribution over actions.policy被它在H长度的轨道,$\tau = (s_1,a_1,r_1,...,s_H,a_H,r_H)$,中得到的平均的长期reward评估:
$$
J(\theta):=\mathbb{E}[\sum^{H}{t = 1}\gamma^{t-1}r_t|a_t\sim\pi(s_t;\theta)].
$$
从采样的trajectory中去估计$\nabla\theta J$是可能的,通过随机梯度下降去最大化J:
$$
\theta \leftarrow \theta+\alpha \nabla_\theta J(\theta),
$$
这个算法就是REINFORCE:

actor-critic算法:因为上式是直接求和,所以方差的变化可能会很剧烈,通过使用一种 estimated value function of the current policy. often referred to as the critic in 这个算法:

moreover,仍然有许多工作要做去研究怎么计算 $\nabla_\theta J $ 更有效,比起上式中的剧烈的下降 steepest descent.
exploration
update value function or policy, when transitions are given as input. 一个强化学习agent 也应该学会怎么去select actions to collect desired transitions for learning. 选择一个全新的action叫作 exploration。这是有风险的,所以exploration 和 exploitation 之间的平衡非常重要。
一种基础 exploration 策略是 $\epsilon - greedy$ . 主要思想是去选择一个看起来最好的高概率的 action (for exploitation),和一个随机的小概率的 action (for exploration)。DQN情况下,假设 $\theta$ 是现在 Q-function 的参数,然后状态的 action-selection 规则就是:
$$
a_t=\begin{cases}
\mathop {argmax}_{a}Q(s_t,a;\theta) & with probability\quad 1 - \epsilon \
random action &with probability\quad \epsilon
\end{cases}
$$
Question Answering and Machine Reading Comprehension
KB (knowledge base) QA / text-QA
Implicit ReasoNet (IRN) / M-walk - KBQA
machine reading comprehension (MRC) :
- encoding questions and passages as vectors in a neural space
- performing reasoning推理 in the neural space to generate the answer
TREC QA open benchmarks
knowledge base
DBPedia, Freebase, Yago
subject-predicate-object troples (s, r, t) -> knowledge graph (KG)
semantic parsing for KB-QA
paraphrasing in natural language : embedding-based methods
search complexity : multi-step reasoning
embedding-based methods
knowledge base completion (KBC) task:predicting the existence of a triple that is not seen in the KB. (whether a faxt is true or not)
bilinear model:the model scores how likely a triple holds using: $score(s,r,t;\theta)=x_s^T W_r x_t$ ,$x_e \in \mathbb{R}^d$ 是对于每个实体学到的vector,$W_r$矩阵是对于每个关系来说学到的。每个真实在KB库中的就是正样本,负样本由毁坏实体关系对中的任意一项得到。the margin-based(基于边际的)loss :
$$
L(\theta)=\sum_{(x+,x-)\in \mathcal{D}} [\gamma+score(x^-;\theta) - score(x^+;\theta)],
$$
$[x]_+:=max(0,x) $
path queries : an initial anchor entity s, a sequence of relations to be traversed $(r_1,...,r_k)$ ,how likely a path query $(q,t)$ holds, $q=(s,r_1,...,r_k)$ :
$$
score(q,t)=x_s^TW_{r_1} ...W_{r_k}x_t.
$$
multi-step reasoning on KB
knowledge base reasoning (KBR) :relational paths $\pi = (r_1,..,r_k)$, 下面介绍的三种方法不同之处在于推理执行在离散符号空间还是连续神经空间。
- symbolic methods
Neural Approaches to Conversational AI的更多相关文章
- DeepLearning.ai学习笔记汇总
第一章 神经网络与深度学习(Neural Network & Deeplearning) DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络 DeepLe ...
- [C1] Andrew Ng - AI For Everyone
About this Course AI is not only for engineers. If you want your organization to become better at us ...
- AI AND THE BOTTOM LINE: 15 EXAMPLES OF ARTIFICIAL INTELLIGENCE IN FINANCE
https://builtin.com/artificial-intelligence/ai-finance-banking-applications-companies f there's one ...
- 全球最牛的100家AI创企:有多少独角兽?
全球最牛的100家AI创企:有多少独角兽? 自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?其中有多少家独角兽公司?中国企业表现如何呢? 近期, ...
- 斯坦福NLP课程 | 第15讲 - NLP文本生成任务
作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...
- 【MT】牛津的MT教程
Preamble This repository contains the lecture slides and course description for the Deep Natural Lan ...
- Introducing Deep Reinforcement
The manuscript of Deep Reinforcement Learning is available now! It makes significant improvements to ...
- Saw a tweet from Andrew Liam Trask, sounds like Oxford DeepNLP 2017 class have all videos slides practicals all up. Thanks Andrew for the tip!
Saw a tweet from Andrew Liam Trask, sounds like Oxford DeepNLP 2017 class have all videos/slides/pra ...
- 自然语言15.1_Part of Speech Tagging 词性标注
QQ:231469242 欢迎喜欢nltk朋友交流 https://en.wikipedia.org/wiki/Part-of-speech_tagging In corpus linguistics ...
随机推荐
- 启动kafaka失败了,提示zk保存kafka的ids已经在使用。
FATAL [Kafka Server 1], Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.Ka ...
- mysql mysqladmin常用命令
修改root密码 mysqladmin -u root -p123456 password 'YOURNEWPASSWORD' 检查mysql是否在运行 systemctl status mariad ...
- MVC、MVP和MVVM的区别
前言 在web1.0时代时,那个时候程序猿还没有前后端之分,更程序员开发的时候,都是要前后端一起写的,前后端的代码都是杂揉在一起,如图下 这种开发模式的话,开发的时候因为不需要和其他人员沟通协作,前后 ...
- Python+Selenium学习笔记4 - submit&get_attribute
1.submit() submit()方法用于提交表单.如在搜索框输入关键字后按回车键进行查询操作,就可用submit()方法模拟.若不能按回车键进入下一步,则不能用submit()举例,百度的查询提 ...
- GPU编程和流式多处理器(五)
GPU编程和流式多处理器(五) 4. 条件代码 硬件实现了"条件代码"或CC寄存器,其中包含用于整数比较的常用4位状态向量(符号,进位,零,溢出).可以使用比较指令(例如ISET) ...
- python+selenium基础篇,句柄操作(多个页面切换)
1.我们打开网页有时候会开出多个页面,导致我们常常定位不到我们需要的元素,这种情况可能就是句柄的因素,如下图所示: 2.句柄切换代码如下: from selenium import webdriver ...
- 尚硅谷Java——宋红康笔记【day25-day29】
day25 Map接口 一.Map的实现类的结构: |----Map:双列数据,存储key-value对的数据 ---类似于高中的函数:y = f(x) |----HashMap:作为Map的主要实现 ...
- Docker系列——Grafana+Prometheus+Node-exporter钉钉推送(四)
近期搭建的服务器监控平台,来进行一个总结.主要分为监控平台的搭建.告警中心的配置以及消息的推送.推送的话,支持多种终端.具体详细可查看之前的博文,在这里罗列下,方便查看. Docker系列--Graf ...
- 【C++】vector容器的用法
检测vector容器是否为空: 1 #include <iostream> 2 #include <string> 3 #include <vector> 4 us ...
- 【接口测试】-1.常用的接口测试工具(Postman、soupUI、Jemeter)
1) Postman 1.get/post请求-- postman获取用户信息1 get方式:可以直接在url中写入参数 Post方式:请求体可以写到URL或Body的form-data中写参 ...