1๏ธโฃ ๋ชจ๋ธ ์ ์ - RoBERTa
๋จผ์ ํ ์คํธ ๊ฐ์ ์ธ์์ ์ฌ์ฉ๋๋ ๋ค์ํ ๋ชจ๋ธ ์ค ํ๋๋ฅผ ์ ์ ํ๊ธฐ ์ํด XLnet, ELECTRA, BERT, RoBERTa๋ฅผ ๋์์ผ๋ก ๋์ผํ ์กฐ๊ฑด ํ์ ์ ํ๋๋ฅผ ์คํํ๋ค. ์ด ์ค RoBERTa๊ฐ ๊ฐ์ฅ ๋์ ์ฑ๋ฅ์ ๋ณด์๊ธฐ์ RoBERTa๋ฅผ ์ฑํํด ํ์ธํ๋์ ํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ , ์ด๋ ์ ํ์ฐ๊ตฌ์ ๋์ผํ ๊ฒฐ๊ณผ์๋ค.
Comparative analyses of bert, roberta, distilbert, and xlnet for text-based emotion recognition (IEEE ICCWAMTIP'20)
Exploring transformers models for emotion recognition: A comparision of BERT, DistilBERT, RoBERTa, XLNET and ELECTRA (Proceedings of the 2022 3rd International Conference on Control, Robotics and Intelligent System)
2๏ธโฃ ๋ฐ์ดํฐ ์ ์ ์ - Empathetic Dialogues
ํด๋น ๋ฐ์ดํฐ ์ ์ ํน์ ๊ฐ์ ์ ํฌํจํ๋ ์ค์ ๋ํ ์ํฉ์ ์ฐ์ถํ ๊ฒ์ผ๋ก, ๋ฐ์ดํฐ๊ฐ ๋น๊ต์ clean ํ ๊ฒ์ผ๋ก ์๋ ค์ ธ ์๋ค. ์ผ์ ์ํ์ ๋ํ ๋ฐ ์ํฉ ์์์ ๊ฐ์ ์ ์ธ์ํ๊ณ ์ ํ๋ ์ฐ๋ฆฌ์ ๋ชฉํ์ ๋ง๊ธฐ์ ํด๋น ๋ฐ์ดํฐ ์ ์ ์ฑํํ์๋ค.
๋ฐ์ดํฐ ์ ์ head๋ฅผ ์ฐ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
conv_id | utterance_idx | context | prompt | speaker_idx | utterance | selfeval | tags |
hit:0_conv:1 | 1 | sentimental | I remember going to the fireworks with my best friend. There was a lot of people_comma_ but it only felt like us in the world. | 1 | I remember going to see the fireworks with my best friend. It was the first time we ever spent time alone together. Although there was a lot of people_comma_ we felt like the only people in the world. | 5|5|5_2|2|5 | |
hit:0_conv:1 | 2 | sentimental | I remember going to the fireworks with my best friend. There was a lot of people_comma_ but it only felt like us in the world. | 0 | Was this a friend you were in love with_comma_ or just a best friend? | 5|5|5_2|2|5 | |
hit:0_conv:1 | 3 | sentimental | I remember going to the fireworks with my best friend. There was a lot of people_comma_ but it only felt like us in the world. | 1 | This was a best friend. I miss her. | 5|5|5_2|2|5 | |
hit:0_conv:1 | 4 | sentimental | I remember going to the fireworks with my best friend. There was a lot of people_comma_ but it only felt like us in the world. | 0 | Where has she gone? | 5|5|5_2|2|5 | |
hit:0_conv:1 | 5 | sentimental | I remember going to the fireworks with my best friend. There was a lot of people_comma_ but it only felt like us in the world. | 1 | We no longer talk. | 5|5|5_2|2|5 |
ํ๋์ ๋ํ์ ์ฐธ์ฌํ๋ ๋ speaker๊ฐ ์๊ณ , ์ด ์ค ํด๋น ๊ฐ์ ์ ๊ดํ ๋ฐํ๋ฅผ ์งํํ๋ ์ฌ๋์ 1์ด๋ค.
๋ฐ์ดํฐ์ ์ ๊ทธ๋๋ก ์ฌ์ฉํ์ ๊ฒฝ์ฐ์ ๋ชจ๋ธ ์ ํ๋๋ Test Loss: 1.4786 | Test Accuracy: 0.5771์๋ค.
์ฐ๋ฆฌ๋ ์ ๋ฐ์ดํฐ ์
์ค context (emotion), utterance, prompt๋ฅผ ์ฌ์ฉํ๋ค. prompt์ ๊ฒฝ์ฐ์๋ EDA ์์ ํ์ฉํ๋ค.
๋ํ, conv_id ๊ฐ ๋์ผํ ํ
์คํธ๋ ํ๋์ ๋ฐ์ดํฐ๋ก ๋ณด๋๋ก ํ์์ผ๋ฉฐ, speaker_idx๊ฐ 1์ธ ๋ฐ์ดํฐ๋ง์ ๋ชจ์ ํ๋๋ก ํตํฉํ์ฌ monologue๋ก ๋ง๋ค์๋ค.
3๏ธโฃ ๊ฐ์ ์ฌ๋ผ๋ฒจ๋ง
Empathetic Dialogues ๋ฐ์ดํฐ ์ ์ ์ด 32๊ฐ์ ๊ฐ์ ์ผ๋ก ๋ผ๋ฒจ๋ง์ด ๋์ด์๋ค.
์ด๋ฅผ Anger, Disgust, Fear, Sadness, Contentment, Excitement, Awe, Amusement์ 8๊ฐ ๋ผ๋ฒจ๋ก ์ฌ๋ผ๋ฒจ๋งํ์๋ค.
๋ถ์ ์ ๊ฐ์ ์ ํด๋นํ๋ Anger, Disgust, Fear, Sadness๋ ๋๋ฆฌ ์๋ ค์ง Plutchick์ ๊ฐ์ ๋ถ๋ฅ๋ฅผ ๋ฐ๋ฅธ ๊ฒ์ด๋ค.
๊ธ์ ์ ๊ฐ์ ์ ๊ฒฝ์ฐ, ๋ถ์ ์ ๊ฐ์ ์ ๋ผ๋ฒจ์ ์์ ๋์ผํ๊ฒ๋ Contentment, Excitement, Awe, Amusement๋ฅผ ์ฌ์ฉํ์๋๋ฐ, ์ด๋ ์ ํ ์ฐ๊ตฌ์์ ์ ์๋์๋ Happiness์ finer grained version์ ํด๋นํ๋ค.
์ด์ ๊ฐ์ 8๊ฐ ๊ฐ์ ๋ผ๋ฒจ๋ก์ ๋ถ๋ฅ ๋ํ ์ ํ ์ฐ๊ตฌ์์ ์ ์ ๋ฐ ์ฌ์ฉ๋ ์ ์ด ์๋ค.
๊ฐ์ ์ฌ๋ผ๋ฒจ๋ง์ SenticNet์ knowledge graph, BERT, spaCy, ๊ทธ๋ฆฌ๊ณ Word2vec์ ์ด์ฉํ ๋ฒกํฐ ์๋ฒ ๋ฉ์ ์ ์ฌ๋ ๊ณ์ฐ์ ํตํด ์งํํ์๋ค. ์ฌ์ฉ๋ ๋ฉ์๋๋ง๋ค ์๋ก ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์๋ context์ ๊ฒฝ์ฐ์๋ ๋ชจํธํ ๊ฒ์ผ๋ก ํ๋จ, ์ฌ์ฉํ ๋ฐ์ดํฐ ์ ์์ ์ ์ธ(10๊ฐ ๋ผ๋ฒจ - 'anticipating', 'prepared', 'caring', 'hopeful', 'confident', 'nostalgic', 'disappointed', 'sentimental', 'trusting', 'faithful')ํ์๋ค.
emotion_mapping = {
'anger': 0, 'disgust': 1, 'fear': 2, 'sadness': 3, 'contentment': 4, 'excitement': 5, 'awe': 6, 'amusement': 7
}
emotion_to_label = {
'surprised': 6, 'excited': 5, 'angry': 0, 'pround': 6 'sad': 3,
'annoyed': 1, 'grateful': 6, 'lonely': 3, 'afraid': 2, 'terrified': 2,
'guilty': 1, 'impressed': 6, 'disgusted': 1, 'furious': 0, 'anxious': 2,
'joyful': 7, 'jealous': 1, 'content': 4,
'devastated': 3, 'embarassed': 1, 'ashamed': 1, 'apprehensive': 2,
}
emotion_except = {
'anticipating', 'prepared', 'caring', 'hopeful', 'confident', 'nostalgic', 'disappointed', 'sentimental', 'trusting', 'faithful'
}
์ด ๊ณผ์ ์ ํตํด ์ ํ๋๋ฅผ Test Loss: 0.5743 | Test Accuracy: 0.8159๊น์ง ํฅ์์ํฌ ์ ์์๋ค.
4๏ธโฃ ํ์ดํผํ๋ผ๋ฏธํฐ ์กฐ์
RoBERTa ๋ ผ๋ฌธ์์ ์ ์๋ ์ต์ ์ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ ์๋์ ๊ฐ๋ค.
- batch size : 16, 32
- ํ์ต๋ฅ (Adam): 5e-5, 3e-5, 2e-5
- epoch numbers: 2, 3, 4
์ด๋ค์ ๊ฐ๋ฅํ ๋ชจ๋ ์กฐํฉ์ ํ ์คํธํ์๊ณ , ๊ทธ ๊ฒฐ๊ณผ ๊ฐ์ฅ ๋์ ์ ํ๋๋ฅผ ๋ณด์ธ ๊ฒ์ ์๋์ ์กฐํฉ์ด์๋ค.
- batch size 16
- ํ์ต๋ฅ (Adam): 2e-5
- epoch: 2
์ถ๊ฐ๋ก ์๋ ํ์ดํผ ํ๋ผ๋ฏธํฐ๋ฅผ ์ด์ฉํ๋ค.
- LR ์ค์ผ์ค๋ฌ: get_linear_schedule_with_warmup (warmup ratio = 0.06)
- weight decay: 0.1
- eps: 1e-8
- max length: 128
์ด์ Test Loss: 0.5362 | Test Accuracy: 0.8258์ ์ ํ๋๋ฅผ ์ป์ ์ ์์๋ค.
5๏ธโฃ EDA
๋ฐ์ดํฐ ๋ถ๊ท ํ์ ํด๊ฒฐ์ ์ํด Empathetic Dialogues์ prompt์ GoEmotions ๋ฐ์ดํฐ ์ ์ ํ์ฉํ์๋ค.
GoEmotions ๋ฐ์ดํฐ ์ ์ ๊ฒฝ์ฐ, Empathetic Dialogues์ ๊ฐ์ด ๊ฐ์ ์ฌ๋ผ๋ฒจ๋ง์ ์งํํ์๊ณ ๊ทธ ์ค amusement๋ง์ ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌํ์ฌ ์ต์ข ์ ์ผ๋ก Test Loss: 0.3050 | Test Accuracy: 0.8973
์ ์ ํ๋๋ฅผ ์ป์ ์ ์์๋ค.
Classification Report for the Entire Test Set:
precision recall f1-score support
anger 0.70 0.66 0.68 151
disgust 0.86 0.84 0.85 467
fear 0.87 0.92 0.89 292
sadness 0.90 0.94 0.92 231
contentment 0.83 0.82 0.82 342
excitement 0.72 0.66 0.69 91
awe 0.82 0.85 0.83 176
amusement 0.96 0.95 0.96 1776
accuracy 0.90 3526
macro avg 0.83 0.83 0.83 3526
weighted avg 0.90 0.90 0.90 3526
Test Accuracy (anger): 0.6623
Test Accuracy (disgust): 0.8437
Test Accuracy (fear): 0.9247
Test Accuracy (sadness): 0.9351
Test Accuracy (contentment): 0.8158
Test Accuracy (excitement): 0.6593
Test Accuracy (awe): 0.8523
Test Accuracy (amusement): 0.9544