本文针对沿用序列化结构进行Image Caption的主流模型所不可避免的语义相关性低,多样性匮乏等问题进行研究。通过将语义生成和语法矫正模块分开训练,提高了模型的泛化能力和生成captions的多样性,并且降低了模型对训练数据量的要求。
论文地址:
https://arxiv.org/pdf/1810.09630.pdf
引言
传统的sequential models存在诸多弊端,它们主要依赖于n-gram统计而不是caption本身的层次结构,这使得模型往往会倾向于生成训练集中经常出现甚至与图片在语义上不相关的短语,这使得模型的泛化能力很差。针对这个问题,本文提出了一个新的模型,将语义和语法分开,即what to say 和 how to say,巧妙的将其转化成了更容易训练的分类任务。
数据集
本文基于MS-COCO和Flicker30k数据集,分别包含123,287和31,783张图片。为了提高训练数据的质量,将数据集中单词全部小写并用UNK替换出现次数少于5次的单词,最终的词典大小为9487(COCO)和7000(Flicker30k)。另外,训练集中的Ground Truth Captions截断为最多包含18个单词,数据集分割方式为Karpathy。
模型
不同于传统模型将图片Encode成高维向量,本文模型通过ResNet-152对图像中的语义进行提取,生成相关的Noun-Phrase(下称NP),再将得分靠前的7个NP送入候选池中进行进一步的语义准确性得分判断。The Connecting Module(下称C-Module)将候选池中的NP进行配对,筛选出得分最高的caption送入Evaluation Module(下称E-Module)中进行语法得分判断,得分较低的caption会返回候选池中替换相关的NP,再进行迭代直到E-Module判断合格后作为最终的caption输出。
Connecting Module
C-Module旨在筛选出基于候选池中NP的最优连接词,并计算生成的初级caption得分。与传统的基于模板的caption module不同,C-Module要往待定slot中填充的并不是核心词汇而是简单的连接词。而连接词的数量并没有那么海量,例如在MS-COCO中仅有约1000的连接词汇,故可将其作为分类问题进行求解,根据最终的得分情况选择需要的连接词()(此处亦可使用Beam Search),使得模型更容易训练。
C-Module基于带Attention的双层LSTM结构对候选池的NP分别进行encoding得到
z
(
l
)
z^{(l)}
z(l)和
z
(
r
)
z^{(r)}
z(r)后送入双层神经网络进行分类,得到每个NP对的分数。
值得注意的是,针对
z
(
l
)
z^{(l)}
z(l)和
z
(
r
)
z^{(r)}
z(r)的结构不应该共享参数,否则会降低最终得分。
E-Module用来判断C-Module生成的caption是否在语法上完整合理。同样的,通过上述双层LSTM将输入的caption编码成
Z
e
Z_e
Ze,然后计算其概率是否满足条件输出。
实验结果
对比NIC、AdapAtt、TopDown和LSTM-A5模型,可以看出本文模型在泛化能力和文本多样性的得分上都有很大突破,并且可以利用1%的数据量即可实现稳定结果。
结论
本文通过将语义生成和语法校对两个模块分开训练,降低了模型的训练难度,实现了泛化能力的提升,生成文本的多样性也得到了很大提高,通过遵循caption本身的层次规律,使得结果更适应人类的自然语言规律。但本文模型对视觉图片的语义提取依赖性过大,若是模型提取的NP不够准确,则会使得后续的模型效用不足,使得误差不断放大。
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/b8102f28275d23e470a53cd8dd5512e2.jpeg)
扫码写别关注,每天一片新鲜论文解读