Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Suggestion] - Base Emotional Classification System #7704

Open
ibm2431 opened this issue Sep 1, 2021 · 2 comments
Open

[Suggestion] - Base Emotional Classification System #7704

ibm2431 opened this issue Sep 1, 2021 · 2 comments
Assignees
Labels
discussion treat this issue/pr as a debate/discussion point

Comments

@ibm2431
Copy link

ibm2431 commented Sep 1, 2021

Emotions are already understood to be an important project, and are the subject of many, many user submitted issues. There have been tons of suggestions for how Monika might act on her emotions.

I feel part of the reason results haven't materialized from these discussions is because they start from the wrong end of the process. Someone considers how they want to interact with Monika, determines she needs feelings, picks some that come to mind, and then starts working backwards from the implementation of final behaviors and interactions.

This results in indecision and fear, even if someone had the will and time to tackle the idea:

  • "What am I overlooking? Are these the emotions we want?"
  • "Is this the right approach? Is this how emotions should be internally stored or represented?"
  • "What if we want to build on this later? Is it adaptable for other things we want to do?"

The best way to dispel doubts is knowing you have a robust base capable of handling whatever you might want of it later. Whatever comes after your foundation - moods, interactions, or otherwise - is just paint on your already constructed walls. Rather than picking an end result and working backwards, it's best to start with the basics.

With this in mind, I've been examining existing psychological emotion models. After a lot of cross-examination, thought, and writing, I've determined an emotional classification model that I feel might be safe to proceed with. While I do have (ever-evolving) ideas regarding actual programming design, I deliberately don't go into them - the very first step is "simply" picking a list of emotions.

Model for Organizing Neural Interactions and Knowledge Affectively

Part 1: Understanding (PDF - 25 pages)

emotional-classification-tiny
(Full Image)

It looks very similar to the "Revisited Hourglass" model because it is. As I go into in the full "paper", compared to the other emotional classification models I examined, it's the most succinct yet robust. I did feel individually tracked axes inside the Attitude axis are important enough to add, and made clarifying modifications to the "example tiers" the original model provided.

As one might guess from the PDF title and creation of a github repository, I do have hopes - and plans - for expanding upon this subject to a full model with a corresponding code library. Emotions and affective computing offer more capability than just asking how someone feels. They're also vital for agent learning (see: Growth project), which is a subject I'm interested in.

But right now I have some "writing burnout", and the selection of a core emotion classification system is a good point to ship something out for now. If I fall off the face of the earth before doing more, at least I've shared my research into picking an emotional classification model to simulate!

Linking some issues:
Emotions and Moods: #1354 #2618 #4546 #4874 #5010 #5356 #5396 #5805 #5991 #6566 #6625 #6629 #6917 #7332
Regarding Attitude sub-axes: #3006
Regarding emotional causes for agent adaptation: #3067

@ThePotatoGuy ThePotatoGuy self-assigned this Sep 2, 2021
@ThePotatoGuy ThePotatoGuy added the discussion treat this issue/pr as a debate/discussion point label Sep 2, 2021
@ThePotatoGuy
Copy link
Member

I plan to fully read this soon so bear with me.

@ibm2431
Copy link
Author

ibm2431 commented Sep 19, 2021

Oh, I'm in no rush for any replies, don't worry! I'm only still in the preliminary research phase for the next part on how emotions might be elicited, and how an affective agent might learn or grow. My library on Google Scholar has gotten quite large. So I probably won't have anything further to add for a month or two!

I'm really liking Affect Control Theory after seeing Jesse Hoey give an illuminating illustration of its potential uses. Basically, emotional responses are the difference between our impressions for how we feel things should be versus how they are.

If an event ("my birthday") or concept ("my partner") don't align ("didn't") with our expectations ("spend time with me"), we will either emote that difference ("I'm really sad"), or change our expectations to match ("my partner is bad").

When applied to a virtual agent, instead of a developer defining hard emotion values (Sad +50) in response to events (ignored_birthday), they'd instead "teach" these initial impressions ("good partners spend time with you on your birthday") to the agent.

The agent's emotions can then be automatically elicited (Actual - Expectation), and if the agent has a method of changing their new impressions ("my partner is bad") from the original it was taught ("my partner should be good"), these emotional responses can possibly change over time should a similar event happen again ("I'm only disappointed, this isn't surprising from them").

But I'm looking into other existing affective agents and how they're designed for ideas before getting back to paper composition. Scholar claims I still have 70 papers in my unskimmed label, so it'll probably be a while! And if it turns out that Affect Control Theory is untenable, the basic emotion classification could still be used in other ways (like simply using hard emotion value definitions).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion treat this issue/pr as a debate/discussion point
Projects
None yet
Development

No branches or pull requests

2 participants