[MRG#2] (NeurIPS 2018) Hybrid Retrieval-Generation Reinforced Agent for Medical Image Report Generation

image-20200213210300249

一句话总结:应用了分级决策过程,对于每个句子,选择从模板库中提取或者直接生成。

1. 背景

  • 难点:(1)报告长,包含多个句子;(2)不同domain有着不同的专用词;(3)句子顺序。
  • 动机:(1)finding部分通常符合一点的顺序:heart size, mediastinum contour, lung opacity, remarkable abnormalities, mild or potential abnormalities;(2)目前SOTA的描述生成模型在这个任务上表现较差,原因:正常的报告多,异常的报告少并且多样;(3)检索模型在这个任务上表现好;(3)医生写报告通常都是使用对于疾病的模板,并且在上面修改。
  • 贡献:(1)通过强化学习结合了基于检索和基于学习的生成方式;(2)检索和学习模块通过策略学习进行更新;

2. 相关工作

  • 视觉描述和报告生成:目前的描述模型在生成长文本的表现不佳。
  • 基于模板的句子生成:(1)ACL 2018中有一篇文章,将检索机制作为潜在的引导;(2)本文方法和pointer-generator相近,区别在于:1)本文方法目的在于从模板库中进行选择;2)检索生成是离散的动作。
  • 句子生成中的强化学习:(1)策略梯度;(2)分级强化学习。

3. 方法

image-20200214161410962

3.1 检索生成的强化智能体

  • 图像编码器
  • 句子解码器:生成topic state和stop control:

image-20200214161521009

  • 检索策略模块:给定topic state,首先预测是选择模板还是序列生成:

image-20200214171641428

  • 生成模块:生成模块基于topic state和context vector进行生成(原文中第一个公式出错):

image-20200214172310014

  • 奖励模块:包含了句子奖励和单词奖励(公式又错了):

image-20200214173200788

image-20200214173102350

image-20200214173117049

3.2 分层强化学习

image-20200214184127053

  • 检索策略模块的策略更新:

image-20200214184415098

  • 生成模块的策略更新:

image-20200214184449341

4. 实验和分析

  • 数据集:(1)IU X-Ray:7470张前向和侧向X-ray以及对应的报告,字典:1185;(2)CX-CHR:用jieba进行tokenize,字典:1282。(3)CX-CHR:DenseNet先在ChestX-ray8上预训练;IU X-ray:DenseNet在前两者预训练。
  • 模板库:用文档频率选择模板,把意思相同的组到一起作为同一种模板。IU-X-ray:28模板(词频大于100),CX-CHR:97个模板(词频大于500)。同一组的模板,只用词频最高的。

image-20200214191310741

  • 测试指标:(1)自动指标(BLEU等);(2)医学异常检测准确度;(3)人为评测。
  • 训练细节:(1)学习率:先5e-4训30epochs再5e-5强化学习finetune30个epochs;(2)IU X-Ray:最大数量句子7,最大句子长度15;CX-CHR:最大句子数量17,最大句子长度44;(3)观察到测试的时候,会所有的样本预测成同一句话(确实!!!),采取了相应的后处理:选了四个关键词(’heart size and mediastinal contours’, ’pleural effusion or pneumothorax’, ’consolidation’, and ’lungs are clear’),如果生成的报告没有包含这些关键词,就会后处理把他们处理成正常(提升了BLEU)(不过好像没有解决相应的问题)。
  • Baseline:CNN- RNN, LRCN, AdaAtt, and Att2in。
  • 实验结果:

image-20200214193328429

image-20200214193357759

image-20200214193432982