CnnCNN: Convolutional Decoders for Image Captioning
Image captioning is a challenging task that combines the field of computer vision and natural language processing. A variety of approaches have been proposed to achieve the goal of automatically describing an image, and recurrent neural network (RNN) or long-short term memory (LSTM) based models dominate this field. However, RNNs or LSTMs cannot be calculated in parallel and ignore the underlying hierarchical structure of a sentence. In this paper, we propose a framework that only employs convolutional neural networks (CNNs) to generate captions. Owing to parallel computing, our basic model is around faster than NIC (an LSTM-based model) during training time, while also providing better results. We conduct extensive experiments on MSCOCO and investigate the influence of the model width and depth. Compared with LSTM-based models that apply similar attention mechanisms, our proposed models achieves comparable scores of BLEU-1,2,3,4 and METEOR, and higher scores of CIDEr. We also test our model on the paragraph annotation dataset , and get higher CIDEr score compared with hierarchical LSTMs.
Human beings are able to describe what they see, and image captioning is a task that can make a computer have this ability. To achieve this goal requires at least three models: (1) vision model—to extract visual features from images, (2) language model—to generate captions, (3) the connection between vision and language models. Image captioning combines two fields—computer vision and natural language processing (NLP) to address the challenge of understanding both images and their descriptions.
Recently, increasing research has been devoted to image captioning, and a variety of methods have been proposed [16, 8, 21, 31, 34, 36, 33, 2, 19, 9, 35]. Almost all of the current proposed methods are under the framework of CNNRNN, in which a CNN is used for the vision model, and an RNN is employed to generate sentences. Moreover, there are different ways to connect the CNN and RNN. A naive way is directly feeding the output of the CNN into the RNN [21, 31]. However, this naive approach treats objects in an image the same and ignores the salient objects when generating one word. To imitate the visual attention mechanism of humans, attention modules have been introduced into the CNNRNN framework [34, 36, 19].
Although the CNNRNN framework is popular and provides satisfying results, there are disadvantages of sequential RNNs: (1) RNNs have to be calculated step-by-step, which is not amenable to parallel computing during training; (2) there is a long path between the start and end of the sentence using RNNs (see Fig. 1a), which easily forgets the long-range information. Tree structures can make a shorter path between the start and end words (see Fig. 1b), but trees require special processing that is not easily parallelizable. Also trees are defined by NLP (e.g., noun phrase, adjectives, verb phrase, etc), which is a hand-crafted structure that may not be optimal for the captioning task.
An alternative language model to RNNs and trees are CNNs applied to the sentence to merge words layer by layer [22, 20], thus learning a tree structure of the sentence (see Fig. 1c). CNNs can be implemented in parallel, and have a larger receptive field size (can see more words) using less layers. E.g., given a sentence composed of 10 words, a RNN needs to iterate 10 times to get a representation of the sentence (equivalent to 10 layers), while a CNN with kernel size 3 only needs 5 layers. Using wider kernels, CNNs are able to tackle longer sentences with less layers. CNN have been widely applied to the field of NLP, leading to improved performances in many tasks, such as language modeling, machine translation and text classification [5, 10, 11, 13, 4].
Inspired by the applications of CNNs in the field of NLP, we develop a framework that only employ CNNs for image captioning. The main contributions of this paper are:
We propose a CNNCNN framework for image captioning, which is faster than LSTM-based models and outperforms them on some metrics.
We propose a hierarchical attention module to connect the vision CNN with the language CNN, which significantly improves the performance.
We investigate the influence of the hyper-parameters, including the number of layers and the kernel width of the language CNN. The receptive field of the language CNN can be increased by stacking more layers or increasing the kernel width, and our experiments show that increasing the kernel width is better.
2 Related work
Many methods have been proposed to automatically generate captions of images, and the most popular framework is CNNRNN. Most work endeavors to modify the language model and the connection between the vision and language models to improve the performance.
The m-RNN model  uses a vanilla RNN combined with different CNNs (AlexNet or VGG-net) – the RNN hidden states and the CNN output are fed into a multimodal block to fuse the image and language features at each time step, and a softmax layer predicts the next word. However, the vanilla RNNs suffers from the vanishing gradient problem. Therefore, the neural image captioning (NIC) model employs a LSTM as a decoder . At the beginning, the NIC model takes the image feature vector as input, and then the visual information is passed through the recurrent path.
In both m-RNN and NIC, an image is represented by a single vector, which ignores different areas and objects in the image. A spatial attention mechanism is introduced into image captioning model in , which allows the model to pay attention to different areas at each time step.
Most recently, [36, 33, 35] have included semantics, which are image annotations produced by an image classifier, into image captioning. A semantic attention model is proposed in , which applies a fully convolutional network (FCN) to detect semantics first and then computes a weight for each semantic at each time step. Although this semantic attention significantly improves the performance, to some extent, it has a problem of prediction error accumulation along generated sequences . Alternatively,  uses semantics differently, by generating the parameters of an RNN or LSTM from the output of the semantic detector. This model can be trained in a end-to-end manner.
LSTMs have also been used hierarchically to model a shallow tree structure.  proposes a phrase LSTM model, which has two levels of LSTMs, one to model the sentence composed of phrases, and another to generate words in a phrase. Similarly,  applies a skeleton LSTM to generate the skeleton words of the sentence, and an attribute LSTM to generate adjective words that modify the skeleton words, which is a coarse-to-fine model. Hierarchical LSTMs have also been used to generate a paragraph description consisting of multiple sentences to describe an image .
To our knowledge, our work is the first that applies CNNs to completely replace RNNs for image captioning. Inspired by , we propose a hierarchical attention module, which aims to learn the co-relationship between concepts at each level and image areas. Furthermore, our attention module uses the dot-product, which has less parameters and can be calculated faster than the MLP-based attention in [34, 19].
CNNs in NLP
Deep learning methods have dominated the field of NLP, and CNNs are an important tool to solve NLP problems. In , CNNs are applied to several NLP tasks, such as chunking, part-of-speech tagging, named entity recognition, and semantic role labeling. This CNN-based model provides accurate results with fast speed, and is capable of learning representations instead of employing hand-crafted features.
 develops a CNN model with a max-over-time pooling layer for sentence classification.  experiments with very deep CNNs for text classification, and the results suggest that depth and max-pooling improve the performance.
