基于Bidirectional AttentionFlow的机器阅读理解实践

2024-01-25 07:18

本文主要是介绍基于Bidirectional AttentionFlow的机器阅读理解实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

机器阅读是实现机器认知智能的重要技术之一。机器阅读任务主要有两大类:完形填空和阅读理解。

(1)完型填空类型的问答,简单来说就是一个匹配问题。问题的求解思路基本是:
  1) 获取文档中词的表示
  2) 获取问题的表示

  3) 计算文档中词和问题的匹配得分,选出最优

(2)文本段类型的问答,与完型填空类型的问答,在思想上非常类似,主要区别在于:完形填空的目标是文档中的一个词,文本阅读理解的目标是文档中的两个位置,分别用来标志答案的起点和终点。目标的差别带来了网络模型上一些差别。

继上次复现了r-net的方案之后,现将之前复现过的Bidirectional AttentionFlow (经典的阅读理解模型)也进行记录一下。


1、基本原理

BiDAF模型最大的特点是在interaction层引入了双向注意力机制,计算Query2Context和Context2Query两种注意力,并基于注意力计算query-aware的原文表示。


模型由这样几个层次组成:

(1)Character Embedding Layer使用char-CNN将word映射到固定维度的向量空间;

(2)Word Embedding Layer使用(pre-trained)word embedding将word映射到固定维度的向量空间;

从上图可以看出,该模型同时使用了字符的词向量和词向量两种层次的嵌入表示。

(3)Contextual Embedding Layer将上面的到的两个word vector拼接,然后输入LSTM中进行context embedding;

(4)Attention Flow Layer将passage embedding和question embedding结合,使用Context-to-query Attention 和Query-to-contextAttention得到word-by-word attention;

(5)Modeling Layer将上一层的输出作为bi-directional RNN的输入,得到Modeling结果M;

(6)Output Layer使用M分类得到passage的起始位置,然后使用M输入bi-directional LSTM得到M2,再使用M2分类得到passage的中止位置作为answer。

2、实验测试

(1)启动训练,加载词向量模型


(2)训练过程截图

(3)训练后的测试结果,如下所示,可以看到F1的值可以达到74.9%

这篇关于基于Bidirectional AttentionFlow的机器阅读理解实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/642484

相关文章

深入理解C++ 空类大小

《深入理解C++空类大小》本文主要介绍了C++空类大小,规定空类大小为1字节,主要是为了保证对象的唯一性和可区分性,满足数组元素地址连续的要求,下面就来了解一下... 目录1. 保证对象的唯一性和可区分性2. 满足数组元素地址连续的要求3. 与C++的对象模型和内存管理机制相适配查看类对象内存在C++中,规

Docker集成CI/CD的项目实践

《Docker集成CI/CD的项目实践》本文主要介绍了Docker集成CI/CD的项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录一、引言1.1 什么是 CI/CD?1.2 docker 在 CI/CD 中的作用二、Docke

基于MySQL Binlog的Elasticsearch数据同步实践

一、为什么要做 随着马蜂窝的逐渐发展,我们的业务数据越来越多,单纯使用 MySQL 已经不能满足我们的数据查询需求,例如对于商品、订单等数据的多维度检索。 使用 Elasticsearch 存储业务数据可以很好的解决我们业务中的搜索需求。而数据进行异构存储后,随之而来的就是数据同步的问题。 二、现有方法及问题 对于数据同步,我们目前的解决方案是建立数据中间表。把需要检索的业务数据,统一放到一张M

认识、理解、分类——acm之搜索

普通搜索方法有两种:1、广度优先搜索;2、深度优先搜索; 更多搜索方法: 3、双向广度优先搜索; 4、启发式搜索(包括A*算法等); 搜索通常会用到的知识点:状态压缩(位压缩,利用hash思想压缩)。

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【生成模型系列(初级)】嵌入(Embedding)方程——自然语言处理的数学灵魂【通俗理解】

【通俗理解】嵌入(Embedding)方程——自然语言处理的数学灵魂 关键词提炼 #嵌入方程 #自然语言处理 #词向量 #机器学习 #神经网络 #向量空间模型 #Siri #Google翻译 #AlexNet 第一节:嵌入方程的类比与核心概念【尽可能通俗】 嵌入方程可以被看作是自然语言处理中的“翻译机”,它将文本中的单词或短语转换成计算机能够理解的数学形式,即向量。 正如翻译机将一种语言

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

【C++高阶】C++类型转换全攻略:深入理解并高效应用

📝个人主页🌹:Eternity._ ⏩收录专栏⏪:C++ “ 登神长阶 ” 🤡往期回顾🤡:C++ 智能指针 🌹🌹期待您的关注 🌹🌹 ❀C++的类型转换 📒1. C语言中的类型转换📚2. C++强制类型转换⛰️static_cast🌞reinterpret_cast⭐const_cast🍁dynamic_cast 📜3. C++强制类型转换的原因📝