Title: NEURAL SPEED READING VIA SKIM-RNN

Abstract: Inspired by the principles of speed reading, we introduce Skim-RNN, a recurrent neural network (RNN) that dynamically decides to update only a small fraction of the hidden state for relatively unimportant input tokens. Skim-RNN gives computational advantage over an RNN that always updates the entire hidden state. Skim-RNN uses the same input and output interfaces as a standard RNN and can be easily used instead of RNNs in existing models. In our experiments, we show that Skim-RNN can achieve significantly reduced computational cost without losing accuracy compared to standard RNNs across five different natural language tasks. In addition, we demonstrate that the trade-off between accuracy and speed of Skim-RNN can be dynamically controlled during inference time in a stable manner. Our analysis also shows that Skim-RNN running on a single CPU offers lower latency compared to standard RNNs on GPUs. * Equal contribution. 1 Flop reduction does not necessarily mean equivalent speed gain. For instance, on GPUs, there will be no speed gain because of parallel computation. On CPUs, the gain will not be as high as the Flop-R due to overheads. See Section 4.3.

1. INTRODUCTION:

Recurrent neural network (RNN) is a predominantly popular architecture for modeling natural language, where RNN sequentially 'reads' input tokens and outputs a distributed representation for each token. By recurrently updating the hidden state with an identical function, RNN inherently requires the same computational cost across time. While this requirement seems natural for some application domains, not all input token are equally important in many language processing tasks. For instance, in question answering, a rather efficient strategy would be to allocate less computation on irrelevant parts of the text (to the question) and only allow heavy computation on important parts.

Attention models (Bahdanau et al., 2014) compute the importance of the words relevant to the given task using an attention mechanism. They, however, do not focus on improving the efficiency of the inference. More recently, a variant of LSTMs (Yu et al., 2017) is introduced to improve inference efficiency through skipping multiple tokens at a given time step. In this paper, we introduce skim-RNN that takes advantage of 'skimming' rather than 'skipping' tokens. Skimming refers to the ability to decide to spend little time (rather than skipping) on parts of the text that does not affect the reader's main objective. Skimming typically gains trained human speed readers up to 4x speed up, occasionally with a bit of loss in the comprehension rates (Marcel Adam Just, 1987) .

Inspired by the principles of human's speed reading, we introduce Skim-RNN (Figure 1 ), which makes a fast decision on the significance of each input (to the downstream task) and 'skims' through unimportant input tokens by using a smaller RNN to update only a fraction of the hidden state. When the decision is to 'fully read', Skim-RNN updates the entire hidden state with the default RNN cell. Since the hard decision function ('skim' or 'read') is non-differentiable, we use gumbel-softmax (Jang et al., 2017) to estimate the gradient of the function, instead of more traditional methods such as REINFORCE (policy gradient) (Williams, 1992) . The switching mechanism between the two RNN cells enables Skim-RNN to reduce the total number of float operations (Flop reduction, or Flop-R) when the skimming rate is high, which often leads to faster inference on CPUs 1 , a highly desirable goal for large-scale products and small devices. Skim-RNN has the same input and output interfaces as standard RNNs, so it can be conveniently used to speed up RNNs in existing models. This is in contrast to LSTM-Jump (Yu et al., 2017) that does not have outputs for the skipped time steps. Moreover, the speed of Skim-RNN can be dynamically controlled at inference time by adjusting the threshold for the 'skim' decision. Lastly, we show that skimming achieves higher accuracy compared to skipping the tokens, implying that paying some attention to unimportant tokens is better than completely ignoring (skipping) them.

Our experiments show that Skim-RNN attains computational advantage (float operation reduction, or Flop-R) over a standard RNN, with up to 3x reduction in computations while maintaining the same level of accuracy, on four text classification tasks and two question answering task. Moreover, for applications that are concerned with latency than throughput, Skim-RNN on a CPU can offer lower-latency inference time compared to to standard RNNs on GPUs (Section 4.3). Our experiments show that we achieve higher accuracy and/or computational efficiency compared to LSTM-jump and verify our intuition about the advantages of skimming compared to skipping.

2. RELATED WORK:

