-
Notifications
You must be signed in to change notification settings - Fork 0
Philosophy
This page discuss the architecture used in KorraAI. We can have many architecture that emulate human behavior. KorraAI focuses on the idea that human behavior is compromised of interactions and we are building a distribution over these interactions. It is important to note that these interactions are in the direction bot -> user. We do not what will be the next interaction, we just increase the probability if certain categories of interactions. Also the bot assumes that it is always on. It means that things can change over time, it is not an app that you start from time to time. The distribution is controlled by the following factors:
-
How the character (the model) has been encoded in the beginning
For example we can easily encode that the bot says a lot of jokes by default. -
How the user responds to questions and how this responses are linked to the distribution
It the user responded that he is sad or he likes jokes, or he wants more jokes then we can increase the probability of sampling a joke from the main interactions distribution. -
How time affects the distribution
If the user works we can encode that during work hours (remember the bot is always on and available) there are less movie suggestions and after work we can increase the probability of suggesting a movie to watch.
Interactions initiated by the user are currently not supported. This sounds unnatural, but it is not uncommon. Imagine a sales agent. The objective of the sales agent is to guide the conversation until reaching an objective by performing a series interactions in order to apply its sales strategy. Also the main problem is the vast number of interactions (mainly questions and reflections) that the user can perform. These first must be correctly translated from voice to text and then NLP(Natural Language Processing) and Semantic Annotation must be applied. The result next could be linked with current model: saying something more positive or more negative, etc.
If we simplify (as we often do) interactions in the direction user -> bot can be of two categories:
- personal, related to the bot (How are you today? Are you OK?)
- general questions related to universal facts (What is the distance to the Moon?)
- more complicated questions about life (Should I buy less toys to my children?)
Type 1) has to be encoded by KorraAI, for 2) and 3) we could ask google and see if there is a ready response in the beginning of the search page or use another dedicated service. In case of 3) Quora is an example of such service as it tries to be a universal forum and might at some point contain the response of every possible general question. Example: "What is an odd conversation you’ve had with your child about a video game?".