
개요

코미디 유튜브 채널 밈고리즘의 폭스클럽 콘텐츠에서 최초로 나온 일종의 밈이며,
상대방이 공감을 해주지 않고 차갑게 대하는 사람에게 쓰는 드립이다😂 (출처. 나무위키)
MBTI의 세 번째 성격유형은 '판단 기능'을 기준으로 `F`(Feeling, 감정)와 `T`(Thinking, 사고)로 나뉜다.
`F`유형에 해당되면 관계와 사람 위주로 판단을 하고, `T`유형에 해당되면 사실과 진실, 논리, 객관적으로 판단을 내린다.
예를 들어, "나 오늘 시험을 망쳐서 우울해ㅜㅜ"라는 말에 상대방이
`"아이구ㅜㅜ 그랬구나. 기분이 안좋겠다. 오늘은 잊어버려! 다음에는 더 잘볼거야!"`와 같은 말을 하면 `F`성향에 가깝고,
`"아 그래서 몇점 나왔는데?"` 라는 질문을 하면 `T`성향에 가까울 것이다.
그렇기에 `T`유형은 `F`유형에 '비해서는' 공감적인 발언을 잘 하지 않는 편이라 다소 냉정하고 차갑게 보여질 수 있다.
즉, `"너 T야?"`라는 말에는 `'왜 내 말에 공감을 안해줘! 그 말이 아니잖아! 내가 듣고 싶은 말은 그게 아니야!'`라는 속 뜻이 숨겨져 있는 것이다!
이처럼 자신을 소개할 때 MBTI를 사용하는 것은 마치 **자신의 성격을 간략하게 소개하는 것**과 같다.
하지만 필자는 MBTI 검사 결과가 매번 달라지는 것을 보며 **`과연 이 MBTI 검사가 정확한가..??`**라는 의문이 들었고, 이 프로젝트는 더 정확한 나의 MBTI를 알기위해 시작된다.
What is MBTI? 👀
가장 먼저.
MBTI란 무엇일까?
근데 의외로 교수님이 너무 잘 아셔서 상세 설명을 바로 패스해버렸다..
원래 하나하나 다 설명하려했는데
갑자기 교수님 '너는 mbti가 뭐니?' '나랑 같네?'
다들 빵터졌다ㅋㅋㅋㅋㅋㅋㅋㅋ

사람의 선호 경향은 '모' 아니면 '도' 둘 중 하나만 선택가능하며
이 선호 경향은 총 4가지로 분류된다.
사람의 MBTI는 이 4가지의 선호경향을 문자로 나타낸 것을 의미한다.
각 선호 경향은 E/I, S/N 등 반드시 2개 중 1개만 선택이 가능하며
그렇기에 사람의 유형이 총 16가지 유형으로만 나뉘게 된다.

필자와 같은 경우는 `ESTJ`이다.
원래 `ESFJ`이었는데 사회생활을 많이 하다보니 진짜 `T`가 되어버렸다..
하지만 `S`유형을 제외하고는 모든 유형이 거의 50:50으로 나오는 것을 볼 수 있다.
기존 MBTI 검사의 한계

MBTI 검사는 단답형으로만 이뤄지는데, 어딘가 부정확하단 생각이 들었다.
특히나 애매한 답변에 대해서는 대답할 말이 없는데 대답해야하는 경우가 부지기수였다. 그래서 필자와 같은 경우는 [보통]으로 주로 답변을 하다보니 MBTI 검사결과가 52:48, 57:43 등 어중간하게 나오는 경우가 잦았다.

이런 문제점을 개선하고자 피검사자는 '주관식'으로 답변을 할 수 있는 자유로운 검사를 하는 것이 내 프로젝트의 최종 목표이다.
MBTI. 원래도 핫했지만 요즘들어 더 핫한 주제다.
어떻게 제작할 것인가?
내가 만들고자 하는 "MBTI 검사 구조도"는 다음과 같다.

1. 인공지능 model인 `Bot`이 질문을 한다.
2. `User`은 "주관식"으로 답변을 한다.
3. `Bot`은 질문을 분석하여 사용자의 MBTI 중 하나의 유형을 예측한다.
4. 계속해서 질문하고 답변하고 예측하는 행동을 반복한다. (x N)
5. 일정이상 `User`의 MBTI가 판단이 된다면, `User`의 MBTI를 출력한다.
예상 UI
예상되는 모델 초안은 다음과 같다.


이렇게 계속해서 질문을 하다가 어느정도 `User`의 MBTI가 판단이 서면

"당신의 MBTI는 ESTJ입니다."란 문구를 출력하게 된다.
대충 어떤식으로 동작하는지 설명했으니 이제 세부 구조에 대해 얘기를 해보고자 한다.
도대체 저걸 어떻게 만들 것인가..??
일단 관련 레퍼런스가 있는지 열심히 찾아봤다.
관련 reference

