Pragmatically Informative Image Captioning with Character-Level Inference

Reuben Cohn-Gordon, Noah Goodman, Christopher Potts

Introduction

The success of automatic image captioning Farhadi et al. (2010); Mitchell et al. (2012); Karpathy and Fei-Fei (2015); Vinyals et al. (2015) demonstrates compellingly that end-to-end statistical models can align visual information with language. However, high-quality captions are not merely true, but also pragmatically informative in the sense that they highlight salient properties and help distinguish their inputs from similar images. Captioning systems trained on single images struggle to be pragmatic in this sense, producing either very general or hyper-specific descriptions.

In this paper, we present a neural image captioning systemThe code is available at https://github.com/reubenharry/Recurrent-RSA that is a pragmatic speaker as defined by the Rational Speech Acts (RSA) model Frank and Goodman (2012); Goodman and Stuhlmüller (2013). Given a set of images, of which one is the target, its objective is to generate a natural language expression which identifies the target in this context. For instance, the literal caption in Figure 1 could describe both the target and the top two distractors, whereas the pragmatic caption mentions something that is most salient of the target. Intuitively, the RSA speaker achieves this by reasoning not only about what is true but also about what it’s like to be a listener in this context trying to identify the target.

This core idea underlies much work in referring expression generation Dale and Reiter (1995); Monroe and Potts (2015); Andreas and Klein (2016); Monroe et al. (2017) and image captioning Mao et al. (2016a); Vedantam et al. (2017), but these models do not fully confront the fact that the agents must reason about all possible utterances, which is intractable. We fully address this problem by implementing RSA at the level of characters rather than the level of utterances or words: the neural language model emits individual characters, choosing them to balance pragmatic informativeness with overall well-formedness. Thus, the agents reason not about full utterances, but rather only about all possible character choices, a very small space. The result is that the information encoded recurrently in the neural model allows us to obtain global pragmatic effects from local decisions. We show that such character-level RSA speakers are more effective than literal captioning systems at the task of helping a reader identify the target image among close competitors, and outperform word-level RSA captioners in both efficiency and accuracy.

Bayesian Pragmatics for Captioning

In applying RSA to image captioning, we think of captioning as a kind of reference game. The speaker and listener are in a shared context consisting of a set of images WW, the speaker is privately assigned a target image w∗∈Ww^{\ast}\in W, and the speaker’s goal is to produce a caption that will enable the listener to identify w∗w^{\ast}. UU is the set of possible utterances. In its simplest form, the literal speaker is a conditional distribution S0(u∣w)S_{0}(u|w) assigning equal probability to all true utterances u∈Uu\in U and to all others. The pragmatic listener L0L_{0} is then defined in terms of this literal agent and a prior P(w)P(w) over possible images:

The pragmatic speaker S1S_{1} is then defined in terms of this pragmatic listener, with the addition of a rationality parameter α>0\alpha>0 governing how much it takes into account the L0L_{0} distribution when choosing utterances. P(u)P(u) is here taken to be a uniform distribution over UU:

As a result of this back-and-forth, the S1S_{1} speaker is reasoning not merely about what is true, but rather about a listener reasoning about a literal speaker who reasons about truth.

To illustrate, consider the pair of images 2a and 2b in Figure 2. Suppose that U={bus,red bus}U=\{\emph{bus},\emph{red bus}\}. Then the literal speaker S0S_{0} is equally likely to produce bus and red bus when the left image 2a is the target. However, L0L_{0} breaks this symmetry; because red bus is false of the right bus, L0(\ref2a∣bus)=13L_{0}(\ref{2}\textrm{a}|\mathit{bus})=\frac{1}{3} and L0(\ref2b∣bus)=23L_{0}(\ref{2}\textrm{b}|\mathit{bus})=\frac{2}{3}. The S1S_{1} speaker therefore ends up favoring red bus when trying to convey 2a, so that S1(red bus∣2a)=34S_{1}(\emph{red bus}|2\textrm{a})=\frac{3}{4} and S1(bus∣2a)=14S_{1}(\mathit{bus}|2\textrm{a})=\frac{1}{4}.

Applying Bayesian Pragmatics to a Neural Semantics

To apply the RSA model to image captioning, we first train a neural model with a CNN-RNN architecture Karpathy and Fei-Fei (2015); Vinyals et al. (2015). The trained model can be considered an S0S_{0}-style distribution P(caption∣image)P(\emph{caption}|\emph{image}) on top of which further listeners and speakers can be built. (Unlike the idealized S0S_{0} described above, a neural S0S_{0} will assign some probability to untrue utterances.)

The main challenge for this application is that the space of utterances (captions) UU will be very large for any suitable captioning system, making the calculation of S1S_{1} intractable due to its normalization over all utterances. The question, therefore, is how best to approximate this inference. The solution employed by Monroe et al. (2017) and Andreas and Klein (2016) is to sample a small subset of probable utterances from the S0S_{0}, as an approximate prior upon which exact inference can be performed. While tractable, this approach has the shortcoming of only considering a small part of the true prior, which potentially decreases the extent to which pragmatic reasoning will be able to apply. In particular, if a useful caption never appears in the sampled prior, it cannot appear in the posterior.