In terms of language modeling,  introduces a new activation function called gated linear units (GLU), which applies an output gate to each unit, and can be trained faster than ReLUs. In , GLUs are adopted for machine translation, where a convolutional sequence-to-sequence model outperforms the popular LSTM-based sequence-to-sequence model [27, 1]. In , dilated convolution is employed to increase the receptive field of the CNN.
CNNs show relatively strong abilities to tackle very long sequences . Inspired by CNNs used for NLP, we propose a CNNCNN frame work for image captioning. There are four modules in our framework: (1) vision module, which is adopted to “watch” images; (2) language module, which is to model sentences; (3) attention module, which connects the vision module with the language module; (4) prediction module, which takes the visual features from the attention module and concepts from the language module as input and predicts the next word. Fig. 2 illustrates the proposed framework for image captioning.
The vision module
The vision module is a CNN without fully connected layer, whose output is a feature map. In each position of the feature map, the dimensional feature vector represents part of the image. Define to be the list of image feature vectors, where , is the position index in the feature map, and is the number of positions. In this paper, we use VGG-16  as the CNN for the vision module.
The language module
The language model is based on a CNN without pooling, which is very different from the typical RNN-based framework (e.g., [21, 31, 7, 34]). RNNs adopt a recurrent path to memorize the context, while CNNs use kernels and stack multiple layers to model the context.
Let be a sentence with words. We first use a look-up table to project each word into an embedding space with dimensions, and calculate the embeddings , where . In this stage, a sentence is represented by a matrix. A stack of convolutional layers with gated linear units (GLUs) follows the embedding layer, which is calculated using the following equations:
where denote the kernels of the th layer, and are biases, denotes the convolution operator, denotes the element-wise multiplication, and . plays the role of a gate and is a linear transformation. In our framework . Note that the convolution filters are causal filters, only depending on the current and past inputs. During inference, this structure allows a sentence to be generated using a feed-forward process where the predicted word at the output layer is used as the next word input.
For modeling sentences, the length of the output is required to be the same as the input sentence. Since there are no pooling layers and fully connected layers, we need to add zero-padding at the beginning of the input and hidden layers. If the convolutional kernel width is , which indicates that it considers concepts111The bottom-level represents words, whereas hidden layers represent different concepts. in each step, the word/concept matrices needs to be zero padded with zero vectors before convolution. The output of the CNN is a set of concepts , where .
The attention module
Intuitively, to predict different words, different objects in the images should be attended and input into the prediction module. The attention module takes the visual features v and the concepts c at the top level as input, which is shown in Fig. 3. For each concept and visual feature vector , we calculate a score as follows:
where is a parameter matrix. Therefore each concept corresponds to a score vector , indicating matches with the image features. Then is fed into a softmax layer, which assigns a weight for the visual feature vector ,
We use the weighted sum operation to calculate the final attention vector as follows,
The output of our attention module is the attention features , where , corresponding to each word in the sentence.
The prediction module
As shown in Fig. 2, our proposed prediction module takes the attention features a and concepts c as input. Our prediction module is a one-hidden layer neural network. At the th sentence position, and are fed into the network, the output is the prediction probability of next word ,
where and are the parameters, and denotes the number of hidden units in the prediction module. is a leaky ReLU, and , where represents the vocabulary size. During training the input image-sentence pair is given, therefore the prediction module can be implemented as a convolutional kernel, which is faster than RNN-based models.
3.1 Hierarchical attention
The basic CNNCNN model in the previous sub-section extracts attention features from the top-level of the language model. However, different levels of the language CNN represent different concept levels that could benefit from visual inputs. Hence, we also consider a hierarchical attention (hier-att) module (see Fig. 4), where attention vectors are computed at each level of the language model and fed into the next level,
In contrast to RNN-based models that calculate attention maps in a left-right (word-by-word) manner, our attention maps are calculated in a bottom-up (layer-by-layer) manner, so as to prevent sideways connections in the same layer. This allows our model to be trained in parallel over all words in the sentence, rather than word-by-word. Note that the model still sees attended features of previous words (from the lower layer) through the causal convolution layer.
3.2 Training and inference
During training, as image-caption pairs are given, the convolution structures are applied in the normal way, and the loss function for each sentence is the cross-entropy,
where denotes the ground-truth label and is the prediction probability. The first term is the same with the loss function in , and the second term is the regularization term, where denotes the weights in our framework.
During inference, the caption is generated given the image using a feed-forward process. The caption is initialized as zero padding and a start-token S, and is fed as the input sentence to the model to predict the probability of the next word. The predicted word is appended to the caption, and the process is repeated until the ending token /S is predicted, or the maximum length is reached. The predicted words are selected using a naive greedy method (most probable word), which is equivalent to a beam-search algorithm with beam width of 1.
We present experiments using our proposed CNNCNN model on three datasets.
4.1 Dataset and experimental setup
MSCOCO is the most popular dataset for image captioning, comprising 82,783 training and 40,504 validation images. Each image has 5 human annotated captions. As in [12, 34], we split the images into 3 datasets, consisting of 5,000 validation and 5,000 testing images, and 113,287 training images. Our vocabulary contains 10,000 words.
Flickr30k contains 31,783 images, each of which has 5 captions. Following , we use 1,000 images for validation and 1000 images for testing, and the remainder for training. The vocabulary size is 10,000.
Paragraph annotation dataset (PAD)
A dataset with 19,551 images from MSCOCO and visual genome (VG). Each image is described by a paragraph comprising several sentences. The average length of the paragraph is 67.5 words, while that of MSCOCO dataset is 11.3. Generating such long captions is much more challenging. We use the same split as , and our vocabulary size is 5,000.
For all datasets, we set . In our framework, the vision module is the VGG-16 network without fully connected layers, which is pre-trained on ImageNet.222https://github.com/tensorflow/models/tree/master/research/slim We use feature map to compute attention features ( and ). The size of the hidden layer in the prediction module is , and =1e-5. We apply Adam optimizer  with mini-batch size 10 to train our model. For VGG-16, we set the learning rate to 1e-5, and for other parameters, the learning rate starts from 1e-3 and decays every 50k steps.333For PAD, the learning rate decays every 10k steps. The stopping criteria is based on the validation loss. The weights are initialized by the truncated normal initializer with . The model was implemented in TensorFlow.
During training time, the images are resized to and then we randomly crop patches as inputs. During testing time, the images are resize into without cropping.444We employ the code provided by the following link: https://github.com/tensorflow/models/tree/master/research/im2txt The maximum caption length is 70 for MSCOCO and Flickr30k, and 150 for PAD.
We compare our proposed model with and without hierarchical attention. We also compare other popular models: DeepVS , m-RNN , Google NIC , LRCN , hard-ATT and soft-ATT  on MSCOCO and Flickr30k datasets, and Sentence-Concat, DenseCap-Concat, Image-Flat, Regions-Flat-Scratch, Regions-Flat-Pretrained, and Regions-Hierarchical  on PAD.
We report the following metrics: BLEU-1,2,3,4 , Meteor , Rouge-L  and CIDEr , which are computed using the MSCOCO toolkit . For all metrics, higher values indicate better performance.
||Ours (w/o hier-att)||0.688||0.513||0.370||0.265||0.234||0.507||0.839|
||Ours (w/ hier-att)||0.685||0.511||0.369||0.267||0.234||0.510||0.844|
||Ours, w/o hier-att||0.577||0.401||0.276||0.190||0.184||0.425||0.352|
||Ours, w/ hier-att||0.607||0.425||0.292||0.199||0.191||0.442||0.395|
4.2 Results on MSCOCO and Flickr30k
Table 1 shows the results on MSCOCO and Flickr30k. Note that all models only use the image information without semantics or attributes boosting. In terms of the B-1 score, which only considers bigrams, our model performs slightly worse than Hard- and Soft-ATT models, but better than NIC and m-RNN on MSCOCO. In terms of B-2,3,4 and M metrics, the performance of our model ranks 2nd, and the values are marginally lower than the LRCN model, which applies multilayer LSTMs to generate captions. This suggests that adopting CNNs as decoder is competitive or can be better than using LSTMs. When we apply our proposed hierarchical attention model, the B-4, M, R and CIDEr scores exhibit improvement. Using hier-att with our model improves the CIDEr score from 0.839 (no hier-att) to 0.844 and the Meteor score from 0.507 to 0.510.
On Flickr30k, our proposed model also provides the comparable results, and can slightly improve the M score compared with LSTM-based models. Moreover, our proposed hierarchical attention significantly improves all scores compared with the model without hierarchical attention. The CIDEr score is improved from 0.352 to 0.395 (12% increase), B-1 score is improved by 3% from 0.507 to 0.607 and other scores are improved by around 1%.
An advantage of our proposed CNNCNN model is the training speed. We compare our 6-layer model without hierarchical attention with NIC. When we set the batch size to 32, and train our model and NIC on the same machine with a GTX1080 GPU, it takes 0.24 seconds per batch for our model, and 0.64 seconds for NIC. Our model is about faster than NIC for training.555NIC is the simplest among the LSTM-based models. After training 50k steps (each step uses one batch), the loss decreases by around 70%, and the model is able to output reasonable descriptions. In the inference stage, both our CNNCNN model and LSTM-based model generate one word at a time, and thus, the inference speed is almost the same.
Note that the NIC model contains about 6.7M parameters, while our proposed model contains more than 16.0M parameters. Although our model is more complex, it can be trained faster because it can better take advantage of parallelization since there are no recurrent (left-right) connections between words within the same layer. Examples of generated descriptions are shown in Fig. 5.
4.3 Results on paragraph generation
We evaluate our model on the paragraph annotation dataset, in which an image has a much longer caption than MSCOCO and Flickr30k. Table 2 shows the results. Our proposed model exhibits comparable performance with Image-Flat when considering B-1,2,3,4, which is lower than the Regions-Hierarchical. Our model with kernel size 7 significantly improves the CIDEr score, which is specifically designed to evaluate image captioning models. Some examples generated by our 20-layer model with kernel size 7 are shown in Fig. 6.
4.4 Wider or Deeper?
|6, w/o hier-att||2||16.0 M||0.679||0.504||0.363||0.262||0.231||0.505||0.827|
||6, w/ hier-att||2||16.0 M||0.682||0.508||0.368||0.266||0.233||0.508||0.836|
|20 w/o hier-att||3||24.5 M||0.683||0.505||0.365||0.264||0.234||0.505||0.838|
|6, w/o hier-att||2||16.0 M||0.552||0.378||0.257||0.175||0.179||0.421||0.342|
||6, w/ hier-att||2||16.0 M||0.581||0.403||0.277||0.190||0.182||0.433||0.368|
|20 w/o hier-att||3||24.5 M||0.589||0.411||0.284||0.198||0.175||0.425||0.320|
In this experiment, we compare the performance of our model with different kernel widths and depths, with results shown in Table 3. Designing and training deeper networks is popular, yet in our experiments on image captioning it is unnecessary to use deeper network on these datasets. The results suggest that for MSCOCO and Flickr30k datasets 6-layer networks with kernel size 3, and hierarchical attention is the optimal choice.
For our proposed model without hierarchical attention, increasing the kernel width is a better choice both on MSCOCO and Flickr30k. When the kernel size increases from 2 to 7, the CIDEr score increases from 0.827 to 0.839 on MSCOCO, and from 0.342 to 0.352 on Flickr30k, which is better than the 20-layer network.
Note that the average length of the captions in MSCOCO is 11.6, and the receptive field of a 6-layer CNN with kernel size 3 is 13, which is longer than many sentences in MSCOCO. Increasing the kernel width or the network depth increases the complexity of the model, which makes it is more difficult to train and easier to overfit. Based on our experiments, we suggest using and setting the depth such that the receptive field is the average length of the sentences, which gives relatively good balance between the complexity and model performance.
4.5 Attention module analysis
We use the MSCOCO test images to visualize the attention maps and descriptions. The attention maps are visualized by upsampling the 1414 attention maps with bilinear interpolation and Gaussian smoothing (see Fig. 7). Our proposed model is able to pay attention to correct area when predicting the corresponding words. However, it is difficult to quantify the attention module. E.g., when the model predicts the word “man” (second row in Fig. 7), it also pays attention to the woman, and vice versa. For the prepositions and verbs, our model attends to the correct area, e.g. when the word “next” is present, the areas around the elephant are highlighted.
When there are many objects in an image, although the model can pay attention to the areas that contain objects, it predicts the wrong words or repeats a words several times, as seen in Fig. 8. The top row shows that the model predicts the word “chair” two times, and the attention maps are similar. The bottom row shows that although the objects are attended, the model predicts the wrong words “stove” and “sink”, which are likely influenced by the preceding context “a kitchen with a”.
We also visualize our model with hierarchical attention in Fig. 9, which shows the attention maps at the top-level for the predicted words. The model with hierarchical attention tends to pay attention to small areas at the top level, and for the scenes with many objects it is able to focus on the relatively correct areas, which is similar to the coarse-to-fine procedure. Compared with the failure cases in Fig. 8, using hierarchical attention provides more details, which could benefit caption generation.
We have developed a CNNCNN framework for image captioning and explored the influence of the kernel width and the layer depth of the language CNN. We have shown that the ability of the CNN-based framework is competitive to LSTM-based models, but can be trained faster. We also visualize the learned attention maps to show that the model is able to learn concepts and pay attention to the corresponding areas in the images in a meaningful way.
-  D. Bahdanau, K. Cho, and Y. Bengio. Neural machine translation by jointly learning to align and translate. ICLR, 2015.
-  L. Chen, H. Zhang, J. Xiao, L. Nie, J. Shao, W. Liu, and T.-S. Chua. Sca-cnn: spatial and channel-wise attention in convolutional networks for image captioning. CVPR, 2017.
-  R. Collobert, J. Weston, L. Bottou, M. Karlen, K. Kavukcuoglu, and P. Kuksa. Natural language processing (almost) from scratch. JMLR, 12:2493–2537, 2011.
-  A. Conneau, H. Schwenk, L. Barrault, and Y. Lecun. Very deep convolutional networks for text classification. EACL, 2017.
-  Y. N. Dauphin, A. Fan, M. Auli, and D. Grangier. Language modeling with gated convolutional networks. arXiv, 2016.
-  M. Denkowski and A. Lavie. Meteor universal: Language specific translation evaluation for any target language. EACL 2014 Workshop on Statistical Machine Translation, 2014.
-  J. Donahue, L. A. Hendricks, S. Guadarrama, M. Rohrbach, S. Venugopalan, K. Saenko, , and T. Darrell. Long-term recurrent convolutional networks for visual recognition and description. CVPR, 2015.
-  H. Fang, S. Gupta, F. Iandola, R. K. Srivastava, L. Deng, P. Dollar, J. Gao, X. He, M. Mitchell, J. C. Platt, C. L. Zitnick, and G. Zweig. From captions to visual concepts and back. CVPR, 2015.
-  Z. Gan, C. Gan, X. He, Y. Pu, K. Tran, J. Gao, L. Carin, and L. Deng. Semantic compositional networks for visual captioning. CVPR, 2017.
-  J. Gehring, M. Auli, D. Grangier, D. Yarats, and Y. N. Dauphin. Convolutional sequence to sequence learning. arXiv, 2017.
-  N. Kalchbrenner, L. Espeholt, K. Simonyan, A. van den Oord, A. Graves, and K. Kavukcuoglu. Neural machine translation in linear time. arXiv, 2016.
-  A. Karpathy and L. Fei-Fei. Deep visual-semantic alignments for generating image descriptions. CVPR, 2015.
-  Y. Kim. Convolutional neural networks for sentence classification. EMNLP, 2014.
-  D. P. Kingma and J. Ba. Adam: A method for stochastic optimization. ICLR, 2015.
-  J. Krause, J. Johnson, R. Krishna, and L. Fei-Fei. A hierarchical approach for generating descriptive image paragraphs. CVPR, 2017.
-  G. Kulkarni, V. Premraj, V. Ordonez, S. Dhar, S. Li, Y. Choi, A. C. Berg, and T. L. Berg. Babytalk: understanding and generating simple image descriptions. IEEE Trans. on PAMI, 35(12):2891–2903, 2013.
-  C.-Y. Lin. Rouge: A package for automatic evaluation of summaries. ACL 2004 Workshop, 2004.
-  T.-Y. Lin, M. Maire, S. Belongie, J. Hays, P. Perona, D. Ramanan, P. Dollar, and C. L. Zitnick. Microsoft coco: Common objects in context. ECCV, 2014.
-  J. Lu, C. Xiong, D. Parikh, and R. Socher. Knowing when to look: adaptive attention via a visual sentinel for image captioning. CVPR, 2017.
-  L. Ma, Z. Lu, L. Shang, and H. Li. Multimodal convolutional neural networks for matching image and sentence. ICCV, 2015.
-  J. Mao, W. Xu, Y. Yang, J. Wang, Z. Huang, and A. Yuille. Deep captioning with multimodal recurrent neural networks (m-rnn). ICLR, 2015.
-  Z. Niu, M. Zhou, L. Wang, X. Gao, and G. Hua. Hierarchical multimodal lstm for dense visual-semantic embedding. ICCV, 2017.
-  K. Papineni, S. Roukos, T. Ward, and W.-J. Zhu. Bleu: a method for automatic evaluation of machine translation. ACL, 2002.
-  K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. ICLR, 2015.
-  R. Socher, J. Bauer, C. D. Manning, and A. Y. Ng. Parsing with compositional vector grammars. ACL, 2013.
-  R. Socher, C. Lin, A. Y. Ng, and C. D. Manning. Parsing natural scenes and natural language with recursive neural networks. ICML, 2011.
-  I. Sutskever, O. Vinyals, and Q. V. Le. Sequence to sequence learning with neural networks. NIPS, 2014.
-  Y. H. Tan and C. S. Chan. phi-lstm: A phrase-based hierarchical lstm model for image captioning. ACCV, 2016.
-  A. van den Oord, S. Dieleman, H. Zen, K. Simonyan, O. Vinyals, A. Graves, N. Kalchbrenner, A. Senior, and K. Kavukcuoglu. Wavenet: A generative model for raw audio. arXiv, 2016.
-  R. Vedantam, C. L. Zitnick, and D. Parikh. Cider: Consensus-based image description evaluation. CVPR, 2015.
-  O. Vinyals, A. Toshev, S. Bengio, and D. Erhan. Show and tell: A neural image caption generator. CVPR, 2015.
-  Y. Wang, Z. Lin, X. Shen, S. Cohen, and G. W. Cottrell. Skeleton key: Image captioning by skeleton-attribute decomposition. CVPR, 2017.
-  Q. Wu, C. Shen, L. Liu, A. Dick, , and A. v. d. Hengel. What value do explicit high level concepts have in vision to language problems? CVPR, 2016.
-  K. Xu, J. Ba, R. Kiros, K. Cho, A. Courville, R. Salakhudinov, R. Zemel, and Y. Bengio. Show, attend and tell: Neural image caption generation with visual attention. ICML, 2015.
-  T. Yao, Y. Pan, Y. Li, Z. Qiu, and T. Mei. Boosting image captioning with attributes. ICCV, 2017.
-  Q. You, H. Jin, Z. Wang, C. Fang, and J. Luo. Image captioning with semantic attention. CVPR, 2016.