In the age of personalized searches and algorithmic recommendation, the filter bubble is increasingly becoming a social and political problem. The term filter bubble, coined by Internet activist Eli Pariser, refers to a state of intellectual isolation as a result of a recommendation algorithm selectively guesses what content a user would like to see based on information about the user, such as location, past click-behavior and search history. In consequence, users become separated from information that disagrees with their viewpoints, effectively isolating them in their own cultural or ideological bubbles(To learn more about filter bubble, please refer to this link).

“Contrasting views also deserve to be recommended in such cases”. With this idea, we designed this clustering and recommendation system with completely different recommendation principles. In contrast to traditional recommendation algorithm which regards entertaining and engaging users as the first principle, Bubble Terminator would help users understand the position he/she stands in the big picture of a problem/topic and brings users a brand new perspective, aiming to encourage having deeper awareness of a problem and exchange of different ideologies.

What it does

  • Real-time analysis of a text input (twitters) about its political biases (could be extended to more dimensions in the future) and reflect the prediction result.
  • Display warning when a political bias is detected in the current twitter page

How we built it

There are two parts to this project:

Chrome extension

The chrome extension is written in Javascript, using libraries such as React and Ant Design. We use content script to read and make changes to a twitter page.

Backend server

This is where prediction of political leaning happens. Using Keras with Theano backend, we built a recurrent neural network that takes a tweet (or more generally a string) as input, then outputting a number between 0 and 1 indicating the political leaning of it. The 5-layer neural network, base on a paper by researchers from Lithium Technologies, is a LSTM with dropout. We use flask, a light-weight python web framework, to handle requests from the extension. The server is hosted on a AWS EC2 instance.

The extension and server communicates through HTTPS.

Challenges we ran into

First, of course, is to get the machine learning model up and running. Generally, we find that the model tent to predict sentences as a Democrat.

Second, is to build the extension. No one from our team had experience building a chrome extension from scratch before the hackathon, so we had done a lot of exploration and experiments in the past 24 hours. Also, chrome imposes strict checks on network requests that its extensions make: they must be over HTTPS and with a trusted host. It took us some time to figure out how to make a self-signed SSL certificate work in chrome. Later on, we obtained a trusted SSL certificate with a domain name.

Accomplishments that we're proud of

  • Building a chrome extension
  • Building a machine learning model and have it working.
  • Making an attempt to solve an important social problem; )

What we learned

  • Building a chrome extension with React
  • How to build a machine learning model with Keras
  • SSL certification request

What's next for BubbleTerminator

  • Introduce other classifiers, such as leaning liberal/conservative
  • Give recommendation of contents outside of the current filter bubble when biased information is detected.
  • Real-time analysis on a Twitter user’s political leaning.
  • Recommend contrasting views of a topic to users.
Share this project: