Tinder PygmalionRead on AIxDesign
Is Tinder using anti-user algorithms to make me use their app more than I'd like to?
Probably and I somewhat proved it with machine learning and the (non)scientific method.
Background & Introduction ///
As of writing this, I am 2 years into using Tinder and since my first swipes, I've been convinced that Tinder has loaded the deck against me. I promise I'm not salty about not getting enough matches, I just feel I could be getting these matches with less swiping. Currently, I average 10 left (rejection) to 1 right swipe (hopeful acceptance), and even though I would say I don't have an exact "type". A definite side effect of an app that shows you the world and values quantity over quality, is that you develop some conscious and unconscious bias on which way you're swiping. Whether that be profiles containing sporty photos, that I fear will make me feel lazy or bios used only to plug Instagram profiles, there are certain things I always swipe left on. All this may sound shallow to non-Tinder users, but online daters will all agree this is the reality of dating in 2020.
So why is it that in an age where Spotify can accurately make playlists based on my music taste and Youtube feeds me video after video I want to see, Tinder only shows me profiles I want to swipe right on 10% of the time? Especially as I believe I have pretty clear swiping patterns. Is Tinder's algorithm really that bad or am I more random and spontaneous than I thought, or am I weirdly picky and hard to please? My theory is that Tinder knows who I am likely to swipe right on and rations out those profiles on my feed, in an attempt to gamify the experience, keep me swiping for longer and addict me to their app. A tactic akin to slot machines and video game loot boxes called "variable rate reinforcement."
To test this hypothesis, I decided to test if there was a distinct pattern to my "Matches" compared to my "Left Swipes". To work out these patterns, I trained various Machine Learning models with data from both my "Matches" and random "Left Swipes". I then tested the generated results (Pictures, Bios, Music and full profile) made by these models side by side, choosing my favourite of the two options presented each time. If I choose the result generated by the model trained on my "Matches" more often, then it would prove my match preferences were learnable by an AI and hence Tinder could more consistently fill my feed with people I would like to swipe right on.
Profile pictures are a key part of the Tinder experience, it's the first thing you see and I would be lying if I didn't say it's probably the most important aspect of a profile. So to generate fake profile pictures I trained a Stylegan2 Model on RunwayML with 212 images of the faces of my "Left Swipes" and a separate model on 212 "Match" faces, both for 5000 steps.
Due to my small data set the resulting generated images were very abstract, to put it mildly. However, going into the test I was pretty confident I would be easily able to discern which generated images were based on "The Perfect Match" model, based on the colour, composition and frankensteined facial features.
This was not the case, during the test I only managed to pick "The Perfect Match" generated picture 5 out of 10 times. Although 2 of my incorrect guesses were marginal decisions, the results were not promising for my hypothesis.
Tool used: https://runwayml.com/
Bios are a very variable part of a Tinder profile, with some users only writing their height, others writing a thesis on their perfect partner and a good proportion of users having no bio at all. For me, they are an important part of my swiping decision but no bio is definitely better than a bad bio. Hence out of my 212 matches, only 116 had bios. I also found 116 bios from random people I would swipe left on normally. These were then used to train the Tensor flow-based Textgenrnn word-level model for 100 steps.
Again the generated results were very quite abstract but definitely recognisable as Tinder bios even if they made no sense. During the test, I managed to pick "The Perfect Match" generated bio 7 out of 10 times. However, Of those 7, 2 were easy to spot because I clearly recognised some of the generated text from the data sets, so the real result was 5 out of 8.
Tool used: https://colab.research.google.com/
The final piece of Tinder profile is music, users have the option to add an Anthem song, as well as a feed of their current most listened to artists. For my test, I focused solely on the user's Anthems as these are more common and would give me cleaner data points. For me, these anthems are quite important and help to add detail to my picture of someone.
So through brute force, I compiled a playlist on Spotify of the 99 songs from my "Matches" and 99 others from random "Left Swipes". I then used Spotify's similar playlist feature via Skiley to generate new playlists. I was worried that the diverse data sets used would lead to very random playlists but the resulting playlist felt very close to the inputted data.
During the test, I was shown the song name, artist and album artwork but not allowed to listen to the song because the majority of the time this is how I engage with Tinder profile Anthems. As a result, I managed to pick "The Perfect Match" generated song 6 out of 10 times.
Tool used: https://skiley.net/
Full Profile & Conclusion ///
For the last part of the test, I compared full profiles of generated photos, bio and anthems. This was most true to life of the test, as the combination of all the different points gave me a really clear picture of a profile. As such, I managed to pick "The Perfect Match" generated profile 8 out of 10 times. However, because of the Bios, I again clearly recognised 2 of the generated bios from the data sets, so the real result was 6 out of 8.
In the end, I managed to correctly pick "The Perfect Match" generated profile 61.1% of the time. This was all done with very crude models (except Spotify) and tiny data sets. Whereas Tinder would have access to more sophisticated models, a lot more data and smarter algorithms. Hence I would tentatively say my hypothesis is correct. If Tinder wanted to, they could learn my preferences and show me profiles I would match with at a much more consistent rate. There are many reasons why I think they choose not to implement this kind of algorithm, maybe it would ruin the fun of the app or maybe people wouldn't opt for subscriptions plans if they found matches easily (the second one).
At the end of the day, I feel my results were quite obvious and entirely predictable. However, I feel that fact I was able to create this experiment and put Tinder on trial with no Machine Learning and very little coding experience, tells us of a new paradigm emerging. One where companies can longer hide behind or outright blame their algorithms for anti-user features or more importantly discrimination. People (Companies) make choices about what they want their algorithm to do, and now with new easy to use the software we can check they are making the right choices.
On a personal level, what I am taking away from this experiment is a greater understanding of Machine Learning but most importantly a deeper understanding and thus questioning of my conscious and unconscious biases.