Talos Targets Disinformation with Fake News Challenge Victory

2017-06-20T10:22:00
ID TALOSBLOG:643725264E0C387D8FC16BCDFEEC02B7
Type talosblog
Reporter noreply@blogger.com (William Largent)
Modified 2017-06-21T12:43:57

Description

This post was authored by <a href="https://www.linkedin.com/in/seanrichardbaird/" target="_blank">Sean Baird</a> with contributions by Doug Sibley and <a href="https://www.linkedin.com/in/yuxipanucla/" target="_blank">Yuxi Pan</a><br /><br /><h2>Executive Summary</h2><br />For the past several months, the problem of “fake news” has been abuzz in news headlines, tweets, and social media posts across the web. With historical roots in information warfare and disinformation, “fake news” is a different kind of cyber-threat affecting people all around the globe. Using advanced machine learning and artificial intelligence technology, Talos researchers set their sights on this different kind of cyber-threat and beat out over 80 registered teams worldwide to claim first place in the <a href="http://www.fakenewschallenge.org/" target="_blank">Fake News Challenge</a>.<br /><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://1.bp.blogspot.com/-fXzLj0mZDLs/WUlByfuNujI/AAAAAAAAAPA/RpwB6P67lCwNkGBhuEeCMuqvpD0G5kRGACLcBGAs/s1600/TalosInTheNews1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="627" data-original-width="1200" height="334" src="https://1.bp.blogspot.com/-fXzLj0mZDLs/WUlByfuNujI/AAAAAAAAAPA/RpwB6P67lCwNkGBhuEeCMuqvpD0G5kRGACLcBGAs/s640/TalosInTheNews1.png" width="640" /></a></div><br /><h2><a name='more'></a>Context</h2><br /><h4>Background</h4><br />While there has been significant media coverage regarding fake news in the recent months, the modern fake news problem is rooted in a long history of information operations and disinformation campaigns.<br /><br />In a very in-depth <a href="https://fbnewsroomus.files.wordpress.com/2017/04/facebook-and-information-operations-v1.pdf" target="_blank">paper</a> about the topic, Facebook defines information operations “[...] as actions taken by organized actors...to distort domestic or foreign political sentiment, most frequently to achieve a strategic and/or geopolitical outcome [...]” and classifies “false news” as a useful tool in the information operations toolkit.  The paper specifies that “false news” is  “[...] news articles that purport to be factual, but which contain intentional misstatements of fact with the intention to arouse passions, attract viewership, or deceive.”<br /><br />Alternately, the <a href="https://www.wired.com/story/fake-news-challenge-artificial-intelligence/" target="_blank">Wired article announcing the victory</a> describes fake news in a simpler manner as “[...] made-up news stories created to convert social media shares into page views, ad dollars, and perhaps even political traction.”<br /><br />Clearly, this is a difficult problem to solve in cyberspace, especially in a world where technology and social media can help amplify these stories to a much broader audience.  This prompted several researchers in academia and industry to create the <a href="http://www.fakenewschallenge.org/" target="_blank">Fake News Challenge (FNC</a>).  The self described goal of the FNC is to “[...] address the problem of fake news by organizing a competition to foster development of tools to help human fact checkers identify hoaxes and deliberate misinformation in news stories.” <br /><br />The first iteration of the challenge (FNC-1), which lasted from December 1, 2016 until June 2, 2017 focused solely on stance detection, a crucial first step in helping to detect fake news.<br /><br /><h4>FNC-1: Stance Detection</h4><br />While actual truth-labeling is a hefty task, rife with political and technical issues, stance detection is a potential first step toward a more robust solution.  <a href="https://twitter.com/deanpomerleau" target="_blank">Dean Pomerleau</a>, one of the organizers of the challenge, explained in a <a href="http://mediashift.org/2017/05/fake-news-challenge-puts-ai-test/" target="_blank">Mediashift interview</a> that “[...] the goal [of stance detection] is to determine which has the best argument, not just which is the most popular or widely cited or read, the way a search engine does.”<br /><br />In the context of the FNC, stance detection can be defined as labeling the relationship an article body has to its headline/claim -- specifically, whether the body agrees with, disagrees with, or discusses the headline/claim or whether the body is completely unrelated.  Thus, the four possible outputs of a stance detection system should be “agree,” “disagree,” “discuss,” and “unrelated.”  An example of how stance detection could be implemented in a broader fake news detection system is available in the figure below:<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-zhHTanVkyPY/WUlCGou3mmI/AAAAAAAAAPE/3WUSmliCWPQgv3yEi4Q2PUWhrBDrsngmgCLcBGAs/s1600/news_outets_dark2.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="878" data-original-width="1600" height="350" src="https://2.bp.blogspot.com/-zhHTanVkyPY/WUlCGou3mmI/AAAAAAAAAPE/3WUSmliCWPQgv3yEi4Q2PUWhrBDrsngmgCLcBGAs/s640/news_outets_dark2.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Stance detection’s role in fake news detection</span></td></tr></tbody></table><br /><br />Always interested in a challenge, the FNC piqued the interest of Talos researchers who chose the team name “SOLAT IN THE SWEN” as a clever anagram of their true affiliation.  Immediately, these researchers began development work on various models and solutions in their spare time -- models which would eventually net them a first place victory.<br /><br /><div class="separator" style="clear: both; text-align: center;"></div><div class="separator" style="clear: both; text-align: center;"></div><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://3.bp.blogspot.com/-hyzMJ3b0Sek/WUlZGUPPh6I/AAAAAAAAAQM/KwYQmxOjlg8xNTIsYZBrZD3mClaONm-GQCLcBGAs/s1600/talos-in-the-news_blog-bg3.gif" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="150" data-original-width="830" height="114" src="https://3.bp.blogspot.com/-hyzMJ3b0Sek/WUlZGUPPh6I/AAAAAAAAAQM/KwYQmxOjlg8xNTIsYZBrZD3mClaONm-GQCLcBGAs/s640/talos-in-the-news_blog-bg3.gif" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small;">SOLAT IN THE SWEN - Talos’s covert team name</span></td></tr></tbody></table><br /><div class="separator" style="clear: both; text-align: center;"></div><br /><h2>Our Solution</h2><br />One of the goals of this challenge was “[...] to explore how artificial intelligence technologies, particularly machine learning and natural language processing, might be leveraged to combat the fake news problem [...].” Because of this, team SOLAT IN THE SWEN decided to test how various cutting-edge machine learning techniques performed.  After successfully implementing several different models, the team found that their results were best when combining multiple models in an ensemble.  The team’s final submission was an ensemble based on an 50/50 weighted average between gradient-boosted decision trees and a deep convolutional neural network.  The full code can be found on the <a href="https://github.com/Cisco-Talos/fnc-1/" target="_blank">Talos GitHub</a>, open sourced with an Apache 2.0 license.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-W6Xph2kiuNo/WUlCa4y9C9I/AAAAAAAAAPM/LIHm718lW6YnPS3VGNzPZy3Lp5Ycr7jMQCLcBGAs/s1600/final_prediction_dark4.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1021" data-original-width="1194" height="341" src="https://2.bp.blogspot.com/-W6Xph2kiuNo/WUlCa4y9C9I/AAAAAAAAAPM/LIHm718lW6YnPS3VGNzPZy3Lp5Ycr7jMQCLcBGAs/s400/final_prediction_dark4.png" width="400" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Our models were ensembled with a 50/50 weighted average</span></td></tr></tbody></table><br /><br /><h4>Deep Learning Approach</h4><br />The first model used by the team applies several different neural networks used in deep learning.  This model applies a one-dimensional <a href="https://en.wikipedia.org/wiki/Convolution" target="_blank">convolutional</a> neural net (<a href="https://en.wikipedia.org/wiki/Convolutional_neural_network" target="_blank">CNN</a>) on the headline and body text, represented at the word level using the Google News pretrained <a href="https://code.google.com/archive/p/word2vec/" target="_blank">vectors</a>. CNNs allow for efficient, effective parallel computation while performing The output of this CNN is then sent to an multi-layer perceptron (<a href="https://en.wikipedia.org/wiki/Multilayer_perceptron" target="_blank">MLP</a>) with 4-class output -- “agree,” “disagree,” “discuss,” and “unrelated” -- and trained end-to-end. The model was regularized using dropout (p=.5) in all convolutional layers. All hyperparameters of this model were set to sensible defaults, however, they were not further evaluated to find better choices.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-DkBKbpVM4w4/WUlCiFEVKTI/AAAAAAAAAPQ/NORk5w4GbS01iSLD1sCcrIlifuGNwvnUgCEwYBhgL/s1600/deep_model_dark5.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1440" height="640" src="https://1.bp.blogspot.com/-DkBKbpVM4w4/WUlCiFEVKTI/AAAAAAAAAPQ/NORk5w4GbS01iSLD1sCcrIlifuGNwvnUgCEwYBhgL/s640/deep_model_dark5.png" width="574" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Diagram outlining our deep learning model</span></td></tr></tbody></table><br /><br />The architecture of this model was selected due to its ease of implementation and fast computation since we can rely on convolutions instead of recurrence. Judging from the relative strength of this model convolutions seem to be able to capture a wide variety of topics; however, the model is limited in that it only gets to observe the text once. A potential extension to this model would be to include some sort of attention mechanism with recurrence after the convolutions which would allow the model query specific aspects of the headline/body after receiving a general summary from the CNN.<br /><br /><h4>Gradient-Boosted Decision Trees (GBDT) Approach</h4><br />The other model employed in the ensemble is a Gradient-Boosted Decision Trees (<a href="https://en.wikipedia.org/wiki/Gradient_boosting" target="_blank">GBDT</a>) model. This model inputs few text-based features derived from the headline and body of an article, which are then fed into Gradient Boosted Trees to predict the relation between the headline and the body.<br /><br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://1.bp.blogspot.com/-hplmWSR1p-w/WUlDBO30j6I/AAAAAAAAAPU/nKRsYp6SjJM81msMzsn3kBmiGpf7xJ7GwCLcBGAs/s1600/tree_model_dark6.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1361" data-original-width="1600" height="544" src="https://1.bp.blogspot.com/-hplmWSR1p-w/WUlDBO30j6I/AAAAAAAAAPU/nKRsYp6SjJM81msMzsn3kBmiGpf7xJ7GwCLcBGAs/s640/tree_model_dark6.png" width="640" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Diagram outlining our decision tree model</span></td></tr></tbody></table><br /><br />After exploring the dataset, a few features that are likely to be informative of headline/body relationships became obvious -- for example:<br /><br /><ul><li>The number overlapping words between the headline and body text;</li><li>Similarities measured between the word count, 2-grams and 3-grams; and</li><li>Similarities measured after transforming these counts with term frequency-inverse document frequency (<a href="https://en.wikipedia.org/wiki/Tf%E2%80%93idf" target="_blank">TF-IDF</a>) weighting and Singular Value Decomposition (<a href="https://en.wikipedia.org/wiki/Singular_value_decomposition" target="_blank">SVD</a>).</li></ul><br />Using these features, it is not necessary to use a powerful and expressive model to learn the complex mapping from these features to the stance label.<br /><br />For this, Gradient-Boosted Decision Trees were chosen because of the model’s robustness with regard to the different scales of our feature vectors.  Specifically, no normalization is needed and it can be regularized in several different ways to avoid overfitting. Furthermore, <a href="https://github.com/dmlc/xgboost" target="_blank">XGBoost</a> is a very efficient, open-source implementation that was easily applied to the handcrafted features.<br /><br /><div style="text-align: right;"></div><h4>Real World Exercise</h4><br />Some readers may be wondering what the output of our system looks like with real-world data.  As a fun exercise, we ran the contents of a first draft of this blog post through our system with various headlines -- the real headline of the post, and a few others we made up for the sake of this activity.  These headlines are:<br /><br /><ul><li>Talos Targets Disinformation with Fake News Challenge Victory (the real headline);</li><li>Team Loses Fake News Challenge;</li><li>Research Shows Fake News is Unsolvable; and</li><li>Giraffe Livestream Continues to Fourth Week with No Action.</li></ul><br />We were excited to see whether or not our models would be able to correctly detect the stance of our blog post with each of these headlines.  The results can be found in the figure below:<br /><table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody><tr><td style="text-align: center;"><a href="https://2.bp.blogspot.com/-b1qO5M633HQ/WUlDMNU285I/AAAAAAAAAPc/FFgeo_8xnGgeEuIC0ghklTIwdXCOdWqrACLcBGAs/s1600/blog_titles_dark7.png" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" data-original-height="1600" data-original-width="1368" height="640" src="https://2.bp.blogspot.com/-b1qO5M633HQ/WUlDMNU285I/AAAAAAAAAPc/FFgeo_8xnGgeEuIC0ghklTIwdXCOdWqrACLcBGAs/s640/blog_titles_dark7.png" width="546" /></a></td></tr><tr><td class="tr-caption" style="text-align: center;"><span style="font-size: small; text-align: start;">Results of this blog post and various test headlines being evaluated by our system</span></td></tr></tbody></table><br />As shown above, while neither the deep learning approach nor the GBDT approach had perfect accuracy, the combination of these two approaches with a 50/50 weighting detected the correct stance for each headline.<br /><br /><h2>Conclusion</h2><br />In the end, these innovative model implementations put <a href="http://www.fakenewschallenge.org/#fnc1results" target="_blank">Talos on top of the global leaderboard</a>.  While more research needs to be done, Talos’s award-winning research on stance detection is an important first step toward tackling the problem of fake news and disinformation in the 21st century. <br /><br />As the Fake News Challenge moves forward and the natural language processing community continues to churn out cutting-edge research, Talos remains committed to continually forcing the bad guys to innovate.<br /><div><br /></div><div class="feedflare"> <a href="http://feeds.feedburner.com/~ff/feedburner/Talos?a=FtoD2o9EqnI:eeA9q71YvE4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/feedburner/Talos?d=yIl2AUoC8zA" border="0"></img></a> </div><img src="http://feeds.feedburner.com/~r/feedburner/Talos/~4/FtoD2o9EqnI" height="1" width="1" alt=""/>