自然语言理解是谷歌人工智能研究的一个重要且持续关注的领域,并已应用于机器翻译、句法和语义分析等。重要的是,会话技术对直接回答用户问题的能力要求越来越高,谷歌致力于研究的领域之一,便是人类对话的基本组成部分——问答(QA)。
由于开源代码是可重复研究的关键,谷歌发布了一个用于主动问答(ActiveQA)的 TensorFlow 软件包(https://github.com/google/active-qa) ,此项目使用强化学习来训练 AI 代理进行问答。在谷歌的 ICLR 2018 论文 Ask the Right Questions: Active Question Reformulation with Reinforcement Learning (https://ai.google/research/pubs/pub46733)中首次引入这一概念,ActiveQA 使用自然语言与 QA 系统进行交互,以提供更优答案。
主动问答
在传统的 QA 中,监督学习技术与标记数据通常结合使用,以训练响应任意输入问题的系统。这种方法虽然有效,但缺乏处理人类重组提问、进行多个搜索、评估和汇总回答等不确定性的能力。受人类“提出正确问题”能力的启发,ActiveQA 引入了一个反复询问 QA 系统的代理。如此,代理可以多次重新组成原始问题以找到最可能答案。谷歌称这种方法是主动的,因为代理与 QA 系统进行动态交互,以提高返回答案的质量。
例如,面对“特斯拉何时出生?”这一问题,代理会以两种不同的方式重新提出问题:“特斯拉的生日是什么时候”和“特斯拉出生于哪一年”,从系统中检索这两个问题的答案。综合所有这些信息,它决定返回“1856 年 7 月 10 日”这一答案。
ActiveQA 系统的特点是它能够学会提出可以给出更好答案的问题。但是,由于以一个原始问题和更优化的变体对组成的训练数据并不容易获得,ActiveQA 使用强化学习,最大化奖励积极行动,同时与环境互动。
学习过程在 ActiveQA 代理与 QA 系统交互时即开始进行;根据相应答案的质量来评估每个重新形成问题的优劣,形成奖励。如果是优质答案,学习算法将调整模型的参数,以提高再次产生类似答案的问题重构的可能性,反之亦然。
谷歌的论文中表明,通过提出更好的问题,可以训练这些代理的表现优于基础 QA 系统,该系统通过提出更好的问题以提供重组问题的答案。此研究的另一结论同样引人注意,即 ActiveQA 代理可以学习一种相当复杂的,可解释的重组策略(强化学习中的策略)。此学习策略会使用大家耳熟能详的信息检索技术,例如 tf-idf 查询术语重新加权,通过这一过程,可以得到比通用术语更多的加权信息性术语。
动手构建自己的 ActiveQA 系统
谷歌发布的 TensorFlow ActiveQA 包由三个主要组件组成,包括训练和运行 ActiveQA 代理所需的所有代码。
经过预训练的序列模型,它将问题作为输入并返回重组问题。此任务类似于机器翻译中的英语 - 英语翻译,初始模型可用于一般性释义。谷歌通过重组 TensorFlow 神经机器翻译教程代码(https://github.com/tensorflow/nmt) 来实现它。此外,谷歌使用策略梯度方法调整代码,以支持强化学习训练。
答案选择模型。原始问题、重组和答案三个为一组,答案选择器使用卷积神经网络为其打分。选择器使用预先训练的、公开可用的单词嵌入(GloVe https://nlp.stanford.edu/projects/glove/)。
-
问答系统(环境)。为此,谷歌使用一种流行的问答系统 BioF,此文有介绍(https://openreview.net/forum?id=HJ0UKP9ge¬eId=HJ0UKP9ge)。自然语言理解是谷歌人工智能研究的一个重要且持续关注的领域,并已应用于机器翻译、句法和语义分析等。重要的是,会话技术对直接回答用户问题的能力要求越来越高,谷歌致力于研究的领域之一,便是人类对话的基本组成部分——问答(QA)。
由于开源代码是可重复研究的关键,谷歌发布了一个用于主动问答(ActiveQA)的 TensorFlow 软件包(https://github.com/google/active-qa) ,此项目使用强化学习来训练 AI 代理进行问答。在谷歌的 ICLR 2018 论文 Ask the Right Questions: Active Question Reformulation with Reinforcement Learning (https://ai.google/research/pubs/pub46733)中首次引入这一概念,ActiveQA 使用自然语言与 QA 系统进行交互,以提供更优答案。
主动问答在传统的 QA 中,监督学习技术与标记数据通常结合使用,以训练响应任意输入问题的系统。这种方法虽然有效,但缺乏处理人类重组提问、进行多个搜索、评估和汇总回答等不确定性的能力。受人类“提出正确问题”能力的启发,ActiveQA 引入了一个反复询问 QA 系统的代理。如此,代理可以多次重新组成原始问题以找到最可能答案。谷歌称这种方法是主动的,因为代理与 QA 系统进行动态交互,以提高返回答案的质量。
例如,面对“特斯拉何时出生?”这一问题,代理会以两种不同的方式重新提出问题:“特斯拉的生日是什么时候”和“特斯拉出生于哪一年”,从系统中检索这两个问题的答案。综合所有这些信息,它决定返回“1856 年 7 月 10 日”这一答案。
ActiveQA 系统的特点是它能够学会提出可以给出更好答案的问题。但是,由于以一个原始问题和更优化的变体对组成的训练数据并不容易获得,ActiveQA 使用强化学习,最大化奖励积极行动,同时与环境互动。
学习过程在 ActiveQA 代理与 QA 系统交互时即开始进行;根据相应答案的质量来评估每个重新形成问题的优劣,形成奖励。如果是优质答案,学习算法将调整模型的参数,以提高再次产生类似答案的问题重构的可能性,反之亦然。
谷歌的论文中表明,通过提出更好的问题,可以训练这些代理的表现优于基础 QA 系统,该系统通过提出更好的问题以提供重组问题的答案。此研究的另一结论同样引人注意,即 ActiveQA 代理可以学习一种相当复杂的,可解释的重组策略(强化学习中的策略)。此学习策略会使用大家耳熟能详的信息检索技术,例如 tf-idf 查询术语重新加权,通过这一过程,可以得到比通用术语更多的加权信息性术语。
动手构建自己的 ActiveQA 系统谷歌发布的 TensorFlow ActiveQA 包由三个主要组件组成,包括训练和运行 ActiveQA 代理所需的所有代码。
经过预训练的序列模型,它将问题作为输入并返回重组问题。此任务类似于机器翻译中的英语 - 英语翻译,初始模型可用于一般性释义。谷歌通过重组 TensorFlow 神经机器翻译教程代码(https://github.com/tensorflow/nmt) 来实现它。此外,谷歌使用策略梯度方法调整代码,以支持强化学习训练。
答案选择模型。原始问题、重组和答案三个为一组,答案选择器使用卷积神经网络为其打分。选择器使用预先训练的、公开可用的单词嵌入(GloVe https://nlp.stanford.edu/projects/glove/)。
问答系统(环境)。为此,谷歌使用一种流行的问答系统 BioF,此文有介绍(https://openreview.net/forum?id=HJ0UKP9ge¬eId=HJ0UKP9ge)。