NLP教程(7) - 问答系统

本文涉及的产品
NLP 自学习平台,3个模型定制额度 1个月
NLP自然语言处理_基础版,每接口每天50万次
NLP自然语言处理_高级版,每接口累计50万次
简介: 本文介绍 NLP 中的问答系统(Question Answering),包括 NLP 中的问答系统场景、动态记忆网络(Dynamic Memory Networks)、问答(QA)、对话、MemNN、DCN、VQA等。

ShowMeAI研究中心

作者:韩信子@ShowMeAI
教程地址http://www.showmeai.tech/tutorials/36
本文地址http://www.showmeai.tech/article-detail/245
声明:版权所有,转载请联系平台与作者并注明出处
收藏ShowMeAI查看更多精彩内容


问答系统
本系列为斯坦福CS224n《自然语言处理与深度学习(Natural Language Processing with Deep Learning)》的全套学习笔记,对应的课程视频可以在 这里 查看。

NLP中的问答系统
ShowMeAI为CS224n课程的全部课件,做了中文翻译和注释,并制作成了 GIF动图!点击 第10讲-NLP中的问答系统 查看的课件注释与带学解读。更多资料获取方式见文末。


引言

CS224n是顶级院校斯坦福出品的深度学习与自然语言处理方向专业课程,核心内容覆盖RNN、LSTM、CNN、transformer、bert、问答、摘要、文本生成、语言模型、阅读理解等前沿内容。

本篇笔记对应斯坦福CS224n自然语言处理专项课程的知识板块:问答系统。主要针对NLP中的问答系统场景,介绍了一些模型和思路。

笔记核心词

  • question answering
  • Dynamic Memory Networks \ 动态记忆网络
  • QA
  • 问答
  • 对话
  • MemNN
  • DCN
  • VQA

1.图文问答系统与动态记忆网络( DMN )

QA 系统的概念是直接从文档、对话、在线搜索等中提取信息(有时是段落,或是单词的范围),以满足用户的信息需求。 QA 系统不需要用户通读整个文档,而是倾向于给出一个简短的答案。

现在, QA 系统可以很容易地与其他 NLP 系统(如聊天机器人)结合起来,有些 QA 系统甚至超越了文本文档的搜索,可以从一组图片中提取信息。


有很多类型的问题,其中最简单的是 Factoid Question Answering 事实类问题回答。它包含的问题看起来像

  • The symbol for mercuric oxide is?(氧化汞的符号是什么?)
  • Which NFL team represented the AFC at Super Bowl 50?(哪支NFL球队代表AFC参加超级碗50赛?)

当然还有其他类型的问题,如数学问题( 公式 )、逻辑问题,这些问题需要广泛的推理(而且没有背景信息)。然而,我们可以说在人们的日常生活中,寻求信息的事实类问题回答是最常见的问题。


事实上,大多数 NLP 问题都可以看作是一个问答问题,其范式很简单:

  • 我们发出一个查询,然后机器提供一个响应。通过阅读文档或一组指令,智能系统应该能够回答各种各样的问题。
  • 我们可以要求句子的 POS 标签,我们可以要求系统用不同的语言来响应。

因此,很自然地,我们想设计一个可以用于一般 QA 的模型


为了实现这一目标,我们面临两大障碍

$$1$$. 许多NLP任务使用不同的架构,如TreeLSTM (Tai et al., 2015)用于情绪分析,Memory Network (Weston et al., 2015) 用于回答问题,以及双向LSTM-CRF (Huang et al., 2015) 用于词性标注。

$$2$$. 全面的多任务学习往往非常困难,迁移学习仍然是当前人工智能领域(计算机视觉、强化学习等)神经网络架构的主要障碍。


我们可以使用NLP的共享体系结构来解决第一个问题动态内存网络( DMN ),这是一种为一般 QA 任务设计的体系结构。 QA 很难,部分原因是阅读一段很长的文字很难。即使对于人类,我们也不能在你的工作记忆中存储一个很长的文档。

