WhatsApp fake news detection system

(Opposing misinformation through UX approach)


Literature Review


Problem


WhatsApp, owned by Facebook, is one of the most popular instant messaging apps globally, with over a billion people using it each month. It is widely used across Asia, Africa, Latin America, and Europe. But increasingly, WhatsApp has also been documented as a leading factor in propagation of fake news, responsible for lynching, political propaganda, and sectarian clashes. At the same time, because it is an end-to-end encrypted platform, WhatsApp cannot access or see the content being shared by its users and so there is a general view that there is very little it can do (Gupta and Taneja, 2018).


Challenge

Here the challenge is to build the fake news detection system without violating any of the WhatsApp policies (end to end encryption and privacy policies).


Forwarded” message option a failed attempt"

“Forwarded” message option a failed attempt WhatsApp has been adding some minor tweaks to its products to check the spread of fake news. In a beta release in 2017, WhatsApp began mentioning to users that a particular message has been forwarded multiple times. More recently, WhatsApp began labeling forwarded messages as “forwarded,” so that a recipient can recognize that the sender isn’t the original author of the message. In both cases, WhatsApp is likely cross-checking metadata to identify forwarded messages, for reasons expanded on below. Additionally, WhatsApp has limited its forwarding option to allow forwarding to only five chats at a time, and the company has removed the “quick forward” button next to media messages. However, none of these minor tweaks are enough in themselves. Since “forwards” constitute a significant proportion of messages that a WhatsApp user receives, simply adding information about whether a message is forwarded or not isn’t enough to differentiate fake news from genuine news for a receiver. While adding “friction” to the process of forwarding is good, a fake news message can still continue to travel on the network unchecked forever (Gupta and Taneja, 2018).


In summary, none of the measures taken by WhatsApp would eliminate the “fake” pieces of content from its network. Therefore, we propose one such approach here, which includes content moderation. Our premise is that a piece of misinformation that has gone viral merits removal after due fact checking rather than trying to slow down the forwarding capability of all media blindly on the platform.


Some important points to consider for our solution


First in an affidavit filed by the WhatsApp company in September 2016 the Delhi High Court the company suggests

“To improve performance and deliver media messages more efficiently, such as when many people are sharing a popular photo or video, WhatsApp may retain that content on its servers for a longer period of time.”

This means WhatsApp does retain popular files on its servers in order to deliver faster file transfers, resulting in better user experience and also save internet bandwidth of users (Gupta and Taneja, 2018).


Second, WhatsApp’s encryption security paper states that WhatsApp uniquely identifies each attachment with a cryptographic hash (a cryptographic text that is unique for each file) and whenever a downloaded attachment is being “forwarded,” WhatsApp checks if a file with the same cryptographic hash already exists on its server. In case the answer is yes, WhatsApp does not upload the file from the user’s phone to the server, and instead sends a copy of the file stored on its server directly to the final recipient. This implementation, while improving the user experience by improving the speed of the file transfer and saving Internet bandwidth of the end-user, also demonstrates that WhatsApp can point to specific files residing on its servers despite the end-to-end encryption. Hence, it has the capability to track a specific piece of content on its platform even if it does not know what is the actual content inside that message due to end-to-end encryption (Gupta and Taneja, 2018).


Third, WhatsApp’s own privacy policy suggests that it can read the metadata:

“WhatsApp may retain date and time stamp information associated with successfully delivered messages and the mobile phone numbers involved in the messages, as well as any other information which WhatsApp is legally compelled to collect.”


Lastly, WhatsApp changed its terms of service in August 2016 to say that it would be sharing phone number and metadata attributes such as last seen with Facebook.


In 2014, it (Facebook) bought WhatsApp, which would theoretically give it direct insight into who messages who. Facebook says it doesn’t currently use information from WhatsApp for People You May Know, though a close read of its privacy policy shows that it’s given itself the right to do so.”


It means even if the WhatsApp cannot read the contents of the message but still it can access the cryptographic hash of a message, the time it was sent and other details. Therefore WhatsApp has the ability to trace the journey of the message.


Proposed Solution


Server side


