问答系统总结-程序员宅基地

技术标签: 人工智能  

最近在研究问答系统,但是在查找资料的过程中一直处于懵逼状态,因为问答系统分类比较多,根据不同的依据可以分为不同种类,总是搞混,也没有找到资料详细全面的介绍,所以在一边学习查找资料的同时,自己也整理出一份总结,用于以后学习过程不至于思路混乱,如有错误请帮忙指出.

19世纪60年代最早:基于模板和规则

19世纪90年代:基于检索(IR)匹配-从问题中提取关键词,根据关键词在文本库中搜索相关文档,并进行降序排序,然后从文档中提取答案.
        主要模型有:
            单轮:DSSM,CLSM
            多轮:Multi-Viem,DAM(state-of-art),Memory-Network

2010年,知识图谱(结构化文本),基于知识库(KB-QA)-对问题进行解析,根据解析内容从知识库中推理出答案.
         基于知识库的三大传统方法:语义解析,信息提取,向量建模.
        1. 语义解析:
        2. 信息提取:用实体命名技术获取到问题中的实体,然后在知识库中进行查询,得到关于问题实体的中心子图,子图的边和结点就是候选答案的集合.进一步,可以通过分析,规则模板提取除特征,将问题和答案的特征结合送入二分类器中,将答案分为正确答案和错误答案进行建模.
        3. 向量建模:获取问题和答案的表示向量,然后做点乘求得分.
        其他:Memory-Network也可用于KB-QA

基于阅读理解的问答(MRC机器阅读理解):适用数据类型为-(给定一个问题 Q 和一个与 Q 相关的文档 D,自动得到 Q 对应的答案 A)非结构化文本,主要的方法有匹配式,抽取式和生成式
        1.匹配式:给出文章,问题和答案集,从答案集中选出最高得分的答案,像选择题.
            1)LSTM-reader(最简单的方法):把文档d和问题q合并建模后,喂到双向LSTM中,得到向量g
            2)Attentive-reader:先使用LSTM对问题建模得到向量q,再对文档建模,然后用q对文档使用attention匹配得到向量r,结合q和r,相当于带着问题读文档.
            3)Impatient-reader:同上,只不过是对每个token去计算attention,相当于先读每个字或者词,然后带着字或者词去读文档.
            4)Gated-Attention Reader:相当于带着一个问题,反复读文档,读k遍。
        2.抽取式:顾名思义就是从文档中抽取出答案,前提是文档中包括问题答案.
           这样的数据集有:斯坦福的SQuAD数据集,难度比较高的 TriviaQA数据集.
           抽取式的一般框架是,Embedder+Encoder+Interaction-layer+Answer
                Embedder:将输入embedding
                Encoder:分别对问题和文档用LSTM建模(也可以用其他方法)
                Interaction-layer:使用attention将问题和文档结合起来,对问题和文档进行交互,得到query-aware的文章表示.(个模型只要差别所在)
                Answer:对上面得到的query-aware文章表示进行抽取答案,通常有两种方法:一是使用两个模型分别预测出答案的起始和终止位置.二是把当然当成label序列(序列标注),预测出label.
            抽取式主要模型有:
                1).Match-LSTM:比较基础的模型,结构如下图(没看懂@_@),Machine Comprehension Using Match-LSTM and Answer Pointer
                    模型结构:
                    原理:
                2).BiDAF:比较出名的模型,论文地址:Bidirectional Attention Flow for Machine Comprehension
                    模型结构:
                    原理:
                3).R-Net:近似state-of-art的模型,论文地址:没找到--.
                4).FastQAExt(轻量级),FastQA: A Simple and Efficient Neural Architecture for Question Answering
                5).GA-Reader,论文地址:Gated-Attention Readers for Text Comprehension
                6).QA-Net(使用CNN),论文地址:QANET: COMBINING LOCAL CONVOLUTION WITH GLOBAL SELF-ATTENTION FOR READING COMPREHENSION
        3.生成式:目前只有MSRA的MS MARCO数据集,答案形式是这样的:1)答案完全在某篇原文.2)答案分别出现在多篇文章中.3答案一部分出现在原文,一部分出现在问题中.4)答案的一部分出现在原文,另一部分是生成的新词.5)答案完全不在原文出现(Yes / No 类型)
            常见模型:
                1).改进R-Net
                2).S-Net,论文地址:S-NET: FROM ANSWER EXTRACTION TO ANSWER GENERATION FOR MACHINE READING COMPREHENSION
                3).R3-Net:集文档检索与答案生成于一身的模型,论文地址:R 3 : Reinforced Ranker-Reader for Open-Domain Question Answering  

其他知识:
        1.transE模型:知识表示模型,最后训练出来的向量e符合如下规则:e(object)=e(subject)+e(relation),损失函数是最小正例距离最大负样本距离
        2.IRGAN模型:检索
        3.OpenIE:关系抽取工具
        4.实体/关系链接:将OpenIE抽取的关系链接到知识库
        5.检查关系是否正确,使用transE模型的思想e(object)和e(relation)+e(subject)的余弦距离小于阀值
        6.pointer network

参考文章:

https://www.zhihu.com/people/susht/posts    一份问答系统的小结

https://zhuanlan.zhihu.com/p/41217854    基于深度神经网络的自动问答系统概述

https://github.com/dapurv5/awesome-question-answering     领域经典论文,项目及数据集

转载于:https://www.cnblogs.com/hiyoung/p/10000415.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33834679/article/details/94447621

智能推荐

【Unity 笔记】文件的写入与读取(1)_uini文件读取与写入实训总结-程序员宅基地