动态内存网络图示

1.1 输入模块

将 DMN 分为多个模块。首先我们来看输入模块

输入模块以单词序列 公式 作为输入,输出事实表示序列 公式

  • 如果输出是一个单词列表,我们有 公式
  • 如果输出是一个句子列表,我们有 公式 作为句子的数量, 公式 作为句子中的单词数量。

我们使用一个简单的 GRU 来读取其中的句子,即隐藏状态 公式,其中 公式公式 为嵌入矩阵, 公式公式 时刻的单词,我们使用 Bi- GRU 进一步改进,如下图所示。

动态内存网络图示

(本部分DMN网络频繁使用到GRU结构,具体的GRU细节讲解可以查看ShowMeAI的对吴恩达老师课程的总结文章深度学习教程 | 序列模型与RNN网络,也可以查看本系列的前序文章NLP教程(5) - 语言模型、RNN、GRU与LSTM

1.2 问题读取模块

我们也使用标准的 GRU 来读取问题(使用嵌入矩阵 公式 ),但是问题模块的输出是问题的编码表示。

1.3 情景记忆模块

动态记忆网络的一个显著特征是情景记忆模块,它在输入序列上运行多次,每次关注输入的不同事实子集。它使用 Bi- GRU 实现这一点, Bi- GRU 接收输入模块传入的句子级别表示的输入,并生成情景记忆表示。

我们将情景记忆表征表示为 公式,情景表征(由注意机制输出)表示为 公式。情景记忆表示使用 公式 初始化,然后继续使用 公式。使用来自输入模块的隐藏状态输出更新情景表征,如下所示,其中 公式 是注意机制。

公式


注意向量 公式 的计算方法有很多,但是在原始的 DMN 论文(Kumar et al. 2016)中,我们发现以下公式是最有效的

公式公式公式


这样,如果句子与问题或记忆有关,这个模块中的门就会被激活。在第 公式 遍中,如果总结不足以回答问题,我们可以在第 公式 遍中重复输入序列。

例如,考虑这样一个问题 Where is the football? 以及输入序列 John kicked the footballJohn was in the field。在这个例子中,John和football可以在一个pass中连接,然后John和field可以在第二个pass中连接,这样网络就可以根据这两个信息进行传递推断。

1.4 回答模块

回答模块是一个简单的 GRU 解码器,它接收问题模块、情景记忆模块的输出,并输出一个单词(或者通常是一个计算结果)。其工作原理如下:

公式

1.5 实验

通过实验可以看出, DMN 在 babl 问答任务中的表现优于 MemNN,在情绪分析和词性标注方面也优于其他体系结构。情景记忆需要多少个情景?答案是,任务越难,通过的次数就越多。多次传递还可以让网络真正理解句子,只关注最后一项任务的相关部分,而不是只对单词嵌入的信息做出反应。

关键思想是模块化系统,你可以通过更改输入模块来允许不同类型的输入。例如,如果我们用一个基于卷积神经网络的模块替换输入模块,那么这个架构就可以处理一个称为可视化问题回答(VQA)的任务。它也能够在这项任务中胜过其他模型。

1.6 总结

自2015年以来,寻找能够解决所有问题的通用体系结构的热情略有减退,但在一个领域进行训练并推广到其他领域的愿望有所增强。要理解更高级的问答模块,读者可以参考动态注意力网络(DCN)。

2.参考资料

ShowMeAI 系列教程推荐

NLP系列教程文章

斯坦福 CS224n 课程带学详解

ShowMeAI用知识加速每一次技术成长

目录
相关文章
|
7天前
|
人工智能 自然语言处理 API
用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
UI-TARS Desktop 是一款基于视觉语言模型的 GUI 代理应用,支持通过自然语言控制电脑操作,提供跨平台支持、实时反馈和精准的鼠标键盘控制。
273 17
用自然语言控制电脑,字节跳动开源 UI-TARS 的桌面版应用!内附详细的安装和配置教程
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
【人工智能技术专题】「入门到精通系列教程」零基础带你进军人工智能领域的全流程技术体系和实战指南(NLP自然语言处理概念介绍)
153 0
|
2月前
|
机器学习/深度学习 自然语言处理 知识图谱
GraphRAG在自然语言处理中的应用:从问答系统到文本生成
【10月更文挑战第28天】作为一名自然语言处理(NLP)和图神经网络(GNN)的研究者,我一直在探索如何将GraphRAG(Graph Retrieval-Augmented Generation)模型应用于各种NLP任务。GraphRAG结合了图检索和序列生成技术,能够有效地处理复杂的语言理解和生成任务。本文将从个人角度出发,探讨GraphRAG在构建问答系统、文本摘要、情感分析和自动文本生成等任务中的具体方法和案例研究。
99 5
|
6月前
|
机器学习/深度学习 自然语言处理 机器人
使用Python实现深度学习模型:自然语言理解与问答系统
【7月更文挑战第20天】 使用Python实现深度学习模型:自然语言理解与问答系统
71 0
使用Python实现深度学习模型:自然语言理解与问答系统
|
8月前
|
机器学习/深度学习 数据采集 人工智能
基于深度学习的自然语言处理技术在智能问答系统中的应用
随着人工智能技术的飞速发展,自然语言处理(NLP)已成为连接人类与机器的桥梁。本文深入探讨了深度学习在自然语言处理领域中的应用,尤其是其在构建智能问答系统中的作用。通过对现有技术的剖析与最新研究成果的整合,文章展示了如何利用循环神经网络(RNN)、长短期记忆网络(LSTM)以及注意力机制等深度学习模型来提高问答系统的理解能力和响应质量。本研究不仅关注模型的架构创新,也着重于数据处理、模型训练和优化策略等实践细节,力求为读者提供一个全面而深刻的技术视角。
|
机器学习/深度学习 自然语言处理 算法
深入NLTK:Python自然语言处理库高级教程
在前面的初级和中级教程中,我们了解了NLTK库中的基本和进阶功能,如词干提取、词形还原、n-gram模型和词云的绘制等。在本篇高级教程中,我们将深入探索NLTK的更多高级功能,包括句法解析、命名实体识别、情感分析以及文本分类。
|
自然语言处理 Python
入门NLTK:Python自然语言处理库初级教程
NLTK(Natural Language Toolkit)是一个Python库,用于实现自然语言处理(NLP)的许多任务。NLTK包括一些有用的工具和资源,如文本语料库、词性标注器、语法分析器等。在这篇初级教程中,我们将了解NLTK的基础功能。
|
机器学习/深度学习 人工智能 自然语言处理
自然语言处理:实现智能问答系统的关键技术
自然语言处理在实现智能问答系统中起着重要作用。通过文本预处理、信息检索、语义理解和答案生成等关键技术,我们可以构建高效准确的智能问答系统,为用户提供便捷的信息获取方式。随着深度学习等技术的发展,智能问答系统的性能还将得到进一步提升,为人们提供更加智能化的服务。
694 0
|
自然语言处理 数据可视化 Python
掌握NLTK:Python自然语言处理库中级教程
在之前的初级教程中,我们已经了解了NLTK(Natural Language Toolkit)的基本用法,如进行文本分词、词性标注和停用词移除等。在本篇中级教程中,我们将进一步探索NLTK的更多功能,包括词干提取、词形还原、n-gram模型以及词云的绘制。
|
机器学习/深度学习 自然语言处理 算法
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)
文档关键信息提取形成知识图谱:基于NLP算法提取文本内容的关键信息生成信息图谱教程及码源(含pyltp安装使用教程)

热门文章

最新文章