Inspired by the success of the ‘‘emittor-suppressor’’ method of Vedantam et al. (2017), we propose an incremental version of RSA. Rather than performing a single inference over utterances, we perform an inference for each step of the unrolling of the utterance.

We use a character-level LSTM, which defines a distribution over characters P(u∣pc,image)P(u|\emph{pc},\emph{image}), where pc (‘‘partial caption’’) is a string of characters constituting the caption so far and uu is the next character of the caption. This is now our S0S_{0}: given a partially generated caption and an image, it returns a distribution over which character should next be added to the caption. The advantage of using a character-level LSTM over a word-level one is that UU is much smaller for the former (≈30{\approx}30 vs. ≈20,000{\approx}20,000), making the ensuing RSA model much more efficient.

We use this S0S_{0} to define an L0L_{0} which takes a partial caption and a new character, and returns a distribution over images. The S1S_{1}, in turn, given a target image w∗w^{\ast}, performs an inference over the set of possible characters to determine which is best with respect to the listener choosing w∗w^{\ast}.

At timestep tt of the unrolling, the listener L0L_{0} takes as its prior over images the L0L_{0} posterior from timestep (t−1)(t-1). The idea is that as we proceed with the unrolling, the L0L_{0} priors on which image is being referred to may change, which in turn should affect the speaker’s actions. For instance, the speaker, having made the listener strongly in favor of the target image, is less compelled to continue being pragmatic.

2 Model Definition

In our incremental RSA, speaker models take both a target image and a partial caption pc. Thus, S0S_{0} is a neurally trained conditional distribution S0t(u∣w,pct)S_{0}^{t}(u|w,\emph{pc}_{t}), where tt is the current timestep of the unrolling and uu is a character.

We define the L0tL_{0}^{t} in terms of the S0tS_{0}^{t} as follows, where ip is a distribution over images representing the L0L_{0} prior:

Given an S0tS_{0}^{t} and L0tL_{0}^{t}, we define S1tS_{1}^{t} and L1tL_{1}^{t} as:

To perform greedy unrolling (though in practice we use a beam search) for either S0S_{0} or S1S_{1}, we initialize the state as a partial caption pc0\emph{pc}_{0} consisting of only the start token and a uniform prior over the images ip0\emph{ip}_{0}. Then, for t>0t>0, we use our incremental speaker model S0S_{0} or S1S_{1} to generate a distribution over the subsequent character St(u∣w,ipt,pct)S^{t}(u|w,\emph{ip}_{t},\emph{pc}_{t}), and add the character uu with highest probability density to pct\emph{pc}_{t}, giving us pct+1\emph{pc}_{t+1}. We then run our listener model L1L_{1} on uu, to obtain a distribution ipt+1=L1t(w∣u,ipt,pct)\emph{ip}_{t+1}=L_{1}^{t}(w|u,\emph{ip}_{t},pc_{t}) over images that the L0L_{0} can use at the next timestep.

This incremental approach keeps the inference itself very simple, while placing the complexity of the model in the recurrent nature of the unrolling.The move from standard to incremental RSA can be understood as a switching of the order of two operations; instead of unrolling a character-level distribution into a sentence level one and then applying pragmatics, we apply pragmatics and then unroll. This generalizes to any recursive generation of utterances. While our S0S_{0} is character-level, the same incremental RSA model works for a word-level S0S_{0}, giving rise to a word-level S1S_{1}. We compare character and word S1S_{1}s in section 4.2.

As well as being incremental, these definitions of S1tS_{1}^{t} and L1tL_{1}^{t} differ from the typical RSA described in section 2 in that S1tS_{1}^{t} and L1tL_{1}^{t} draw their priors from S0tS_{0}^{t} and L0tL_{0}^{t} respectively. This generalizes the scheme put forward for S1S_{1} by Andreas and Klein (2016). The motivation is to have Bayesian speakers who are somewhat constrained by the S0S_{0} language model. Without this, other methods are needed to achieve English-like captions, as in Vedantam et al. (2017), where their equivalent of the S1S_{1} is combined in a weighted sum with the S0S_{0}.

Evaluation

Qualitatively, Figures 1 and 2 show how the S1S_{1} captions are more informative than the S0S_{0}, as a result of pragmatic considerations. To demonstrate the effectiveness of our method quantitatively, we implement an automatic evaluation.

To evaluate the success of S1S_{1} as compared to S0S_{0}, we define a listener Leval(image∣caption)∝PS0(caption∣image)L_{\emph{eval}}(\emph{image}|\emph{caption})\propto P_{S_{0}}(\emph{caption}|\emph{image}), where PS0(caption∣image)P_{S_{0}}(\emph{caption}|\emph{image}) is the total probability of S0S_{0} incrementally generating caption given image. In other words, LevalL_{\mathit{eval}} uses Bayes’ rule to obtain from S0S_{0} the posterior probability of each image ww given a full caption uu.

