论文:MMCoQA: Conversational Question Answering over Text, Tables, and Images

论文核心

面向多模态信息,包括了image/text和table数据,如何开展多轮对话。
这个过程中,需要考虑,encoder如何编码?score如何计算?哪些部分可以复用已有的模型等等。
论文的方法是端到端的知识问答结构,输入的question,产生的是answer span,包括了start和end部分。
整个抽取过程分为了3部分:问题理解,多模态证据检索和答案抽取。
实现的效果,如下:

前言

现有的知识问答,可以分为:基于知识库的问答、基于文件的问答和基于社区的问答。
目前的研究,多是基于单一知识库的问答。

文章工作

数据集构建

1.产生潜在的对话集
第一步:对于在问题池中的句子,识别问题和答案中的entity.
第二步:从问题池中随机选择包含entity的问题。
2.分解复杂的问题
将复杂的问题分解为多个子问题,数据集中提供了问题的类型(问题类型表示复杂问题的分解问题的逻辑和目标数量)和中间答案
3.将分解后的问题,重新定义为多轮对话。

数据质量的保证:5步——train,annotation,check,modification,re-checking.

数据集分析

问题分析——问题的长度
答案分析——答案的模态类型
模态分析——问题需要什么模态的数据来回答

模型(MAE模型)

MAE 将 MMCoQA 任务分为三个步骤:对话式问题理解、多模态证据检索和自适应答案提取。

对话式问题理解

Encoder部分。
对于问题,采用bert将其编码
剩余的答案部分的语料,分不同模态做处理。
文本——bert。
表格——linearize tables by rows
图像——Resnet network

(在encoder部分,table/passage/question/answer统一采用的是bert编码,函数——retriever_convert_example_to_feature,img是先transform to tensor ,之后采用函数_image_transform,但是,这好像不是resnet)

query_feature_dict = {‘query_input_ids’: np.asarray(query_feature.input_ids),
‘query_token_type_ids’: np.asarray(query_feature.token_type_ids),
‘query_attention_mask’: np.asarray(query_feature.attention_mask),
‘qid’: qas_id}

entry['question_type']=="text"passage_feature_dict = {'passage_input_ids': np.asarray(passage_feature.input_ids), 'passage_token_type_ids': np.asarray(passage_feature.token_type_ids), 'passage_attention_mask': np.asarray(passage_feature.attention_mask),'retrieval_label': passage_feature.label, 'example_id': example_id,'image_input':np.zeros([3,512,512])}
entry['question_type']=="image"passage_feature_dict = {'passage_input_ids': np.asarray([0]*self._passage_max_seq_length), 'passage_token_type_ids': np.asarray([0]*self._passage_max_seq_length), 'passage_attention_mask': np.asarray([0]*self._passage_max_seq_length),'retrieval_label': 1, 'example_id': example_id,'image_input':img}
table_id=entry['table_id']passage_feature_dict = {'passage_input_ids': np.asarray(table_feature.input_ids), 'passage_token_type_ids': np.asarray(table_feature.token_type_ids), 'passage_attention_mask': np.asarray(table_feature.attention_mask),'retrieval_label': table_feature.label, 'example_id': example_id,'image_input':np.zeros([3,512,512])}
image_encoder=torchvision.models.resnet101(pretrained=True)self.query_encoder = BertModel(config)self.passage_encoder = BertModel(config)

多模态证据检索

self._modality_dict={‘text’:0,‘table’:0,‘image’:1}

在model函数中,BertForOrconvqaGlobal函数中提到了
self.modality_detection=nn.Linear(config.proj_size, 3)

以知识问答的范式解决问题时,
self.qa_outputs = nn.Linear(config.hidden_size, config.num_qa_labels)
qa_logits = self.qa_outputs(sequence_output)
start_logits, end_logits = qa_logits.split(1, dim=-1)

最大化inner product search
冻结encoder部分的参数,通过inner product计算question embedding和知识库item之间的相似度。选择top-N .

自适应答案提取

首先,根据问题,做分类模型,选择答案最可能的模态形式。
之后,针对三种模态的信息,建立抽取模型。
textExtractor:
TextExtractor predicts an answer span by computing two scores for each token in a passage in Pr to be the start token and the end token
TableExtractor.we concatenate the question text to the linearized table sequence, and encode them using BERT. T
依旧计算start和end的token。

ImageExtractor:We extract the visual feature vi for an
image with the ResNet, and append the question
text with all the answers in the answer set as a text
sequence
计算start和end token。

答案的分值,最终包括三部分,检索+模态+answer extraction

loss = loss.mean() # mean() to average on multi-gpu parallel (not distributed) training
retriever_loss = retriever_loss.mean()
reader_loss = reader_loss.mean()
qa_loss = qa_loss.mean()
rerank_loss = rerank_loss.mean()

>qa的loss计算部分

qa_loss_fct = CrossEntropyLoss(ignore_index=ignored_index)
start_loss = qa_loss_fct(start_logits, start_positions)
end_loss = qa_loss_fct(end_logits, end_positions)
qa_loss = (start_loss + end_loss) / 2

>模态计算部分