According to WhatsApp’s encryption security paper , WhatsApp uniquely identifies each attachment with a cryptographic hash and whenever a downloaded attachment is being “forwarded,” WhatsApp checks if a file with the same cryptographic hash already exists on its server. We call this cryptographic hash a blueprint which uniquely identifies each message or file on its server. This means that although WhatsApp can’t read the message but it can trace the life span of the message. Utilizing this feature we can implement a three different types of flag (fake, non-fake, don’t know) on server side to count the user response. If the user has marked the particular message as fake, based on the blueprint that identifies a message or file its fake flag counter will be incremented by 1 and if the user updates his/her response and changes it to non-fake then fake flag counter will be decremented by one and non-fake flag counter will be incremented by1. Similar rules can be applied to the non-fake and don’t know flag counter.



WhatsApp fake news detection system
WhatsApp fake news detection system

User Side


User identifies a particular piece of information as fake and mark it fake by selecting the message through long tap and clicking on the fake news icon. This action by the user will also increment the fake flag counter by 1 on the server side.



WhatsApp fake news detection system
WhatsApp fake news detection system

Why Popup model with three different responses?


Let’s consider a situation where instead of the popup model the user directly marks the piece of information as fake. The easiest way to do this to select the message and click on the fake information icon and no popup is shown to him. The system will directly color code his response to red in just two steps. Now the problem is what if the user by mistake marked the information as fake and want to change his response. One possible solution is to provide three different icons for three different responses but that will take a lot of top navigation space and the other option is to provide the drop down menu. Drop down menu will not be the good choice in this scenario for good user experience because of the way the application is designed. We can also see on the WhatsApp application when the user selects the message, the top navigation does not contain the three dot icon. One possible reason why WhatsApp has done this is that the drop down menu of the three dot icon does not contain any option that relates to the action that can be applied on the message and all the actions associated with message have been provided to the user through icons on the top navigation. Here we are adding one more action to the top navigation in order to collect the user response regarding a certain piece of information and therefore we preferred the popup model in comparison to the drop down menu.


Based on the user’s choice (yes, no, don’t know) three possible outputs are there differentiating in colors as shown below



WhatsApp fake news detection system
WhatsApp fake news detection system

Color choice


Three different colors has been chosen based on whether the user’s input is “yes”, “no” or “don’t know” which will immediately be reflected below the users selected message. Also this will help the user to immediately identify his previous response based on the color marking without any hassle and in case if he/she feels like the previous response was not good or wrong (validation) they can easily correct their mistake by updating their responses.


Red color: It is an emotionally intense color and is associated with fire and blood. It is widely used to indicate danger and brings text and images to foreground. Due to this reason we have color coded the fake response from the user as red.


Green color: It is the color of nature and is used to indicate safety as opposed to red. Therefore we have green color coded the non-fake user response.


Orange color: Orange is the color of fall and harvest. It represents encouragement and stimulation. Therefore we have used this color if the user marks any information as don’t know. We want to encourage him to try to validate the information.


Updating response

Let us consider a situation where a user has marked a message fake by mistake and he now wants correct his/her mistake. He can update his response by following these steps.

  1. Selecting the message again.

  2. Click on the fake news icon.

  3. Select the correct input.


WhatsApp fake news detection system
WhatsApp fake news detection system

User changes his response from “yes” to “no”


When the user changes his response from “yes” to “no” the fake flag counter will decrement by 1 and the non-fake flag counter will be incremented by 1 with no change in the don’t know flag counter.


Sharing Message rules:


One of the major question here is whether we should share the response of the user to the person he/ she is forwarding his/her message. Let’s say user A has marked a particular message as fake so it is coded in red color according to our system on the user side and he decides to share his message to his friend should we share the red color code to with his friend or if the user has marked a message as non-fake should we share the green color code along with the message to the recipient or if the user has marked his message as “don’t know” should we share the orange color code to the recipient. Well our idea here is to get as many response from the users as possible so if we share the sender’s response along with the message the recipient of the message might give biased response based on the sender’s input or may not give response at all or may not read the message. Therefore it will be good if instead of sharing the sender’s response along with message we will encourage the recipient through some text message so that the recipient share his response objectively as shown below based on his information. The below image shows the screen of recipient named Blue lorem to whom the user has shared his message.



WhatsApp fake news detection system
WhatsApp fake news detection system

sharing message rules