Fast neural networks. As neural networks become widely integrated into real-world applications, making neural networks faster and lighter has drawn much attention in machine learning communities and industries recently. Mnih et al. (2014) perform hard attention instead of soft attention on image patches for caption generation, which reduces number of computations and memory usage. Han et al. (2016) compress a trained convolutional neural networks so that the model occupies less memory. Rastegari et al. (2016) approximate 32-bit float operations with single bit binary operations to substantially increase computational speed at the cost of little loss of precision. Odena et al. (2017) propose to change model behavior on per-input basis, which can decide to use less computation for simpler inputs.

More relevant work to ours are those that are specifically targeted for sequential data. LSTM-Jump (Yu et al., 2017) has the same goal as our model in that it aims to reduce the computational cost of recurrent neural networks. However, it is fundamentally different from skim-RNN in that it skips some input tokens while ours does not ignore any token and skims if the token is unimportant.

Our experiments confirm the benefits of skimming compared to skipping in Figure 5 . In addition, LSTM-Jump does not produce LSTM outputs for skipped tokens, which often means that it is nontrivial to replace a regular LSTM in existing models with LSTM-Jump, if the outputs of the LSTM (instead of just the last hidden state) is used. On the other hand, Skim-RNN emits a fixed-size output at every time step, so it is compatible with any RNN-based model. We also note the existence of Skip-LSTM (Campos et al., 2017) , a recent, concurrent submission to ours that shares many characteristics with LSTM-Jump.

Variable Computation in RNN (VCRNN) (Jernite et al., 2017) is also concerned with dynamically controlling the computational cost of RNN. However, VCRNN only controls the number of units to update at each time step, while Skim-RNN contains multiple RNNs that "share" a common hidden state with different regions on which they operate (choosing which RNN to use at each time step). This has two important implications. First, the nested RNNs in Skim-RNN have their own weights and thus can be considered as independent agents that interact with each other through the shared state. That is, Skim-RNN updates the shared portion of the hidden state differently (by using different RNNs) depending on importance of the token, whereas the affected (first few) dimensions in VCRNN are identically updated regardless of the importance of the input. We argue that this capability of Skim-RNN could be a crucial advantage, as we demonstrate in Section 4. Second, at each time step, VCRNN needs to make a d-way decision (where d is the hidden state size, usually hundreds), whereas Skim-RNN only requires binary decision. This means that computing exact gradient of VCRNN is even more intractable (d L vs 2 L ) than that of Skim-RNN, and subsequently the gradient estimation would be harder as well. We conjecture that this results in a higher variance in the performance of VCRNN per training, which we also discuss in Section 4. Choi et al. (2017) use a CNN-based sentence classifier, which can be efficiently computed with GPUs, to select the most relevant sentence(s) to the question among hundreds of candidates, and uses an RNN-based question answering model, which is relatively costly on GPUs, to obtain the answer from the selected sentence. The two models are jointly trained with REINFORCE (Williams, 1992). Skim-RNN is inherently different from the model in that ours is generic (replaces RNN) and is not specifically for question answering, and Choi et al. (2017) the model focuses on reducing GPU-time (maximizing parallelization), while ours focuses on reducing CPU-time (minimizing Flop).

Johansen et al. ( 2017) have shown that, for sentiment analysis, it is possible to cheaply determine if entire sentence can be correctly classified with a cheap bag-of-word model or needs a more expensive LSTM classifier. Again, Skim-RNN is intrinsically different from their approach in that it makes a single, static decision on which model to use on the entire example.

Attention. Modeling human's attention while reading has been studied in the field of cognitive psychology (Reichle et al., 2003) . Neural attention mechanism has been also widely employed and proved to be essential for many language tasks (Bahdanau et al., 2014) , allowing the model to focus on specific parts of of the text. Nevertheless, it is important to note the distinction from Skim-RNN that the neural attention mechanism is soft (differentiable) and is not intended for faster inference.

More recently, Hahn & Keller (2016) have modeled the human reading pattern with neural attention in an unsupervised learning approach, leading to conclusion that there exists trade-off between a system's performance in a given reading-based task and the speed of reading.

RNNs with hard decisions. Our model is relevant to several recent works that incorporate hard decisions within recurrent neural networks (Kong et al., 2016) . Dyer et al. (2016) uses RNN for transition-based dependency parsing. At each time step, the RNN unit decides between three possible choices. The architecture does not suffer from the intractability of computing the gradients, because the decision is supervised at every time step. Chung et al. (2017) dynamically construct multiscale RNN by making a hard binary decision on whether to update hidden state of each layer at each time step. In order to handle the intractability of computing the gradient, they use straight-through estimation (Bengio et al., 2013) with slope annealing, which can be considered as an alternative method to Gumbel-softmax reparameterization.