文章浏览阅读1.8w次,点赞6次,收藏18次。引言:在unity3D中,我们经常会需要在本地或者服务器上读取游戏数据,这几篇blog记录下目前会的两种读取数据表的方式。一种是在Resource目录下通过TextAsset读取,一种是通过文件流的方式读取。Resource 下的数据是不能修改的,比如单机游戏的装备啊,NPC数据什么的;而文件流的方式是存和取数据,比如保存游戏进度什么的。下面先来说说文件流的方式吧:因为文件流的读取方式_uini文件读取与写入实训总结

解决STM32F1 系列复位后RTC日期为2000-01-01_stm32f1 复位后rtc日期不对-程序员宅基地

文章浏览阅读5.2k次,点赞3次,收藏12次。问题:STM32F1中RTC 不像 F4中,是一个单独模块。其就是一个计数器,查看HAL库中时间和日期的设置发现,在日期设置的时候,HAL库并没有将日期换算为计数器的值。库源码如下日期设置:HAL_StatusTypeDef HAL_RTC_SetTime(RTC_HandleTypeDef *hrtc, RTC_TimeTypeDef *sTime, uint32_t Format){ uin..._stm32f1 复位后rtc日期不对

MERGE语法详解-程序员宅基地

文章浏览阅读635次,点赞2次,收藏15次。merge语法是根据源表对目标表进行匹配查询,匹配成功时更新,不成功时插入。其基本语法规则是merge into 目标表 ausing 源表 bon(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……) when matched then update set a.更新字段=b.字段when not macthed then inse..._merge into限制目标表字段

pythonocc基础使用:1.读取/写入brep,iges,step,stl文件_pythonocc-core 读取step-程序员宅基地

文章浏览阅读1.2w次,点赞2次,收藏32次。待写_pythonocc-core 读取step

Java数据类型-程序员宅基地

文章浏览阅读2.4w次,点赞60次,收藏62次。文章目录定义分类计算机存储单元Java基本数据类型图数据类型转换定义Java语言是强类型语言,对于每一种数据都定义了明确的具体的数据类型,在内存中分配了不同大小的内存空间。分类基本数据类型数值型整数类型(byte,short,int,long)浮点类型(float,double)字符型(char)布尔型(boolean)引用数据类型类(class)接口(..._java数据类型

mysql hivedb_hive使用mysql localstore方式连接Access denied for user 'hive'@'localhost' to database...-程序员宅基地

文章浏览阅读252次。mysql> create user 'hive' identified by 'hive'; --创建用户Query OK, 0 rows affected (0.00 sec)mysql> grant all privileges on *.* to 'hive@localhost' with grant option; --localhost不可少,否则启动bin..._access denied for user 'hive'@'localhost

随便推点

Linux环境下DBus监听UPower和Network_gdbus monitor --system --dest-程序员宅基地

文章浏览阅读451次。1、监听UPowergdbus monitor --system --dest org.freedesktop.UPower2、监听Networkgdbus monitor --system --dest org.freedesktop.NetworkManager_gdbus monitor --system --dest

ESP32-CAM实现局域网/远程视频传输_esp32 视频传输 gb28181-程序员宅基地

文章浏览阅读3.6w次,点赞38次,收藏301次。ESP32-CAM实现局域网/远程视频传输手上这个ESP32-CAM买回来已经放了一个学期了,最近才开始玩,试了试用它来实现视频传输。局域网的视频传输比较简单,基本能正确把例程烧进去就可以了,这篇文章主要记录一下远程视频传输的实现。ESP32-CAM实现局域网/远程视频传输ESP32-CAM实现局域网/远程视频传输方法一:Platfrom IO例程+路由器内网穿透条件1. 直接使用Platfr..._esp32 视频传输 gb28181

Python爬虫实战:高清二次元女朋友图抓取_爬虫 女朋友-程序员宅基地

文章浏览阅读488次,点赞6次,收藏7次。主要运用到以下知识点:1、 requests请求三大要素2、功能函数的封装.3、os对文件路径处理4、图集分类保存效果动图展示:_爬虫 女朋友

100道python经典练习题_100道 python练习下载-程序员宅基地

文章浏览阅读6.8w次,点赞140次,收藏596次。链接:https://pan.baidu.com/s/1K0iuZKJukLoGQ8OBy7xq1Q提取码:2s6q链接长期有效,如有疑问,欢迎评论区交流。_100道 python练习下载

大麦路由器dw22d不拆机刷breed和openwrt_大麦dw22d改无线打印服务器-程序员宅基地

文章浏览阅读1.6w次,点赞17次,收藏29次。@[TOC]大麦路由器DW22D不拆机刷Breed和OpenWrt大麦路由器DW22D不拆机刷Breed和OpenWrt1.进入http://192.168.10.1/upgrade.html2.开启ssh,在密码框中输入以下内容,最后面有一个空格123 | echo 6c216b27c8c9b051106c969e2077d4e9 > /ezwrt/bin/upgrade_passwd 3.点确定,然后提示密码错误没关系4. 再次打开 http://192.168.10.1/upgra_大麦dw22d改无线打印服务器

re学习笔记(75)BUUCTF - re - [ACTF新生赛2020]Splendid_MineCraft_buuctfsplendid-mine-程序员宅基地

文章浏览阅读454次。[ACTF新生赛2020]Splendid_MineCraftmain函数strtok是用分隔符划分字符串,根据+5 +9差4个,再加上+9强转为WORD,得到每组字符是4+2=6个flag格式为ACTF{xxxxxx_xxxxxx_xxxxxx}36行跳转到数据段先是对数据段进行异或0x72h解密解密后,F5得到两个数异或+35与第一段输入进行比较第二段也是一个smc自解密第二段主要代码。ebx为用户输入与(0x83+i)异或得到的下标根据eax进行索引查表。得到的bl与第二_buuctfsplendid-mine

推荐文章

热门文章

相关标签