This text message approach will encourage the user to share his response objectively without being biased by the sender’s response. No matter what is the response of the sender (fake, non-fake, don’t know) the same text message with orange icon will be shared in all the three cases to the recipient. Now the recipient of the message can share his response by following the same procedure.

1. Selecting the message.

2. Click on the fake news icon.

3. Select your response.

No matter what is the response of the recipient his screen will be updated accordingly and if he decides to share this message with his friends then his friend will receive the same text message with orange icon in order to encourage them to share their response regarding the same message objectively based on their information.


Why flags?


We have been collecting the user’s response based on their knowledge base regarding a certain piece of information and updating it in three different flag counters. The important question is how we will determine whether a certain piece of information if fake or not. Using the numbers stored in the three different flag counters we will calculate the percentage of fake, non-fake, and don’t know responses out of the total number of responses obtained from the users.

% fake = (total value stored in fake flag counter / sum total of values stored in fake, non-fake, don’t know flag counters)

% non-fake = (total value stored in non-fake flag counter / sum total of values stored in fake, non-fake, don’t know flag counters)

% don’t know = (total value stored in don’t know flag counter / sum total of values stored in fake, non-fake, don’t know flag counters)

If the total percentage of fake responses exceed 60% we will then categorize that piece of information as fake else if total percentage of non-fake responses exceeds 60% we will categorize it as a non-fake news.


Questions and problematic scenarios


First major question is should be the threshold value of total number of responses in order to apply the above formulas in order to categorize a piece of information as fake or non-fake?


If we choose 100 as the threshold value of total number of responses it may happen that out f 100, 60 responses can determine it is fake and 30 as non-fake while rest 10 responses comes under don’t know category but what if the message keeps spreading and in next 100 responses 65 inputs determine it non-fake and 25 inputs comes under fake and rest 10 under don’t know category so by the calculation out of 200 responses obtained 95 inputs will be non-fake, 85 inputs will be fake and rest 20 will come under don’t know category. So the percentage of both the fake and non-fake flag counter will be less than 60%.


One approach that can solve this problem is if the percentage of fake input or non-fake input remains always greater than the 60% from going from first 100 to 200 responses and to 300 responses than we can be certain that a particular information is fake or non-fake.


Is 60% is the best value for considering any piece of information as fake or non-fake?

Should we include the value of don’t know flag counter for our calculation?


Thorough research should be done in order to determine what should be kept the threshold value of inputs , percentage to determine fake or non-fake content , whether to include value stored in don’t know flag counter for our calculation or not.


What can be done when we categorize a piece of information as Fake?


Last year, WhatsApp introduced a global forwarding cap that blocked message-forwarding after 20 persons. And in India, the limit was already lowered to just five forwards. Once the cap is reached, people would have to manually prepare the message again to be passed on (source). But the chances are here that the people may rewrite the same message again not knowing that the contents of the message are fake.


Our idea is not to block the message here once it has been categorized as fake but the idea here is to properly caution the user that a certain piece of information is fake so that the users themselves stop the sharing of fake content in any form be it rewriting the same message again or using the sharing option. Our system will be focused on informing the users properly about the content rather blocking without informing the users.


Once the information has been categorized as fake our system will send the following response to the recipient of the message through which the user will completely understand the content is fake.



WhatsApp fake news detection system
WhatsApp fake news detection system

Our system generated response when it determined a fake information (Recipient will receive the above message)


Here we have we have color coded (red) the forward message as well as our cautionary message. Red color forward message is done in order make the user to understand this forward message contains fake information. It will be the first caution to the user from system’s side. Next we have added the cautionary message below the message container to encourage the user to not share the information further. Now the choice is up to the user. We are here not strictly blocking the message but this approach will make the user to think carefully whether he or she should share this message further or not. In all the above images we can at the bottom of the message that the time of message cannot be in the same line with the message so we encourage the WhatsApp developers to put the time stamp along with the tick marks to the top right corner of the message container for making it more user friendly.


Limitations

  • Didn’t test our prototype.

  • Due to time constraints I took my own assumptions and did online research, I didn’t interview anyone to gather data related to our solution but before designing the solution I did face to face interview with few users to know their understanding of fake news.

Future Scope

  • Thorough research should be done in order to determine what should be kept the threshold value of inputs , percentage to determine fake or non-fake content , whether to include value stored in don’t know flag counter for our calculation or not.