We present deep communicating agents in an encoder-decoder architecture to address the challenges of representing a long document for abstractive summarization. With deep communicating agents, the task of encoding a long text is divided across multiple collaborating agents, each in charge of a subsection of the input text. These encoders are connected to a single decoder, trained end-to-end using reinforcement learning to generate a focused and coherent summary. Empirical results demonstrate that multiple communicating encoders lead to a higher quality summary compared to several strong baselines, including those based on a single encoder or multiple non-communicating encoders. We focus on the task of abstractive summarization of a long document. In contrast to extractive summarization, where a summary is composed of a subset of sentences or words lifted from the input text as is, abstractive summarization requires the generative ability to rephrase and restructure sentences to compose a coherent and concise summary. As recurrent neural networks (RNNs) are capable of generating fluent language, variants of encoder-decoder RNNs (Sutskever et al., 2014; Bahdanau et al., 2015) have shown promising results on the abstractive summarization task (Rush et al., 2015; Nallapati et al., 2017). The fundamental challenge, however, is that the strong performance of neural models at encoding short text does not generalize well to long text. The motivation behind our approach is to be able to dynamically attend to different parts of the input to capture salient facts. While recent work in sum  Tired of counting sheep ? Each agent a and b encodes one paragraph in multiple layers. By passing new messages through multiple layers the agents are able to coordinate and focus on the important aspects of the input text. marization addresses these issues using improved attention models (Chopra et al., 2016), pointer networks with coverage mechanisms (See et al., 2017), and coherence-focused training objectives (Paulus et al., 2018; Jaques et al., 2017), an effective mechanism for representing a long document remains a challenge. Simultaneous work has investigated the use of deep communicating agents (Sukhbaatar et al., 2016) for collaborative tasks such as logic puzzles (Foerster et al., 2016), visual dialog (Das et al., 2017), and reference games (Lazaridou et al., 2016). Our work builds on these approaches to propose the first study on using communicating agents to encode long text for summarization. The key idea of our model is to divide the hard task of encoding a long text across multiple collaborating encoder agents, each in charge of a different subsection of the text (Figure 1). Each of these agents encodes their assigned text independently, and broadcasts their encoding to others, allowing agents to share global context information with one another about different sections of the document. All agents then adapt the encoding of their assigned text in light of the global context and re-1662 L o c a l E n c o d e r B-LSTM source paragraph-1 Tired of counting B-LSTMB-LSTM source paragraph-2 You don't have B-LSTMW o r d A tt e n t i o n B-LSTM source paragraph-3 Melatoninsupplement B-LSTM word context vector ( ) agent attention ( t )    word context vector ( ) word context vector ( ) agent context vector ( ) Fragrances <Start> that make you feel D e c o d e r LSTM vocabulary distribution a zoo a zoo calm yen final distribution agent attention ( t -1) C o n t e x t u a l A g e n t A tt e n t i o n      C o n t e x t u a l E n c o d e r L a y e r s B-LSTMB-LSTMB-LSTM    Figure 2: Multi-agent-encoder-decoder overview. peat the process across multiple layers, generating new messages at each layer. Once each agent completes encoding, they deliver their information to the decoder with a novel contextual agent attention (Figure 2). Contextual agent attention enables the decoder to integrate information from multiple agents smoothly at each decoding step. The network is trained end-to-end using self-critical reinforcement learning (Rennie et al., 2016) to generate focused and coherent summaries. Empirical results on the CNN/DailyMail and New York Times datasets demonstrate that multiple communicating encoders lead to higher quality summaries compared to strong baselines, including those based on a single encoder or multiple non-communicating encoders. Human evaluations indicate that our model is able to produce more focused summaries. The agents gather salient information from multiple areas of the document, and communicate their information with one another, thus reducing common mistakes such as missing key facts, repeating the same content, or including unnecessary details. Further analysis reveals that our model attains better performance when the decoder interacts with multiple agents in a more balanced way, confirming the benefit of representing a long document with multiple encoding agents. Notation Each document d is a sequence of paragraphs x a , which are split across multiple encoding agents a =1,.., M (e.g., agent-1 encodes the first paragraph x 1 , agent-2 the second paragraph x 2 , so on). Each paragraph x a = { w a,i } I , is a sequence of I words. We construct a V -sized vocabulary from the training documents from the most frequently appearing words. Each word w a,i is embedded into a n -dimensional vector e a,i . All W variables are linear projection matrices. following two stacked encoders. Local Encoder The first layer is a local encoder of each agent a , where the tokens of the corresponding paragraph x a are fed into a single layer bi-directional LSTM ( bLSTM ), producing the local encoder hidden states, h (1) i  RH :  h (1) i ,  h (1) i = bLSTM ( e i ,  h (1) i  1 ,  h (1) i +1 ) (1) h (1) i = W 1 [  h (1) i ,  h (1) i ] (2) where H is the hidden state dimensionality. The 1663 output of the local encoder layer is fed into the contextual encoder. Each cell of the ( k +1)th contextual layer is a bLSTM that takes three inputs: the hidden states from the adjacent LSTM cells,  h ( k +1) i  1  RH or  h ( k +1) i +1  RH , the hidden state from the previous layer h ( k ) i , and the message vector from other agents z ( k )  RH and outputs h ( k +1) i  RH :  h ( k +1) i ,  h ( k +1) i = bLSTM ( f ( h ( k ) i , z ( k ) ) , (3)  h ( k +1) i  1 ,  h ( k +1) i +1 ) (4) h ( k +1) i = W 2 [  h ( k +1) i ,  h ( k +1) i ] (5) where i = 1 Contextual Encoder Our framework enables agent communication cycles across multiple encoding layers. The output of each contextual encoder is an adapted representation of the agent's encoded information conditioned on the information received from the other agents. At each layer k =1,.., K , each agent a jointly encodes the information received from the previous layer (see Figure 3). ..I indicates the index of each token in the sequence. The message z ( k ) received by any agent a in layer k is the average of the outputs of the other agents from layer k : z ( k ) = 1 M  1 P m 6 = a h ( k ) m,I (6) where h ( k ) m,I is the last hidden state output from the k th contextual layer of each agent where m 6 = a . Here, we take the average of the messages received from other encoder agents, but a parametric function such as a feed forward model or an attention over messages could also be used. The message z ( k ) is projected with the agent's previous encoding of its document: f ( h ( k ) i , z ( k ) ) = v T 1 tanh ( W 3 h ( k ) i + W 4 z ( k ) ) (7) where v 1 , W 3 , and W 4 are learned parameters shared by every agent. Equation (7) combines the information sent by other agents with the context of the current token from this paragraph. This yields different features about the current context in relation to other topics in the source document. At each layer, the agent modifies its representation of its own context relative to the information received from other agents, and updates the information it sends to other agents accordingly. The output from the last contextual encoder layer of each agent { h ( K ) a,i } I , which is a sequence of hidden state vectors of each token i , is sent to the decoder to calculate word-attention distributions. We use a single-layer LSTM for the decoder and feed the last hidden state from the first agent s 0 = h ( K ) 1 ,I as the initial state. At each time step t , the decoder predicts a new word in the summary w t and computes a new state s t by attending to relevant input context provided by the agents. The decoder uses a new hierarchical attention mechanism over the agents. First, a word attention distribution l ta (Bahdanau et al. (2015)) is computed over every token { h ( K ) a,i } I for each agent a : l ta = softmax ( v T 2 tanh( W 5 h ( K ) a + W 6 s t + b 1 )) (8) where l ta  [0 , 1] I is the attention over all tokens in a paragraph x a and v 2 , W 5 , W 6 , b 1 are learned parameters. For each decoding step t , a new decoder context is calculated for each agent: c ta = X i l ta,i h ( K ) a,i (9) which is the weighted sum of the encoder hidden states of agent a . Each word context vector represents the information extracted by the agent from the paragraph it has read. Here the decoder has to decide which information is more relevant to the 1664 current decoding step t . This is done by weighting each context vector by an agent attention yielding the document global agent attention distribution g t (see Figure 2): g t = softmax ( v T 3 tanh ( W 7 c t + W 8 s t + b 2 )) (10) where v 3 , W 7 , W 8 , and b 2 are learned, and g t  [0,1] M is a soft selection over M agents. Then, we compute the agent context vector c  t : c  t = P a g ta c ta (11) The agent context c  t  RH is a fixed length vector encoding salient information from the entire document provided by the agents. It is then concatenated with the decoder state s t and fed through a multi-layer perception to produce a vocabulary distribution (over all vocabulary words) at time t : P voc ( w t | s t , w t  1 ) = softmax ( MLP ([ s t , c  t ])) (12) To keep the topics of generated sentences intact, it is reasonable that the decoder utilize the same agents over the course of short sequences (e.g., within a sentence). Because the decoder is designed to select which agent to attend to at each time step, we introduce contextual agent attention ( caa ) to prevent it from frequently switching between agents. The previous step's agent attention c  t  1 is used as additional information to the decoding step to generate a distribution over words: P voc ( w t | ) = softmax ( MLP ([ s t , c  t , c  t  1 ])) (13) 2.3 Multi-Agent Pointer Network Similar to See et al. (2017), we allow for copying candidate words from different paragraphs of the document by computing a generation probability value for each agent p ta  [0,1] at each timestep t using the context vector c ta , decoder state s t and decoder input y t : p ta =  ( v T 5 c ta + v T 6 s t + v T 7 y t + b ) (14) where b is a learned scalar, y t is the ground-truth/predicted output (depending on the train-ing/testing time). The generation probability determines whether to generate a word from the vocabulary by sampling from P voc ( w | ) , or copying a word from the corresponding agent's input paragraph x a by sampling from its attention distribution l ta . This produces an extended vocabulary that includes words in the document that are considered out-of-vocabulary (OOV). A probability distribution over the extended vocabulary is computed for each agent: P a ( w t | ) = p ta P voc ( w t | ) + (1  p ta ) u ta,w (15) where u ta,w is the sum of the attention for all instances where w appears in the source document. The final distribution over the extended vocabulary, from which we sample, is obtained by weighting each agent by their corresponding agent attention values g ta : P ( w t | s t , w t  1 ) = P a g ta P a ( w t | ) (16) In contrast to a single-agent baseline (See et al., 2017), our model allows each agent to vote for different OOV words at time t (Equation (16)). In such a case, only the word that is relevant to the generated summary up to time t is collaboratively voted as a result of agent attention probability g ta . To train the deep communicating agents, we use a mixed training objective that jointly optimizes multiple losses, which we describe below. MLE Our baseline multi-agent model uses maximum likelihood training for sequence generation. Given y  = { y  1 , y  2 ,..., y  T } as the ground-truth output sequence (human summary word sequences) for a given input document d , we minimize the negative log-likelihood of the target word sequence: LMLE =  P Nt =1 log p ( y  t | y  1 . . . y  t  1 , d ) (17) Semantic Cohesion To encourage sentences in the summary to be informative without repetition, we include a semantic cohesion loss to integrate sentence-level semantics into the learning objective. As the decoder generates the output word sequence { y 1 , y 2 . . . y T } , it keeps track of the end of sentence delimiter token (.') indices. The hidden state vectors at the end of each sentence s 0 q , q =1 . . . Q , where s 0 q { s t : y t =  ', 1  t  T } , are used to compute the cosine similarity between two consecutively generated sentences. To minimize the similarity between end-of-sentence hidden states we define a semantic cohesion loss: LSEM = P Qq =2 cos( s 0 q , s 0 q  1 ) (18) 1665 The final training objective is then: LMLE-SEM = LMLE + L SEM (19) where  is a tunable hyperparameter. Reinforcement Learning (RL) Loss Policy gradient methods can directly optimize discrete target evaluation metrics such as ROUGE that are non-differentiable (Paulus et al., 2018; Jaques et al., 2017; Pasunuru and Bansal, 2017; Wu et al., 2016). At each time step, the word generated by the model can be viewed as an action taken by an RL agent. Once the full sequence  y is generated, it is compared against the ground truth sequence y  to compute the reward r ( y ) . Our model learns using a self-critical training approach (Rennie et al., 2016), which learns by exploring new sequences and comparing them to the best greedily decoded sequence. For each training example d , two output sequences are generated:  y , which is sampled from the probability distribution at each time step, p ( y t |  y 1 . . .  y t  1 , d ) , and  y , the baseline output, which is greedily generated by argmax decoding from p ( y t |  y 1 . . .  y t  1 , d ) . The training objective is then to minimize: LRL = ( r ( y )  r ( y )) P Nt =1 log p ( y t |  y 1 . . .  y t  1 , d ) (20) This loss ensures that, with better exploration, the model learns to generate sequences  y that receive higher rewards compared to the baseline  y , increasing overall reward expectation of the model. Mixed Loss While training with only MLE loss will learn a better language model, this may not guarantee better results on global performance measures. Similarly, optimizing with only RL loss may increase the reward gathered at the expense of diminished readability and fluency of the generated summary (Paulus et al., 2018). A combination of the two objectives can yield improved task-specific scores while maintaining fluency: LMIXED = L RL + (1   ) LMLE (21) where  is a tunable hyperparameter used to bal-ance the two objective functions. We pre-train our models with MLE loss, and then switch to the mixed loss. We can also add the semantic cohesion loss term: LMIXED-SEM = L RL +(1   ) LMLE-SEM to analyze its impact in RL training. Intermediate Rewards We introduce sentence-based rewards as opposed to end of summary rewards, using differential ROUGE metrics, to promote generating diverse sentences. Rather than rewarding sentences based on the scores obtained at the end of the generated summary, we compute incremental rouge scores of a generated sentence  o q : r ( o q ) = r ([ o 1 , . . .  o q ])  r ([ o 1 , . . .  o q  1 ]) (22) Sentences are rewarded for the increase in ROUGE they contribute to the full sequence, ensuring that the current sentence contributed novel information to the overall summary. Datasets We conducted experiments on two summarization datasets: CNN/DailyMail (Nallapati et al., 2017; Hermann et al., 2015) and New York Times (NYT) (Sandhaus, 2008). We replicate the preprocessing steps of Paulus et al. (2018) to obtain the same data splits, except that we do not anonymize named entities. For our DCA models, we initialize the number of agents before training, and partition the document among the agents (i.e., three agent  three paragraphs). Additional details can be found in Appendix A.1. Training Details During training and testing we truncate the article to 800 tokens and limit the length of the summary to 100 tokens for training and 110 tokens at test time. We distribute the truncated articles among agents for multi-agent models, preserving the paragraph and sentences as possible. For both datasets, we limit the input and output vocabulary size to the 50,000 most frequent tokens in the training set. We train with up to two contextual layers in all the DCA models as more layers did not provide additional performance gains. We fix  = 0 . 97 for the RL term in Equation (21) and  = 0 . 1 for the SEM term in MLE and MIXED training. Additional details are provided in Appendix A.2. Evaluation We evaluate our system using ROUGE-1 (unigram recall), ROUGE-2 (bigram recall) and ROUGE-L (longest common se-quence). 1 We select the MLE models with the lowest negative log-likelihood and the MLE+RL models with the highest ROUGE-L scores on a sample of validation data to evaluate on the test 1 We use pyrouge (pypi.python.org/pypi/pyrouge/0.1.3). set. At test time, we use beam search of width 5 on all our models to generate final predictions. Baselines We compare our DCA models against previously published models: SummaRuNNer (Nallapati et al., 2017), a graph-based attentional neural model (Tan et al., 2017) an RNN-based extractive summarizer that combines abstractive features during training; Pointer-networks with and without coverage (See et al., 2017), RL-based training for summarization with intra-decoder attention (Paulus et al., 2018)), and Controllable Abstractive Summarization (Fan et al., 2017) which allows users to define attributes of generated summaries and also uses a copy mechanism for source entities and decoder attention to reduce repetition. Ablations We investigate each new component of our model with a different ablation, producing seven different models. Our first three ablations are: a single-agent model with the same local encoder, context encoder, and pointer network architectures as the DCA encoders trained with MLE loss ( m1 ); the same model trained with additional semantic cohesion SEM loss ( m2 ), and the same model as the ( m1 ) but trained with a mixed loss and end-of-summary rewards ( m3 ). The rest of our models use 3 agents and incrementally add one component. First, we add the semantic cohesion loss ( m4 ). Then, we add multi-agent pointer networks ( mpgen ) and agent communication ( m5 ). Finally, we add contextual agent attention (caa) ( m6 ), and train with the mixed MLE+RL+SEM loss ( m7 ). All DCA models use pointer networks. We show our results on the CNN/DailyMail and NYT datasets in Table 1 and 2 respectively. Overall, our ( m6 ) and ( m7 ) models with multiagent encoders, pointer generation, and communication are the strongest models on ROUGE-1 and ROUGE-2. While weaker on ROUGE-L than the RL model from Paulus et al. (2018), the human evaluations in that work showed that their model received lower readability and relevance scores than a model trained with MLE, indicating the additional boost in ROUGE-L was not correlated with summary quality. This result can also account for our best models being more abstractive. Our models use mixed loss not just to op-1667 timize for sentence level structure similarity with the reference summary (to get higher ROUGE as reward), but also to learn parameters to improve semantic coherence, promoting higher abstraction (see Table 4 and Appendix B for generated summary examples). Model ROUGE-1 ROUGE-2 ROUGE-L 2-agent 40.94 19.16 37.54 3-agent 41.69 19.47 37.92 5-agent 40.99 19.02 38.21 Table 3: Comparison of multi-agent models varying the number of agents using ROUGE results of model (m7) from Table 1 on CNN/Daily Maily Dataset. Single vs. Multi-Agents All multi-agent models show improvements over the single agent baselines. On the CNN/DailyMail dataset, compared to MLE published baselines, we improve across all ROUGE scores. We found that the 3-agent models generally outperformed both 2and 5-agent models (see Table 3). This is in part because we truncate documents before training and the larger number of agents might be more effi-cient for multi-document summarization. Independent vs. Communicating Agents When trained on multiple agents with no communication ( m4 ), the performance of our DCA models is similar to the single agent baselines ( m1 ) and ( m3 ). With communication, the biggest jump in ROUGE is seen on the CNN/DailyMail data, indicating that the encoders can better identify the key facts in the input, thereby avoiding unnecessary details. Contextual Agent Attention ( caa ) Compared to the model with no contextualized agent attention ( m5 ), the ( m6 ) model yields better ROUGE scores. The stability provided by the caa helps the decoder avoid frequent switches between agents that would dilute the topical signal captured by each encoder. Repetition Penalty As neurally generated summaries can be redundant, we introduced the semantic cohesion penalty and incremental rewards for RL to generate semantically diverse summaries. Our baseline model optimized together with SEM loss (m2) improves on all ROUGE scores over the baseline (m1) . Similarly, our model trained with reinforcement learning uses sentence based intermediate rewards, which also improves ROUGE scores across both datasets. We perform human evaluations to establish that our model's ROUGE improvements are correlated with human judgments. We measure the communicative multi-agent network with contextual agent attention in comparison to a single-agent network with no communication. We use the following as evaluation criteria for generated summaries: (1) non-redundancy , fewer of the same ideas are repeated, (2) coherence , ideas are expressed clearly; (3) focus , the main ideas of the document are shared while avoiding superfluous details, and (4) overall , the summary effectively communicates the article's content. The focus and non-redundancy dimensions help quantify the impact of multi-agent communication in our model, while coherence helps to evaluate the impact of the reward based learning and repetition penalty of the proposed models. Evaluation Procedure We randomly selected 100 samples from the CNN/DailyMail test set and use workers from Amazon Mechanical Turk as judges to evaluate them on the four criteria defined above. Judges are shown the original document, the ground truth summary, and two model summaries and are asked to evaluate each summary on the four criteria using a Likert scale from 1 (worst) to 5 (best). The ground truth and model summaries are presented to the judges in random order. Each summary is rated by 5 judges and the results are averaged across all examples and judges. We also performed a head-to-head evaluation (more common in DUC style evaluations) and randomly show two model generated summaries. We ask the human annotators to rate each summary on the same metrics as before without seeing the source document or ground truth summaries. Results Human evaluators significantly prefer summaries generated by the communicating encoders. In the rating task, evaluators preferred the multi-agent summaries to the single-agent cases for all metrics. In the head-to-head evaluation, humans consistently preferred the DCA summaries to those generated by a single agent. In both the head-to-head and the rating evaluation, the largest improvement for the DCA model was on the focus question, indicating that the model learns to generate summaries with more pertinent details by capturing salient information from later portions of the document. flo dron & other hair collection . She was still commanding 1,000 a day for her work. Table 4: Comparison of a human summary to best singleand multi-agent model summaries, (m3) and (m7) from CNN/DailyMail dataset. Although single-agent model generates a coherent summary, it is less focused and contains more unnecessary details ( highlighed red ) and misses keys facts that the multi-agent model successfully captures ( bolded ). overall 102 158 40 3.558 3.682  Table 5: Head-to-Head and score-based comparison of human evaluations on random subset of CNN/DM dataset. SA=single, MA=multi-agent. indicates statistical significance at p < 0 . 001 for focus and p < 0 . 03 for the overall. To investigate how much the multi-agent models discover salient concepts in comparison to single agent models, we analyze ROUGE-L scores based on the average attention received by each agent. We compute the average attention received by each agent per decoding time step for every generated summary in the CNN/Daily Mail test corpus, bin the document-summary pairs by the attention received by each agent, and average the ROUGE-L scores for the summaries in each bin. Figure 4 outlines two interesting results. First, summaries generated with a more distributed attention over the agents yield higher ROUGE-L scores, indicating that attending to multiple areas of the document allows the discovery of salient concepts in the later sections of the text. Second, if we use the same bins and generate summaries for the documents in each bin using the single-agent model, the average ROUGE-L scores for the single-agent summaries are lower than for the cor-70-60% 60-50% 50-40% 40-30% 30-20% 20-0% Multi Single Multi Agent #1 vs Single Agent 70-60% 60-50% 50-40% 40-30% 30-20% 20-0% Multi Single Multi Agent #2 vs Single Agent 70-60% 60-50% 50-40% 40-30% 30-20% 20-0% Attention received by Agent Multi Single Multi Agent #3 vs Single Agent 0.330.340.350.36 0.290.310.33 0.36 0.10 0.20 0.300.36 Figure 4: The average ROUGE-L scores for summaries that are binned by each agent's average attention when generating the summary (see Section 5.2). responding multi-agent summaries, indicating that even in cases where one agent dominates the attention, communication between agents allows the model to generate more focused summaries. Qualitatively, we see this effect in Table 4, where we compare the human generated summaries against our best single agent model ( m3 ) and our best multi-agent model ( m7 ). Model ( m3 ) generates good summaries but does not capture all the facts in the human summary, while ( m7 ) is able to include all the facts with few extra details, generating more relevant and diverse summaries. Several recent works investigate attention mechanisms for encoder-decoder models to sharpen the context that the decoder should focus on within the input encoding (Luong et al., 2015; Vinyals et al., 2015b; Bahdanau et al., 2015). For example, Lu-ong et al. (2015) proposes global and local attention networks for machine translation, while others investigate hierarchical attention networks for document classification (Yang et al., 2016), sentiment classification (Chen et al., 2016), and dialog response selection (Zhou et al., 2016). Attention mechanisms have shown to be crucial for summarization as well (Rush et al., 2015; Zeng et al., 2016; Nallapati et al., 2017), and pointer networks (Vinyals et al., 2015a), in particular, help address redundancy and saliency in generated summaries (Cheng and Lapata, 2016; See et al., 2017; Paulus et al., 2018; Fan et al., 2017). While we share the same motivation as these works, our work uniquely presents an approach based on CommNet, the deep communicating agent framework (Sukhbaatar et al., 2016). Compared to prior multi-agent works on logic puzzles (Foerster et al., 2017), language learning (Lazaridou et al., 2016; Mordatch and Abbeel, 2017) and starcraft games (Vinyals et al., 2017), we present the first study in using this framework for long text generation. Finally, our model is related to prior works that address repetitions in generating long text. See et al. (2017) introduce a post-trained coverage network to penalize repeated attentions over the same regions in the input, while Paulus et al. (2018) use intra-decoder attention to punish generating the same words. In contrast, we propose a new semantic coherence loss and intermediate sentence-based rewards for reinforcement learning to discourage semantically similar generations (  3). We investigated the problem of encoding long text to generate abstractive summaries and demonstrated that the use of deep communicating agents can improve summarization by both automatic and manual evaluation. Analysis demonstrates that this improvement is due to the improved ability of covering all and only salient concepts and maintaining semantic coherence in summaries.
method abstain abstain abstain method abstain abstain abstain objective abstain abstain abstain abstain abstain objective method abstain other abstain abstain abstain abstain abstain method abstain result abstain abstain abstain method abstain abstain abstain other abstain other abstain abstain abstain abstain abstain other method abstain abstain abstain abstain abstain abstain abstain abstain other abstain abstain abstain other method other method other abstain abstain abstain other abstain abstain method other abstain abstain abstain abstain abstain abstain abstain other other abstain abstain abstain method method method other method method method abstain method method method method method abstain abstain abstain method method abstain method method method method method method method method abstain result abstain abstain result result abstain abstain result result abstain abstain abstain abstain abstain abstain result result abstain abstain abstain abstain abstain abstain abstain abstain result result abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain abstain result abstain result abstain other other other other abstain abstain method other objective objective abstain