self.modality_detection=nn.Linear(config.proj_size, 3)
modality_loss_fct =CrossEntropyLoss()
modality_loss = modality_loss_fct(modality_logits, modality_labels)

多模态知识问答:MMCoQA: Conversational Question Answering over Text, Tables, and Images相关推荐

  1. Learning to Identify Follow-Up Questionsin Conversational Question Answering

    题目:学习识别对话式问答中的后续问题 作者:Souvik Kundu, Qian Lin, Hwee Tou Ng 发布地方:acl 面向任务:后续问题识别 论文地址:Learning to Iden ...

  2. 【笔记1-1】基于对话的问答系统CoQA (Conversational Question Answering)

    CoQA: A Conversational Question Answering Challenge (一)论文概述(摘要+简介) (二)目标任务 (三)数据收集过程 3.1 数据收集界面 3.2 ...

  3. 【自然语言处理】--视觉问答(Visual Question Answering,VQA)从初始到应用

    一.前述 视觉问答(Visual Question Answering,VQA),是一种涉及计算机视觉和自然语言处理的学习任务.这一任务的定义如下: A VQA system takes as inp ...

  4. 【VideoQA最新论文阅读】第一篇视频问答综述Video Question Answering: a Survey of Models and Datasets

    Video Question Answering: a Survey of Models and Datasets 长文预警!!! p.s.此篇文章于2021年1月25日新鲜出炉,在Springer需 ...

  5. 视觉问答(Visual Question Answering)论文初步整理

    刚找的综述性文章:这两篇我没怎么看不知道怎么样 Visual Question Answering: Datasets,Algorithms, and Future Challenges Visual ...

  6. Reinforced History Backtracking for Conversational Question Answering论文翻译

    公众号 系统之神与我同在 链接如下: http://link.zhihu.com/?target=https%3A//www.aaai.org/AAAI21Papers/AAAI-1260.QiuM. ...

  7. acl 2020 Question Answering

    文章目录 2020 Fluent Response Generation for Conversational Question Answering PLATO: Pre-trained Dialog ...

  8. 论文-《Visual Question Answering as Reading Comprehension Hui》笔记

    论文下载 摘要: Visual question answering (VQA) demands simultaneous comprehension of both the image visual ...

  9. 论文分享——Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering

    文章目录 文章简介 1.背景介绍 研究背景 概念介绍 问题描述 IC与VQA领域的主要挑战 2.相关研究 CNN+RNN体系架构 Attention mechanism Bottom-Up and T ...

  10. Holistic Multi-modal Memory Network for Movie Question Answering心得体会

    根据多模态情景回答问题是一个具有挑战性的问题,因为它需要对不同的数据源进行深度集成.现有的方法只在一个关注跳中使用数据源之间的部分交互.本文提出了一个完整的多模态记忆网络(HMMN)框架,该框架充分考 ...

最新文章

  1. android团队,Android团队如何进行情感设计
  2. ZOJ 3597 Hit the Target! (线段树扫描线 -- 矩形所能覆盖的最多的点数)
  3. 智能实验室-全能优化(Guardio) 4.0.0.700 新春贺岁版
  4. python遍历目录树_在Python中遍历目录树的速度要快得多?
  5. 解决MySQL删除外键时报错Error Code: 1091. Can‘t DROP ‘XXX‘; check that column/key exists
  6. [Leetcode][第214题][JAVA][最短回文串][KMP][RK]
  7. MySQL笔记-Linux平台中MySQL的启动和关闭
  8. Java 面试之数据库
  9. 南开大学计算机本科论文,南开大学本科毕业论文设计-南开大学教务处主页.DOC...
  10. 问世 20 多年的 PHP 还是最好的编程语言吗?
  11. [转]WampServer localhost 图标不显示解决办法
  12. 找不到ffmpeg.dll无法继续执行代码怎么办_2020年,小规模增值税3%减按1%征收,那么一般纳税人该怎么办?...
  13. 面试官:什么是对象池?有什么用?别说你还不会!
  14. 测试用例设计方法-正交试验常用正交表
  15. Android测试点和测试工具介绍
  16. 路由器刷机教程图解_路由器刷固件图文教程,刷机OpenWrt第三方固件,路由器升级固件...
  17. 怎样快速熟悉公司产品
  18. 2020年安卓各大应用市场份额占比分析
  19. 小青龙的Java面试笔记
  20. Tensorflow框架初识

热门文章

  1. 华为手机摄影入门到精通pdf_华为手机摄影从入门到精通
  2. Android青翼蝠王之ContentProvider
  3. 【转载 | 强化学习】Curriculum Learning和Self-paced Learning的相关知识及应用
  4. 给想上MIT的牛学生说几句
  5. 沈华伟:图神经网络及其应用 | 青源Talk第4期
  6. 英语3500词(15/20)crime主题(2022.1.27)
  7. 正在升级android s8,国行版三星S8/S8+再添新操作 升级安卓8.0
  8. php amr mp3,php实现微信语音amr文件在线播放方法
  9. with ties 的用法
  10. Social Recommendation with Strong and Weak Ties 学习笔记