3. MODEL:

Skim-RNN unit consists of two RNN cells, default (big) RNN cell of hidden state size d and small RNN cell of hidden state size d , where d and d are hyperparameters defined by the user and d d. Each RNN cell has its own weight and bias, and it can be any variant of RNN, such as GRU and LSTM. The core idea of the model is that the Skim-RNN dynamically makes the decision at each time step whether to use the big RNN (if the current token is important), or to skim by using the small RNN (if the current token is unimportant). Skipping a token can be implemented by setting d , the size of the small RNN, equal to zero. Since small RNN requires less number of float operations than big RNN, the model is faster than big RNN alone while obtaining similar or better results than the big RNN alone. Later in Section 4, we will measure the speed effectiveness of Skim-RNN via three criteria: skim rate (how many words are skimmed), number of float operations, and benchmarked speed on several platforms. Figure 1 depicts the schematic of Skim-RNN on a short word sequence.

We first describe the desired inference model of Skim-RNN to be learned in Section 3.1. The input to and the output of Skim-RNN are equivalent to that of a regular RNN: a varying-length sequence of vectors go in, and an equal-length sequence of output vectors come out. We model the hard decision of skimming at each time step with a stochastic multinomial variable. Note that obtaining the exact gradient is intractable as the sequence becomes longer, and the loss is not differentiable due to hard argmax; hence, in Section 3.2, we reparameterize the stochastic distribution with Gumbelsoftmax (Jang et al., 2017) to approximate the inference model with a fully-differentiable function, which can be efficiently trained with stochastic gradient descent.

3.1. INFERENCE:

At each time step t, Skim-RNN unit takes the input x t ∈ R d and the previous hidden state h t-1 ∈ R d as its arguments, and outputs the new state h t .2 Let k represent the number of choices for the hard decision at each time step. In Skim-RNNs, k = 2 since it either fully reads or skims. In general, although not explored in this paper, one can have k > 2 for multiple degrees of skimming.

We model the decision making process with a multinomial random variable Q t over the probability distribution of choices p t . We model p t with

EQUATION

where W ∈ R k×2d and b ∈ R k are weights to be learned, and [; ] indicates row concatenation. Note that one can define α in a different way (e.g., the dot product between x t and h t-1 ), as long as its time complexity is strictly less than O(d 2 ) to gain computational advantage. For the ease of explanation, let the first element of the vector, p 1 t , indicate the probability for fully reading, and the second element, p 2 t , indicate the probability for skimming. Now we define the random variable Q t to make the decision to skim (Q t = 2) or not (Q t = 1), by sampling Q t from the probability distribution p t .

Q t ∼ Multinomial(p t ),

(2) which means Q t = 1 and Q t = 2 will be sampled with the probability of p 1 t and p 2 t , respectively. If Q t = 1, then the unit applies a standard, full RNN on the input and the previous hidden state to obtain the new hidden state. If Q t = 2, then the unit applies a smaller RNN to obtain a small hidden state, which replaces only a portion of the previous hidden state. More formally,

EQUATION

)

where f is a full RNN with d-dimensional output, while f is a smaller RNN with d -dimensional output, where d d, and (:) is vector slicing. Note that f and f can be any variant of RNN such as GRU and LSTM3 . The main computational advantage of the model is that, if d d, then whenever the model decides to skim, it requires O(d d) computations, which is substantially less than O(d 2 ). Also, as a side effect, the last d -d dimensions of the hidden state are less frequently updated, which we hypothesize to be a nontrivial factor for improved accuracy in some datasets (Section 4).

3.2. TRAINING:

Since the loss is a random variable that depends on the random variables Q t , we minimize the expected loss with respect to the distribution of the variables. 4 Suppose that we define the loss function to be minimized conditioned on a particular sequence of decisions, L(θ; Q) where Q = Q 1 . . . Q T is a sequence of decisions with length T . Then the expectation of the loss function over the distribution of the sequence of the decisions is

EQUATION