The neural S0S_{0} used in the definition of LevalL_{\emph{eval}} must be trained on separate data to the neural S0S_{0} used for the S1S_{1} model which produces captions, since otherwise this S1S_{1} production model effectively has access to the system evaluating it. As Mao et al. (2016b) note, ‘‘a model might ‘communicate’ better with itself using its own language than with others’’. In evaluation, we therefore split the training data in half, with one part for training the S0S_{0} used in the caption generation model S1S_{1} and one part for training the S0S_{0} used in the caption evaluation model LevalL_{\emph{eval}}.

We say that the caption succeeds as a referring expression if the target has more probability mass under the distribution Leval(image∣caption)L_{\emph{eval}}(\emph{image}|\emph{caption}) than any distractor.

We train our production and evaluation models on separate sets consisting of regions in the Visual Genome dataset Krishna et al. (2017) and full images in MSCOCO Chen et al. (2015). Both datasets consist of over 100,000 images of common objects and scenes. MSCOCO provides captions for whole images, while Visual Genome provides captions for regions within images.

Our test sets consist of clusters of 10 images. For a given cluster, we set each image in it as the target, in turn. We use two test sets. Test set 1 (TS1) consists of 100 clusters of images, 10 for each of the 10 most common objects in Visual Genome.Namely, man, person, woman, building, sign, table, bus, window, sky, and tree.

Test set 2 (TS2) consists of regions in Visual Genome images whose ground truth captions have high word overlap, an indicator that they are similar. We again select 100 clusters of 10. Both test sets have 1,000 items in total (10 potential target images for each of 100 clusters).

Captioning System

Our neural image captioning system is a CNN-RNN architecturehttps://github.com/yunjey/pytorch-tutorial/tree/master/tutorials/03-advanced/image_captioning adapted to use a character-based LSTM for the language model.

Hyperparameters

We use a beam search with width 10 to produce captions, and a rationality parameter of α=5.0\alpha=5.0 for the S1S_{1}.

2 Results

As shown in Table 1, the character-level S1S_{1} obtains higher accuracy (68% on TS1 and 65.9% on TS2) than the S0S_{0} (48.9% on TS1 and 47.5% on TS2), demonstrating that S1S_{1} is better than S0S_{0} at referring.

We also observe that 66% percent of the times in which the S1S_{1} caption is referentially successful and the S0S_{0} caption is not, for a given image, the S1S_{1} caption is not one of the top 50 S0S_{0} captions, as generated by the beam search unrolling at S0S_{0}. This means that in these cases the non-incremental RSA method of Andreas and Klein (2016) could not have generated the S1 caption, if these top 50 S0S_{0} captions were the support of the prior over utterances.

Comparison to Word-Level RSA

We compare the performance of our character-level model to a word-level model.Here, we use greedy unrolling, for reasons of efficiency due to the size of UU for the word-level model, and set α=1.0\alpha=1.0 from tuning on validation data. For comparison, we note that greedy character-level S1S_{1} achieves an accuracy of 61.2% on TS1. This model is incremental in precisely the way defined in section 3.2, but uses a word-level LSTM so that u∈Uu\in U are words and UU is a vocabulary of English. It is evaluated with an LevalL_{\mathit{eval}} model that also operates on the word level.

Though the word S0S_{0} performs better on both test sets than the character S0S_{0}, the character S1S_{1} outperforms the word S1S_{1}, demonstrating the advantage of a character-level model for pragmatic behavior. We conjecture that the superiority of the character-level model is the result of the increased number of decisions where pragmatics can be taken into account, but leave further examination for future research.

Variants of the Model

We further explore the effect of two design decisions in the character-level model. First, we consider a variant of S1S_{1} which has a prior over utterances determined by an LSTM language model trained on the full set of captions. This achieves an accuracy of 67.2% on TS1. Second, we consider our standard S1S_{1} but with unrolling such that the L0L_{0} prior is drawn uniformly at each timestep rather than determined by the L0L_{0} posterior at the previous step. This achieves an accuracy of 67.4% on TS1. This suggests that neither this change of S1S_{1} nor L0L_{0} priors has a large effect on the performance of the model.

Conclusion

We show that incremental RSA at the level of characters improves the ability of the neural image captioner to refer to a target image. The incremental approach is key to combining RSA with language models: as utterances become longer, it becomes exponentially slower, for a fixed nn, to subsample nn% of the utterance distribution and then perform inference (non-incremental approach). Furthermore, character-level RSA yields better results than word-level RSA and is far more efficient.

Acknowledgments

Many thanks to Hiroto Udagawa and Poorvi Bhargava, who were involved in early versions of this project. This material is based in part upon work supported by the Stanford Data Science Initiative and by the NSF under Grant No. BCS-1456077. This work is also supported by a Sloan Foundation Research Fellowship to Noah Goodman.

References