Image Captioning with Semantic Attention
时间:2016年
inspiration
当时的image caption的模式有两种
- top-down,将图片直接转化为词,优点是端到端,缺点是难以提取细节
- bottom-up,先用几个词描述图片的各个方面,然后将词组合到一起,优点是可以提取细节,缺点是没有端到端的formulation
为了结合两者的优点,提出了一个semantic attention model
Model
overall framework
先用一个CNN将图像编码成
v
v
v作为全局的视觉信息的representation,此外,用一系列属性检测器来得到可能存在在图像中的一些属性和概念,
v
v
v和
A
i
{A_i}
Ai引导RNN生成
x
t
x_t
xt和
p
t
p_t
pt,生成的词
Y
t
Y_t
Yt将会参与组成到下一时刻的输入
x
t
+
1
x_{t+1}
xt+1,计算公式如下
Input attention model
关于输入的attention模型
ϕ
\phi
ϕ,首先根据属性
A
i
A_i
Ai和上一轮预测的值
Y
t
−
1
Y_{t-1}
Yt−1计算
t
t
t时刻每个属性的得分
α
t
i
\alpha^{i}_{t}
αti,记
A
i
A_i
Ai为
y
i
y^i
yi,
Y
t
−
1
Y_{t-1}
Yt−1为
y
t
−
1
y_{t-1}
yt−1,它们都对应属性字典
Y
\mathcal{Y}
Y中的一个词,可以编码为
R
∣
Y
∣
R^{|\mathcal{Y}|}
R∣Y∣中的一个向量,从而
为了避免维数太高,使用Word2Vec,来降低
y
i
y^i
yi和
y
t
−
1
y_{t-1}
yt−1的维数
其中
E
E
E是
d
×
∣
Y
∣
d\times |\mathcal{Y}|
d×∣Y∣的embedding矩阵,
d
≪
∣
Y
∣
d\ll|\mathcal{Y}|
d≪∣Y∣
计算出的
α
\alpha
α作为attention用来调节各个属性的重要性,并映射到输入空间,作为下一时刻的输入
w
∈
R
d
w\in R^{d}
w∈Rd,
diag
(
w
)
\text{diag}(w)
diag(w)表示以向量
w
w
w作为对角线元素构成的对角矩阵,最右边的求和相当于在各个属性上的attention加权,乘上
w
w
w相当于在词向量每一个维度上进行的attention加权
output attention model
属性
A
i
A_i
Ai在时刻
t
t
t的权重
β
t
i
\beta^{i}_t
βti计算为
其中
V
∈
R
n
×
d
V\in R^{n\times d}
V∈Rn×d,
σ
\sigma
σ表示计算出
h
t
h_t
ht的激活函数以保证
V
V
V左右两边经过了同样的非线性处理,此时可以计算
p
t
p_t
pt了
模型学习
上面的
U
,
V
,
W
,
w
U,V,W,w
U,V,W,w包括RNN的参数
Θ
R
\Theta_R
ΘR都是待学习的参数,损失函数由词的负对数损失和attention score的正则化项组成
为了保证权重对于每个属性的完备性和对于不同时间的稀疏性,
g
g
g的定义如下
属性提取器
文章提出了两种提取属性的方法:非参数方法和参数方法。非参数方法基于的是最近邻算法,参数方法是预测使用深度神经网络预测属性标签。注意此处我们需要解决的问题是一个multi-label问题而不是一个multi-class的问题
非参数属性提取器
利用网上的大量弱标签图片,基于的假设是相似的图片更可能共享相似的标注,使用最近邻算法,用GoogleNet来度量图片间的距离,对于一个测试图片,搜索它的近邻然后计算每个词的TF来选择出现频率最高的词作为属性
参数属性提取器
从训练集中找出出现频率最高的一些词,将它们作为label供神经网络学习,本文使用了当时最先进的一些属性提取的方法:使用ranking loss作为损失函数来学习多标签分类,使用全卷积网络(FCN)
Experiments
Metric
- BLEU
- Meteor
- Rough-L
- CIDEr
datasets
- Flickr30k
- MS-COCO
缺点
输入属性信息的确可以帮助image caption的精度,但图像中较为次要的属性可能会导致输出的caption主次不分明,比如
第三行是ATT-FCN的结果,它将背景中的塔楼看的更加重要,而忽视了前景
结论
通过结合CNN编码图像以及图像属性这两个信息,通过attention机制传入到RNN中,本文做到了top-down和bottom-up的结合,对于一幅图像,模型不仅能理解其全局信息,也能理解其局部信息。
问题
- 权重中的正比例具体怎么算?
实际上是一个softmax normalization - 3.3里面的公式是不是写错了
inspiration
为了丰富学习的信息,利用了弱监督学习对标签的一些处理方法