How do you actually become friends with someone? Is it a slow process of getting to know each other or an instant moment, when you just hit it off? Do we enjoy staying friends with people that have become part of our lives or sometimes, with distance, we just let them go?
I was Facebook-friends with this girl Claire when I was in college and we used to discuss sci-fi movies together. Though we’ve lost touch, I miss the friendship we had developed over a very specific topic of conversation — sci-fi movies.
As a part of my ongoing research to understand AI driven product design, I found that social psychology indeed, is a very interesting way of understanding the world. Ten people can read questions in the beginning and answer them very differently.
There is no exact algorithm as to how people make friends. It is effectively a function of the personalities of two people involved, and the time they spend together; the experiences they go through, together.
Today we live in the age of not only personalization, but a very aggressive, down-your-throat form of it.
Everywhere we go — from shopping on Amazon or browsing movies on Netflix, personalization is one of the key, magical components that great products use to give the best experience to their users.
I found that this derives from our own intricate need of being understood, to be talked to. We, human beings, are a very social species. At some point, one has to wonder, why don’t we understand personality psychology and use it to make apps that not only personalize, but also befriend?
It is only natural to wonder what kind of relationships do we have with our apps right now? And once our apps get smarter and talkative, what kind of relationship will we have with our AI bots in future?
While this is a very open ended philosophical question, let’s attempt to boil it down to a technical problem that we can solve. But for that, I had to ask myself something deeper.
When does software becomes a friend?
Remember Tamagotchis? They were a digital pet that you had with you at all times. The digital pet had its own hunger and happiness meters, as well as a life cycle.
They were designed in such a way that the user became emotionally invested in them. Tamagotchis are one of the best examples of people forming a relationship with what is essentially ones and zeroes. Software does have a precedent for friendship; it’s not like we haven’t tried to solve this problem before.
The reason I like science fiction movies maybe very different from why someone else likes sci-fi thrillers. Collaborative filtering sees a huge drawback when we want to generate recommendations that are accurate to a fault. But peer to peer recommendations?
Claire and I were both sci-fi fans and I was honestly more likely to watch a movie suggested by her than those suggested by Netflix today.
What did Claire get about my choices that mainstream personalization algorithms don’t? Well, as far as I can remember:
- We had discussed and debated many sci-fi movies for hours.
- She liked the Alien movies, I didn’t.
- I would even enjoy the softer class of sci-fi movies like Her and Limitless, she wouldn’t.
- We both liked superhero fiction. We both hated Fringe.
Looking back, I realize that we had already modelled our mutual preferences in the best neural network we have. Our brains.
The models that we prepare for each other might even be better than the ones we have for ourselves. That is why the power of suggestion works so well in peer to peer recommendations.
Your close friends do a better job at learning about you than you do yourself.
Learning by friendship
I thought about this problem for some time and came to a possible solution. One of the things word vectors do really well, is that they take natural language text and build a vector form of each word. You can in theory add together all the words in the corpus and generate a vector representation of the whole corpus.
Does it sound confusing? Well, let me try and explain with a really dumbed down explanation for word vectors.
- You have three words (attack, defend, assail) in your vocabulary and a lot of sentences with these three words (Attacking is like assailing. Attacking is opposite of defending. To not assail is to defend, etc).
- Now when we generate word vectors using this information, we can see that attack and assail would fall closer to each other while defend is further from them.
Word vectors are a very powerful way to do NLP with the help of neural nets. I can possibly build a personality test or even use something stupid like Myers-Briggs to get some natural language text of my own personality, or try to determine the same with the text messages and status updates that I have sent over the years on Facebook. Representing personality is the first known unknown in the problem.
And then, all I need is a similar vector representation of movies that the friendship algorithm can understand.
The second known unknown left here is the magical friendship function, itself.
What would friendship and understanding be in the eyes of an AI? Would it be a neural net trained on one person for all their personalization needs or a generic model for sci-fi movies that just accepts personality as user input?
To figure this out, we have to explore what is indeed friendship in our own eyes? Is it empathy or is it our need to to be understood, or both?
Since this was a fairly novel adventure, I couldn’t find any prior research on this. Which kind of hurt my original intent of writing this article which was to build one. However, there are a lot of faux-personalization chatbots that people are making today.
The idea isn’t that farfetched, after all.
Friendship beyond personalization
Despite my attempts to code this and figure out a model, I remained at a loss. I really wanted to build this and present a working personalization model based on building human like contextual relationships with the bot. I tried for a whole week, and ended up making zero progress. Which is kind of expected when I think about what I was trying to solve.
I guess I don’t really know that much data science to figure it out yet, but this gives me a lot of motivation to learn more about the subject. If you’d really like to give it a try, I’ve uploaded a dataset of 900+ sci-fi movies and their descriptions that I scraped from Rotten Tomatoes and Wikipedia.
It is indeed a magical time to be alive if you are working in AI. You are only bounded by your imagination and creativity, and of course the data you have at hand. While some ideas might sound preposterous or some may sound dangerously hard, I think there is some merit in trying to see how much weight you can lift in this intellectually stimulating gym class.
You and I are not just limited to the tools we use. In the age of artificial intelligence, anything that you imagine can be possible with the right data sets. Instead of introducing a master-slave dichotomy in our quest for artificial intelligence, we should rather be opting to make machines that empathize and befriend.
Who knows, teaching AI to be friends with human beings might be the only way to save us from possible armageddon one day. ;)