In order to exactly compute ∇E Qt [L(θ)], one needs to enumerate all possible Q, which is intractable (exponentially increases with the sequence length). It is possible to approximate the gradients with REINFORCE (Williams, 1992), which is an unbiased estimator, but it is known to have a high variance. We instead use gumbel-softmax distribution (Jang et al., 2017) to approximate Equation 2, r t ∈ R k (same size as p i t ), which is fully differentiable. Hence the back-propagation can now efficiently flow to p t without being blocked by the stochastic variable Q t , and the approximation can arbitrarily approach to Q t by controlling hyperparameters. The reparameterized distribution is obtained by

EQUATION

where g i t is an independent sample from Gumbel(0, 1) = -log(-log(Uniform(0, 1)) and τ is the temperature (hyperparameter). We relax the conditional statement of Equation 3 by rewriting h t

EQUATION

as shown in Equation 3. Note that Equation 6 approaches Equation 3 as r i t approaches to be a one-hot vector. Jang et al. (2017) have shown that r t becomes more discrete and approaches the distribution of Q t as τ → 0. Hence we start from a high temperature (smoother r t ) value and slowly decreases it.

Lastly, in order to encourage the model to skim when possible, in addition to minimizing the main loss function (L(θ)), which is application-dependent, we also jointly minimize the arithmetic mean of the negative log probability of skimming, 1 T log(p 2 t ), where T is the sequence length. We define the final loss function by

EQUATION

where γ is a hyperparameter to control the ratio between the two terms. We evaluate the effectiveness of Skim-RNN in terms of accuracy and float operation reduction (Flop-R) on four classification tasks and a question answering task. These language tasks have been chosen because they do not require one's full attention to every detail of the text, but rather ask for capturing the high-level information (classification) or focusing on specific portion (QA) of the text, which is more appropriate for the principle of speed reading5 .

4. EXPERIMENTS:

We start with classification tasks (Section 4.1) and compare Skim-RNN against standard RNN, LSTM-Jump (Yu et al., 2017) , and VCRNN (Jernite et al., 2017) , which have a similar goal to ours.

Then we evaluate and analyze our system in a well-studied question answering dataset, Stanford Question Answering Dataset (SQuAD) (Section 4.2). Since LSTM-Jump does not report on this dataset, we simulate 'skipping' by not updating the hidden state when the decision is to 'skim', and show that skimming yields better accuracy-speed trade-off than skipping. We defer the results of Skim-RNN on Children Book Test to Appendix B.

Evaluation Metrics. We measure the accuracy for the the classification task (Acc) and the F1 and exact match (EM) scores of the correct span for the question answering task. We evaluate the computational efficiency with skimming rate (Sk) i.e., how frequently words are skimmed, and reduction in float operations (Flop-R). We also report benchmarked speed gain rate (compared to standard LSTM) of classification tasks and CBT since LSTM-Jump does not report Flop reduction rate (See Section 4.3 for how the benchmark is performed). Note that LSTM-Jump measures speed gain based on GPU while ours is measured based on CPU.

4.1. TEXT CLASSIFICATION:

In a language classification task, the input is a sequence of words and the output is the vector of categorical probabilities. Each word is embedded into a d-dimensional vector. We initialize the vector with GloVe (Pennington et al., 2014) and use those as the inputs for LSTM (or Skim-LSTM). We make a linear transformation on the last hidden state of the LSTM and then apply softmax function to obtain the classification probabilities. We use Adam (Kingma & Ba, 2015) for optimization, with initial learning rate of 0.0001. For Skim-LSTM, τ = max(0.5, exp(-rn)) where r = 1e -4 and n is the global training step, following Jang et al. (2017) . We experiment on different sizes of big LSTM (d ∈ {100, 200}) and small LSTM (d ∈ {5, 10, 20}) and the ratio between the model loss and the skim loss (γ ∈ {0.01, 0.02}) for Skim-LSTM. We use batch size of 32 for SST and Rotten Tomatoes, and 128 for others. For all models, we stop early when the validation accuracy does not increase for 3000 global steps. Results. Table 2 shows the accuracy and the computational cost of our model compared with standard LSTM, LSTM-Jump (Yu et al., 2017) , and VCRNN (Jernite et al., 2017) . First, Skim-LSTM has a significant reduction in number of float operations compared to LSTM, as indicated by 'Flop-R'. When benchmarked on Python ('Sp' column), we observe a nontrivial speed up. We expect that the gain can be further maximized when implemented with lower level language that has smaller overhead. Second, our model outperforms standard LSTM and LSTM-Jump across all tasks, and its accuracy is better than or close to that of RNN-based state of the art models, which are often I liked this movie, not because Tom Selleck was in it, but because it was a good story about baseball and it also had a semi-over dramatized view of some of the issues that a BASEBALL player coming to the end of their time in Major League sports must face. I also greatly enjoyed the cultural differen-Positive ces in American and Japanese baseball and the small facts on how the games are played differently.

Overall, it is a good movie to watch on Cable TV or rent on a cold winter's night and watch about the "Dog Day's" of summer and know that spring training is only a few months away. A good movie for a baseball fan as well as a good "DATE" movie. Trust me on that one! *Wink* No! no -No -NO! My entire being is revolting against this dreadful remake of a classic movie. I knew we were heading for trouble from the moment Meg Ryan appeared on screen with her ridiculous hair and clothing -literally looking like a scarecrow in that garden she was digging. Meg Negative Ryan playing Meg Ryan -how tiresome is that?! And it got worse ... so much worse. The horribly cliché lines, the stock characters, the increasing sense I was watching a spin-off of "The First Wives Club" and the ultimate hackneyed schtick in the delivery room. How many times have I seen this movie? Only once, but it feel like a dozen times -nothing original or fresh about it. For shame! specifically designed for these tasks. We hypothesize the accuracy improvement over LSTM could be due to the increased stability of the hidden state, as the majority of the hidden state is not updated when skimming. Figure 2 shows the effect of varying the size of the small hidden state as well as the parameter γ on the accuracy and computational cost. 

4.2. QUESTION ANSWERING:

In Stanford Question Answering Dataset, the task is to locate the answer span for a given question in a context paragraph. We evaluate the effectiveness of Skim-RNN for SQuAD with two different models: LSTM+Attention and BiDAF (Seo et al., 2017) . The first model is inspired by most current QA systems consisting of multiple LSTM layers and an attention mechanism. The model is complex enough to reach reasonable accuracy on the dataset, and simple enough to run well-controlled analyses for the Skim-RNN. The details of the model are described in Appendix A.1. The second model is an open-source model designed for SQuAD, which is studied to mainly show that Skim-RNN could replace RNN in existing complex systems.

Training. We use Adam and initial learning rate of 0.0005. For stable training, we pretrain with standard LSTM for the first 5k steps , and then finetune with Skim-LSTM (Section A.2 shows different pretraining schemas). Other hyperparameter setup follows that of classification in Section 4.1.

Results. Table 4 (above double line) shows the accuracy (F1 and EM) of LSTM+Attention and Skim-LSTM+Attention models as well as VCRNN (Jernite et al., 2017) . We observe that the skimming models achieve higher or similar F1 score to those of the default non-skimming models (LSTM+Att) while attaining the reduction in computational cost (Flop-R) by more than 1.4 times. Moreover, decreasing layers (1 layer) or hidden size (d=5) improves Flop-R, but significantly decreases the accuracy (compared to skimming). Table 4 (below double line) demonstrates that replacing LSTM with Skim-LSTM in an existing complex model (BiDAF) stably gives reduced computational cost without losing much accuracy (only 0.2% drop from 77.3% of BiDAF to 77.1% of Sk-BiDAF with γ = 0.001).

Figure 3 shows the skimming rate of different layers of LSTM with varying values of γ in LSTM+Att model. There are four points on the axis of the figures associated with two forward and two backward layers of the model. We see two interesting trends here. First, the skimming rate of the second layers (forward and backward) are higher than that of the first layer across different gamma values. A possible explanation for this trend is that the model is more confident about which tokens are important at the second layer. Second, higher γ value leads to higher skimming rate, which agrees with its intended functionality.

Figure 4 shows F1 score of LSTM+Attention model using standard LSTM and Skim LSTM, sorted in ascending order by Flop-R. While models tend to perform better with larger computational cost, Skim LSTM (Red) outperforms standard LSTM (Blue) with comparable computational cost. We (batch size = 1) in all three frameworks on a single thread of CPU (averaged over 100 trials), and have observed that NumPy is 1.5 and 2.8 times faster than TensorFlow and PyTorch.7 This seems to be mostly due to the fact that the frameworks are primarily (optimized) for GPUs and they have larger overhead than NumPy that they cannot take much advantage of reducing the size of the hidden state of the LSTM below 100.

Figure 7 shows the relative speed gain of Skim-LSTM compared to standard LSTM with varying hidden state size and skim rate. We use NumPy, and the inferences are run on a single thread of CPU.

We also plot the ratio between the reduction of the number of float operations (Flop-R) of LSTM and Skim-LSTM. This can be considered as a theoretical upper bound of the speed gain on CPUs. We note two important observations. First, there is an inevitable gap between the actual gain (solid line) and the theoretical gain (dotted line). This gap will be larger with more overhead of the framework, or more parallelization (e.g. multithreading). Second, the gap decreases as the hidden state size increases because the the overhead becomes negligible with very large matrix operations. Hence, the benefit of Skim-RNN will be greater for larger hidden state size.

Latency. A modern GPU has much higher throughput than a CPU with parallel processing. However, for small networks, the CPU often has lower latency than the GPU. Comparing between NumPy with CPU and TensorFlow with GPU (Titan X), we observe that the former has 1.5 times lower latency (75 µs vs 110 µs per token) for LSTM of d = 100. This means that combining Skim-RNN with CPU-based framework can lead to substantially lower latency than GPUs. For instance, Skim-RNN with CPU on IMDb has 4.5x lower latency than a GPU, requiring only 29 µs per token on average.

5. CONCLUSION:

We present Skim-RNN, a recurrent neural network that can dynamically decide to use the big RNN (read) or the small RNN (skim) at each time step, depending on the importance of the input. While

Skim-RNN has significantly lower computational cost than its RNN counterpart, the accuracy of Skim-RNN is still on par with or better than standard RNNs, LSTM-Jump, and VCRNN. Since Skim-RNN has the same input and output interface as an RNN, it can easily replace RNNs in existing applications. We also show that a Skim-RNN can offer better latency results on a CPU compared to a standard RNN on a GPU. Future work involves using Skim-RNN for applications that require much higher hidden state size, such as video understanding, and using multiple small RNN cells for varying degrees of skimming.

:

We assume both input and hidden state are d-dimensional for brevity, but our arguments are valid for different sizes as well.

Since LSTM cell has two outputs, hidden state (ht) and memory (ct), the slicing and concatenation in Equation 3 is applied for each output.

An alternative view is that, if we let Qt = arg max(pt) instead of sampling, which we do during inference for deterministic outcome, then the loss is non-differentiable due to the argmax operation (hard decision).

'Speed reading' would not be appropriate for many language tasks. For instance, in translation task, one would not skim through the text because most input tokens are crucial for the task.

Speed up on GPUs hugely depends on parallelization, which is not relevant to our contribution.

NumPy's speed becomes similar to that of TensorFlow and PyTorch at d = 220 and d = 700, respectively. At larger hidden size, NumPy becomes slower.

Figures and Tables:

Figure 2: Analyzing the effect of small hidden state size, d' (left) and γ (right) on skim rate; (d = 100, d = 10, and γ = 0.02 are default values).

Figure 6: Reading (red) and skimming (white) decisions in four LSTM layers (two for forward and two for backward) of Skim-LSTM+Attention model. We see that the second layer skims more, implying that the second layer is more confident about which tokens are important.

The schematic of Skim-RNN on a sample sentence from Stanford Sentiment Treebank: "intelligent and invigorating film". At time step 1, Skim-RNN makes the decision to read or skim x1 by using Equation 1 on h0 and x1. Since 'intelligent' is an important word for sentiment, it decides to read (blue diamond) by obtaining a full-size hidden state with the big RNN and updating the entire previous hidden state. At time step 2, Skim-RNN decides to skim (empty diamond) the word 'and' by updating the first few dimensions of the hidden state using small RNN.

Table content: <table><tr><td>𝐡 '</td><td>𝐡 &amp;</td><td>𝐡 "</td><td>𝐡 $</td><td>𝐡 %</td></tr><tr><td/><td>Small</td><td/><td>Small</td><td/></tr><tr><td/><td>RNN</td><td/><td>RNN</td><td/></tr><tr><td>Big RNN</td><td/><td>Big RNN</td><td/><td/></tr><tr><td/><td>COPY</td><td/><td>COPY</td><td/></tr><tr><td>𝑄 &amp; =1</td><td>𝑄 " =2</td><td>𝑄 $ =1</td><td>𝑄 % =2</td><td/></tr><tr><td>READ</td><td>SKIM</td><td>READ</td><td>SKIM</td><td/></tr><tr><td>𝐱 &amp;</td><td>𝐱 "</td><td>𝐱 $</td><td>𝐱 %</td><td/></tr><tr><td>"Intelligent"</td><td>"and"</td><td>"invigorating"</td><td>"film"</td><td/></tr><tr><td>Figure 1:</td><td/><td/><td/><td/></tr></table>

Statistics and the examples of the datasets that Skim-RNN is evaluated on. SST refers to Stanford Sentiment Treebank, SQuAD refers to Stanford Question Answering Dataset, CBT-NE refers to Named Entity dataset of Children Book Test, and CBT-CN refers to Common Noun of CBT.

Table content: <table><tr><td>Dataset</td><td>task type</td><td>answer type</td><td>Number of examples</td><td colspan="2">Avg. Len vocab size</td></tr><tr><td>SST</td><td>Sentiment Analysis</td><td>Pos/Neg</td><td>6,920 / 872 / 1,821</td><td>19</td><td>13,750</td></tr><tr><td colspan="2">Rotten Tomatoes Sentiment Analysis</td><td>Pos/Neg</td><td>8,530 / 1,066 / 1,066</td><td>21</td><td>16,259</td></tr><tr><td>IMDb</td><td>Sentiment Analysis</td><td>Pos/Neg</td><td>21,143 / 3,857 / 25,000</td><td>282</td><td>61,046</td></tr><tr><td>AGNews</td><td>News classification</td><td>4 categories</td><td>101,851 / 18,149 / 7,600</td><td>43</td><td>60,088</td></tr><tr><td>CBT-NE</td><td>Question Answering</td><td>10 candidates</td><td>108,719 / 2,000 / 2,500</td><td>461</td><td>53,063</td></tr><tr><td>CBT-CN</td><td>Question Answering</td><td>10 candidates</td><td>120,769 / 2,000 / 2,500</td><td>500</td><td>53,185</td></tr><tr><td>SQuAD</td><td colspan="2">Question Answering span from context</td><td>87,599 / 10,570 / -</td><td>141</td><td>69,184</td></tr></table>

Text classification results on SST, Rotten Tomatoes, IMDb and AGNews. Results by standard LSTM, Skim-LSTM, LSTM-Jump(Yu et al., 2017), VCRNN(Jernite et al., 2017) and state of the art (SOTA). Evaluation metrics are accuracy (Acc), skimming rate in % (Sk), reduction rate in the number of floating point operations (Flop-r) compared to standard LSTM, and benchmarked speed up rate (Sp) compared to standard LSTM. We use the hidden size of 100 by default. SOTAs are fromKokkinos & Potamianos (2017),Miyato et al. (2017),Miyato et al. (2017) andZhang et al. (2015), respectively.

Table content: <table><tr><td>LSTM</td><td/><td/><td/><td>SST</td><td/><td/><td colspan="2">Rotten Tomatoes</td><td/><td/><td colspan="2">IMDb</td><td/><td/><td colspan="2">AGNews</td><td/></tr><tr><td>Model</td><td>d /γ</td><td>Acc</td><td>Sk</td><td>Flop-r</td><td>Sp</td><td>Acc</td><td>Sk</td><td>Flop-r</td><td>Sp</td><td>Acc</td><td>Sk</td><td>Flop-r</td><td>Sp</td><td>Acc</td><td>Sk</td><td>Flop-r</td><td>Sp</td></tr><tr><td>Standard</td><td/><td>86.4</td><td>-</td><td>1.0x</td><td colspan="2">1.0x 82.5</td><td>-</td><td>1.0x</td><td colspan="2">1.0x 91.1</td><td>-</td><td>1.0x</td><td colspan="2">1.0x 93.5</td><td>-</td><td>1.0x</td><td>1.0x</td></tr><tr><td>Skim</td><td colspan="3">5/0.01 86.4 58.2</td><td>2.4x</td><td colspan="3">1.4x 84.2 52.0</td><td>2.1x</td><td colspan="3">1.3x 89.3 79.2</td><td>4.7x</td><td colspan="3">2.1x 93.6 30.3</td><td>1.4x</td><td>1.0x</td></tr><tr><td>Skim</td><td colspan="3">10/0.01 85.8 61.1</td><td>2.5x</td><td colspan="3">1.5x 82.5 58.5</td><td>2.4x</td><td colspan="3">1.4x 91.2 83.9</td><td>5.8x</td><td colspan="3">2.3x 93.5 33.7</td><td>1.5x</td><td>1.0x</td></tr><tr><td>Skim</td><td colspan="3">5/0.02 85.6 62.3</td><td>2.6x</td><td colspan="3">1.5x 81.8 63.7</td><td>2.7x</td><td colspan="3">1.5x 88.7 63.2</td><td>2.7x</td><td colspan="3">1.5x 93.3 36.4</td><td>1.6x</td><td>1.0x</td></tr><tr><td>Skim</td><td colspan="3">10/0.02 86.4 68.0</td><td>3.0x</td><td colspan="3">1.7x 82.5 63.0</td><td>2.6x</td><td colspan="3">1.5x 90.9 90.7</td><td>9.5x</td><td colspan="3">2.7x 92.5 10.6</td><td>1.1x</td><td>0.8x</td></tr><tr><td colspan="2">LSTM-Jump</td><td>-</td><td>-</td><td>-</td><td>-</td><td>79.3</td><td>-</td><td>-</td><td colspan="2">1.6x 89.4</td><td>-</td><td>-</td><td colspan="2">1.6x 89.3</td><td>-</td><td>-</td><td>1.1x</td></tr><tr><td colspan="2">VCRNN</td><td>81.9</td><td>-</td><td>2.6x</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr><tr><td colspan="2">SOTA</td><td>89.5</td><td>-</td><td>-</td><td>-</td><td>83.4</td><td>-</td><td>-</td><td>-</td><td>94.1</td><td>-</td><td>-</td><td>-</td><td>93.4</td><td>-</td><td>-</td><td>-</td></tr></table>

A positive and a negative review from IMDb dataset. Black-colored words are skimmed (used smaller LSTM, d = 10), while blue-colored words are fully read (used bigger LSTM, d = 200).

Table content: <table/>

shows an example from IMDb dataset, where Skim-RNN with d = 200, d = 10, and γ = 0.01 correctly classifies it with high skimming rate (92%). The black words are skimmed, and blue words are fully read. As expected, the model skims through unimportant words, including prepositions, and latently learns to only carefully read the important words, such as 'liked', 'dreadful', and 'tiresome'.

Table content: <table/>

Peer review (iclr2018):
 Summary: The paper proposes a learnable skimming mechanism for RNN. The model decides whether to send the word to a larger heavy-weight RNN or a light-weight RNN. The heavy-weight and the light-weight RNN each controls a portion of the hidden state. The paper finds that with the proposed skimming method, they achieve a significant reduction in terms of FLOPS. Although it doesn’t contribute to much speedup on modern GPU hardware, there is a good speedup on CPU, and it is more power efficient. Contribution: - The paper proposes to use a small RNN to read unimportant text. Unlike (Yu et al., 2017), which skips the text, here the model decides between small and large RNN. Pros: - Models that dynamically decide the amount of computation make intuitive sense and are of general interests. - The paper presents solid experimentation on various text classification and question answering datasets. - The proposed method has shown reasonable reduction in FLOPS and CPU speedup with no significant accuracy degradation (increase in accuracy in some tasks). - The paper is well written, and the presentation is good. Cons: - Each model component is not novel. The authors propose to use Gumbel softmax, but does compare other gradient estimators. It would be good to use REINFORCE to do a fair comparison with (Yu et al., 2017 ) to see the benefit of using small RNN. - The authors report that training from scratch results in unstable skim rate, while Half pretrain seems to always work better than fully pretrained ones. This makes the success of training a bit adhoc, as one need to actively tune the number of pretraining steps. - Although there is difference from (Yu et al., 2017), the contribution of this paper is still incremental. Questions: - Although it is out of the scope for this paper to achieve GPU level speedup, I am curious to know some numbers on GPU speedup. - One recommended task would probably be text summarization, in which the attended text can contribute to the output of the summary. Conclusion: - Based on the comments above, I recommend Accept