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 π (确定或者随机)

![1](E:\fourth_year_in_bupt\paper\笔记\neural approach to conversational AI\1.JPG)

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$作如下更新

![2](E:\fourth_year_in_bupt\paper\笔记\neural approach to conversational AI\2.JPG)

上面公式就是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

![3](E:\fourth_year_in_bupt\paper\笔记\neural approach to conversational AI\3.JPG)

周期的,$\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:

![4](E:\fourth_year_in_bupt\paper\笔记\neural approach to conversational AI\4.JPG)

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

![5](E:\fourth_year_in_bupt\paper\笔记\neural approach to conversational AI\5.JPG)

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)$, 下面介绍的三种方法不同之处在于推理执行在离散符号空间还是连续神经空间。

  1. symbolic methods

Neural Approaches to Conversational AI的更多相关文章

  1. DeepLearning.ai学习笔记汇总

    第一章 神经网络与深度学习(Neural Network & Deeplearning) DeepLearning.ai学习笔记(一)神经网络和深度学习--Week3浅层神经网络 DeepLe ...

  2. [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 ...

  3. 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 ...

  4. 全球最牛的100家AI创企:有多少独角兽?

    全球最牛的100家AI创企:有多少独角兽? 自2012年以来,在共计263笔交易中筹集了38亿美元.那么,这100家顶尖AI公司主要集中在哪些方向?其中有多少家独角兽公司?中国企业表现如何呢? 近期, ...

  5. 斯坦福NLP课程 | 第15讲 - NLP文本生成任务

    作者:韩信子@ShowMeAI,路遥@ShowMeAI,奇异果@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www. ...

  6. 【MT】牛津的MT教程

    Preamble This repository contains the lecture slides and course description for the Deep Natural Lan ...

  7. Introducing Deep Reinforcement

    The manuscript of Deep Reinforcement Learning is available now! It makes significant improvements to ...

  8. 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 ...

  9. 自然语言15.1_Part of Speech Tagging 词性标注

    QQ:231469242 欢迎喜欢nltk朋友交流 https://en.wikipedia.org/wiki/Part-of-speech_tagging In corpus linguistics ...

随机推荐

  1. global nonlocal 闭包构建 变量名解析原则

  2. 关于一类docker容器闪退问题定位

    背景:正在学习docker期间,接到一个任务,通过docker部署一个应用A.该应用A类似于之前部署的应用B,结果很自然地犯了形而上学的错误. 思路:基于dockerfile+docker-compo ...

  3. 一文读懂一条 SQL 查询语句是如何执行的

    2001 年 MySQL 发布 3.23 版本,自此便开始获得广泛应用,随着不断地升级迭代,至今 MySQL 已经走过了 20 个年头. 为了充分发挥 MySQL 的性能并顺利地使用,就必须正确理解其 ...

  4. 【Azure Developer】使用 Python SDK连接Azure Storage Account, 计算Blob大小代码示例

    问题描述 在微软云环境中,使用python SDK连接存储账号(Storage Account)需要计算Blob大小?虽然Azure提供了一个专用工具Azure Storage Explorer可以统 ...

  5. 目标检测中的anchor-based 和anchor free

    目标检测中的anchor-based 和anchor free 1.  anchor-free 和 anchor-based 区别 深度学习目标检测通常都被建模成对一些候选区域进行分类和回归的问题.在 ...

  6. 噪声标签的负训练:ICCV2019论文解析

    噪声标签的负训练:ICCV2019论文解析 NLNL: Negative Learning for Noisy Labels 论文链接: http://openaccess.thecvf.com/co ...

  7. AMD–7nm “Rome”芯片SOC体系结构,支持64核

    AMD–7nm "Rome"芯片SOC体系结构,支持64核 AMD Fully Discloses Zeppelin SOC Architecture Details at ISS ...

  8. 谁才是智能家居的未来?视声M+O融合方案给出答案

    有些智能家居,你不能说它不智能. 但在现实生活中,常常帅不过一秒. 就比如,当你经历了一天的疲惫后回到家,发现玄关的智能开关突然没反应,家里的灯怎么都打不开.这种时候你得明白,你的智能开关面板很有可能 ...

  9. String类对象相加时做了什么

    我们都知道java中的加号操作符除了加法.表示正数之外,还可以用作字符串的连接.初学java时,你很可能会碰到类似下面的题目: 以下这段代码产生了几个String对象: String str1 = & ...

  10. 『言善信』Fiddler工具 — 11、Fiddler中Composer功能详解

    目录 1.Composer功能介绍 2.Composer界面说明 3.使用方式 (1)自定义Request请求 (2)Composer重复发送请求 (3)Composer篡改请求数据 1.Compos ...