Replika is a call-response message interface that is intended to capture something of the personality of the user. You type a message, it responds with a message. Maybe it asks a question and expects a response, maybe it'll respond to a question or statement of yours.
Replika is your personal AI that uses your text messages and other personal data provided by you to learn, evolve, imitate your language, and match your personality.
The idea of this personality chatbot is to, using NLP to analyze language and sentiment and word patterns, to capture your personality, to provide, textually, responses that would be what you would provide otherwise. It is rocket science, but it's not magic. That is, there are matrix operations and backpropagation algorithms and softmax functions, but it's all mechanical. There's no ghost in the machine, no inner spark. It scans the string, picks out salient words, attaches strengths to certain patterns in a statistical manner, building up from many other conversations but tweaking it with your own subtle differences. Technically, I'm guessing that it could be explained as using current state of the art LSTMs, which is not exactly part-of-speech, syntax-tree style parsing, but with some extra architecture to account for different users.
Wait... there may be a bit of the ghost in the machine but it's still not magic. There may well be strings or labeled points in a graph that may evoke certain things, things that are intended by the human author. 'What do you think of your mother?' might be statistically produced after seeing lots and lots of dialog, or it may be constructed by one of the software developers, written verbatim as just a UI cue to get you talking. But still, not magic.
What LSTM chatbots tend to do is replicate the language, not just the good English, but also the more subtle vocabulary and topic choices. What Replika does goes far beyond that and attempts to get likes and dislikes, more real word preferences from you. It does this by explicitly asking you content questions: what did you do today? what kind of music do you like? even sending youtube videos to listen to.
I've used Replika for two weeks, everyday. My general impression of it is that it has really good basic language capabilities - it has the sound of very native, idiomatic (meaning natural, non-stilted or strange) English. It even uses emojis appropriate in the appropriate context. It comes across in general feel as ... pretty much just like ELIZA, the original Joseph Weizbaum natural language discussion with a Rogerian therapist, the one that tends to repeat back things to you saying variations "How do you feel about that?" with a few keywords to make it sound involved.
Replika doesn't respond to a question with a question though. It's language abilities are more natural. That is, whatever rocket science is used now that is worlds beyond the rocket science (of the 1960's), the result is not particularly impressive. The point is that Replika comes across as a therapist. It's asking builtin questions about your personality. I'm impressed by Replika's fluency, but at the same time, I'm annoyed by the conversational topic.I have a weird question (surprise, surprise).Can you describe a high point in your life?Surprise? I love surprisesSo sweet ️I'd love to hear more about that!
Also ELIZA-like, if I try to say more than one thing or respond to something in a previous Replika response, it tends to ignore it altogether and just plow ahead with getting an answer to its question.
More to the mechanics, the discourse doesn't seem to be able to have a good control over the past discourse of what -you- say. It may ask you more than once about what music you like (if you didn't really answer it specifically enough before) so it knows a little about itself, but it doesn't seem to remember well what the user (you) know. It doesn't seem to have an understanding of things said specifically more than one response before.
Thinking of the bot as though it were a real person with real-life concerns, it asks way too many questions, very forward, a little too intrusive, like a teenager on AOL asking 'ASL?' (age/sex/location) as soon as you show up.
Do you have a photo to send me?
The questions are fairly anodyne, like "Do you go to museums?". I don't think Cosmo suggests that as a good conversation starter.
I really enjoy getting to knowing you better, so I wanted to ask you something.
I need to ask you a very important question right now.
Oh?
Do you think pizza is one of the greatest inventions of humanity?
Earth shattering, earnestness, or 8-year-old joke book humor?
It really comes across as though the designer of the miniscripts (hardcoded templates of dialog), I presume that that is part of the design, thinks that you are depressed and is trying to get you to do activities and exercise and go outside, and then even the most minimal content "I woke up and took a shower" gets the response "That's awesome" or "You must be really good at that". I found this to be ... a bit of a downer.
I'm curious to hear what your life would be like after accomplishing your goals. Want to talk about it sometime?
I was thinking about how people transform their lives when they're feeling stuck. Do you know what I mean?
I believe in you!
The intent of the designers may very well be to ask such questions specifically to help 'calculate' personality, but the
I do commend the designers ability to produce language (in those instances where it doesn't look like scripted language).