2022년도 하계학술대회에서 발표한 연구이다.
국문 레퍼런스는 단 이거 하나였다.. 더 찾으면 나올 수도 있겠지만, 아직 난 이것밖에 못 찾았다. MBTI가 정형화된(?) 그런 정식적인 심리검사가 아니라서 그런가, 관련 논문이 너무나도 적다ㅜㅜ
논문에 대한 이야기를 해보자면, 위의 국문 논문은 **LSTM 모델을 이용해서 MBTI를 감정분류를 하듯이 분류**하였다. 다시말해 binary 분류를 한 것이다.
MBTI는 16가지 유형이 있지만, 이 유형들을 구성하는 4가지의 척도는 모두 극이 되는 성격으로 이뤄져있다. 쉽게말해 MBTI의 각 척도들은 모 아니면 도인 셈이다. 그렇기에 16가지의 multiclass로 모델을 생성하기 보다는, 각 척도들에 대해 모델을 구성하는게 훨씬 효율적이고 정확성을 높일 수 있는 방법이 되는 것이다.
위의 논문에서는 binary하게 총 4 척도들에 대한 모델을 만들었고, 각각의 유형들은 65~70%정도의 나쁘지않은 accuracy를 보였다.
하지만, 최종 16유형에 대해서는 20% 정도의 accuracy가 나온다고 한다.
각 유형들이 정확도에 비해 최종 정확도가 너무 낮은 것은 아닌가?
그래서 이 논문에서도 마지막에 다른 해외 논문들과 성능을 비교하는 표를 만들어놨다.
다른 해외 레퍼런스들도 유사한 문제점이 있는 것을 위의 표에서 확인 할 수 있다.
이에 대한 해결은 딱히 제시해 놓지는 않았다. 그래서 이 논문에서 참고한 다른 해외 레퍼런스들을 직접 분석해보았다.
일단, [5] 논문같은 경우는 정확성이 가장 높아서 꼼꼼히 읽어보았다.
다른 논문들과 다르게 binary대신 16가지 유형으로 학습을 하는 multiclass를 사용하였고, 신경망 모델이 아닌 logistic 회귀 방식을 사용했다. 데이터는 겨우 8천개. 근데 어떻게 저런 정확도를 나타내었을지 궁금해서 진짜 열심히 읽어봤다.
이 해외 레퍼런스에서는 데이터 수집을 kaggle에서 하였는데, train과 test또한 kaggle에서 긁어모은 데이터로 한 것 같다. 그래서 인지 이상하게시리 데이터가 무척이나 적은 것에 비해 정확도가 굉장히 높고 그러하다. 이 논문의 마지막 부분에선 kaggle 데이터에 한정해서 결과가 좋은 것이지, 다른 데이터에 대해서는 자신이 없다고 밝히기도 했다..
다음으로 [4] 논문을 읽어봤다. 이것도 역시나 해외 레퍼런스였고, [5]와 동일하게 reddit이란 사이트에서 긁어 모아 데이터로 만들어진 pandora라는 정제된 데이터 셋을 쓴 것 같다. 이 데이터를 바탕으로 reddit이란 사용자들이 대답하는 방식으로 test를 하다보니 정확도가 조금 높은 편이다. 그닥 도움이 되지 않을 것 같기도 하고, 무엇보다 이 논문은 구현에 초점을 맞추지 않고 애니어그램과 같은 다른 성격검사 비교에 초점을 맞춘 것 같아 가볍게 읽고 넘겼다.

그다음으로 읽어본 것이 [3]에 해당되는 해외 논문이다. 이 논문은 MBTI 성격 유형 검사를 위해 여러가지 모델을 사용하였다.
동일한 데이터를 가지고 Naive Bays와 SVM과 같은 분류모델로 학습해보고, 딥러닝(LSTM)방식을 이용해보기도 하였다. 그 결과 위의 Table 6과 같이 신경망 모델이 가장 정확성 면에서 우수하다는 결론이 나왔다. 역시나 binary 방식을 사용하였고, 데이터 수도 42만개나 된다.
그럼에도 불구하고 이 논문도 마찬가지로 위의 국문 논문과 같은 문제가 발생한다. 전체 정확도가 현저히 떨어진다는 점이다.
그래서 혼자서 열심히 생각해봤다. (이점은 논문에서 따로 언급하지 않았다. 그저 데이터 수를 늘리면 괜찮겠지.. 란 말만 반복할 뿐...)
내가 생각한 바로는
1) 데이터의 품질 문제
기존에 가져온 데이터가 각 유형별로 데이터 수가 불균형하다던가(E는 많은데 I는 적은..),
데이터 품질이 기본적으로 낮아서 total accuracy가 부정확한 것이 아닌가 생각했다.
2) MBTI란 검사의 한계
MBTI는 필자만 하더라도 한두달만에 상황이나 경험에 의해 계속해서 변한다.
>> 필자의 MBTI 변천기..
ISFP -> ESFP(2년전) -> ESFJ(6개월전) -> ESTJ(몇주전)
당장 나만해도 MBTI가 계속 변한다.
자신조차도 알 수 없는게 자신의 MBTI이다. 검사하는 날짜, 시간대, 그 당시 상황, 그날 컨디션 등에 따라 선택하는게 매번 바뀌기 때문이다.
그렇기에 필자는 위의 두 논문들처럼 **MBTI의 각 4유형에 대해서 정확성을 높이는 것에 최대한 초점을 맞추고**, 전체 정확도에 대해서는 아주 추후에 논하려고 한다.

필자도 위의 논문들 처럼 4유형에 대한 이진분류(4 Binary Classifiers)를 진행할 것이다.
전체 구조도

전체적인 구성은 다음과 같다.
자세한 설명은 다음 장에서 차근차근 설명하도록 하겠다.