인공지능 모델에게 전문가의 통찰력 부여하기

Minjae Lee
Turing
Published in
8 min readFeb 1, 2023

이번 글에서는 팀 튜링에서 작성하여 AAAI2023 AI4EDU Workshop에 채택된 “Leveraging Skill-to-Skill Supervision for Knowledge Tracing” 논문을 소개합니다.

배경

Knowledge Tracning(지식추적)은 학생의 문제풀이 기록을 활용하여 아직 풀지 않은 문제에 대한 정오답 여부를 예측하는 연구분야입니다. 지식추적 모델을 통해 학생의 잠재된 지식 상태를 예측할 수 있으며, 이를 바탕으로 개인화된 실력 분석과 맞춤형 문제 및 강의 컨텐츠를 추천해 줄 수 있습니다.

94년도에 발표된 Bayesian knowledge tracing(BKT)에서 학생의 지식상태를 특정 개념을 안다 또는 모른다의 상태만 있다고 가정한 후 Hidden Markov model 을 기반으로 모델링 하는 기법을 소개하였고, 이후 IRT(Item response theory) 를 통해 문제를 찍어서 맞추는 경우 또는 실수로 틀리는 경우도 함께 고려하여 지식상태를 모델링할 수 있게됩니다. 그리고 2015년에 처음으로 딥러닝을 기반으로 학습하는 지식추적 모델(DKT, Deep Knowledge Tracing)이 제안되었고 이는 기존 통계 및 머신러닝 기반 모델들의 성능을 훨씬 뛰어넘게 됩니다.

문제 인식

딥러닝 모델은 데이터로부터 우리도 몰랐던 패턴과 인사이트를 자동적으로 추출하여 추론 과정에 사용합니다. 이 과정에서 도출되는 performance 상승분은 딥러닝 방법론의 적극적인 도입을 불러왔습니다.

다만 모델이 추출해 낸 직관이 인간의 직관과 일치한다고는 보장할 수 없습니다. 이는 어떤 상황에서는 우리를 새로운 발견으로 이끌지만, 사용자와 끊임없이 상호작용하며 피드백을 제공해야 하는 수학대왕 제품의 경우 별로 좋은 현상은 아니게 됩니다. 문제를 푸는 사람, 내는 사람 모두 인간이기에 인간과 너무 동떨어진 패턴 혹은 직관을 사용해 사용자의 지식 상태를 모델링하고 사용자의 학습을 도와 주는 AI의 도움을 받는다면 두 부류의 사람 모두 이상하다고 생각되는 방향으로 사용자의 학습이 진행될 것이기 때문입니다. 고로 우리는 인간의 직관을 모델에게 제공하여 모델의 추론 결과가 우리 생각과 어느 정도 일치하도록 조치해야 할 필요가 있습니다.

뿐만 아니라, 데이터만 가지고는 알아내기 힘든 지식들을 모델에게 알려준다면, 모델의 성능 또한 더 증가할 것입니다. 이는 특히 데이터가 많지 않은 경우 도움이 되겠죠. 수학은 단원 간 연관관계가 매우 중요한 과목이니만큼, 이번 연구에서는 단원 간 관계에 대한 튜링 수학 전문가들의 지식을 AI 모델에 적용시키는 방법에 대해 고민해 보았습니다.

데이터 셋

실험에는 대부분의 지식 추적 연구에 표준적으로 사용되는 ASSISTMENT2009 데이터셋을 이용하였습니다. ASSISTMENT2009는 수학 문제 풀이 데이터 셋으로, 110개의 수학 단원들에 대해 대략 50만개의 학생 문제 풀이 기록을 가지고 있으며, 지식 추적 연구에서 가장 많이 사용되고 있는 데이터 셋입니다.

추가로, 이 연구에서는 ASSISTMENT2009데이터셋에 더해 각 단원 간의 관계도를 만들어 사용했습니다. 이를 위해 사내 4명의 수학 전문가분들이 서로 다른 두 단원이 선수 과목 관계에 있거나, 하나의 단원을 푸는 능력이 다른 단원을 푸는데 도움이 되는 단원 쌍을 라벨링해 주셨습니다. 라벨링된 정보가 한 사람의 생각으로 편향되는 것을 막기 위해 서로 논의 없이 각자 라벨링을 먼저 진행했고 이후 서로 합의하면서 라벨링을 한번 더 진행하여 총 4+1=5개의 단원간 관계 데이터셋을 만들 수 있었습니다.

만들어진 데이터셋은https://github.com/weareteamturing/assist09-skill-to-skill-relationships 에 공개되어 있습니다.

전문가 지식의 수치화 과정

딥러닝 모델은 모든 것을 숫자로 인식하기에, 우리가 가진 정보를 숫자로 변환하여 입력해야 합니다. 이를 위해 저희는 전문가들 간의 합의로 만들어진 그래프에 Node2Vec 방법론을 적용하여 (b)와 같이 각 단원을 나타내는 벡터들을 생성하였습니다. 이렇게 생성된 Skill 벡터들은 단원 간 관계에 대한 정보를 포함하게 됩니다.

첫 시도

첫 시도에서 사용한 방법론

처음에는 Clustering based slicing이라고 이름 붙인 방법론을 떠올려 보았습니다. 간단히 설명드리자면, 먼저 위에서 만든 Skill Vector들을 Clustering하여 비슷한 단원들로 구성된 그룹을 몇 개 구성하였습니다. 이를 바탕으로 한 사용자의 학습 기록을 서로 같은 그룹에 속한 문제끼리 묶어 몇 개의 subsequence를 만든 후, DKT 모델의 학습 과정에서 이 subsequence들을 사용하는 방식입니다.

저희는 해당 방법론을 적용하면 지식 추적 모델이 추론 과정에서 학생의 모든 단원에서의 실력이 아닌, 학생의 정오를 예측해야 하는 대상이 되는 문제와 유관한 단원에 속한 문제들에서의 학생 실력만을 볼 수 있기에 더 정확한 예측을 할 수 있을 것이라 기대했습니다. 그러나 해당 장점에서 오는 실력 상승분이 slicing으로 인한 모델 시야 제한이라는 단점을 극복하고도 남을 정도는 못 되었기에 모델의 예측 성능(AUC 기준)은 baseline에 비해 오히려 떨어지게 됩니다.

새로운 방법론

고민 끝에 저희는 단원 간 관계에 대한 전문가의 지식을 모델이 활용하게 한다는 핵심 아이디어만을 남겨 놓고 이를 실행할 방법론은 바꾸자는 결론을 내게 됩니다. 즉 human insight를 제대로 활용할 수 있는 방법을 찾아 나선 것이죠. 여러 번의 실험 끝에, 저희는 다음과 같은 방법론을 발견했습니다.

모델의 전체적 구조도

Problem embedding layer를 하나 준비하고, 학생의 learning history를 통과시켜 problem embedding sequence를 생성합니다. 이들은 projection layer를 거쳤을 때 각 문제에 대응되는 skill vector와 최대한 비슷해지도록 학습시킵니다. 이렇게 함으로써 각 problem embedding vector는 Node2Vec 으로 만든 Skill 벡터들이 가지고 있는 정보를 계속해서 참조하며 training data에서 찾은 각 Skill별 고유 정보를 포함하게 됩니다.

이렇게 만들어진 problem embedding vector들을 지식추적 모델의 encoder측 input으로 입력하고, 학생의 learing history와 그 동안의 정오 기록을 decoder측 input으로 사용해 학생의 실력을 추출해 내어 해당 학생이 어떤 문제를 맞힐 확률을 계산해 냅니다.

실험 결과

모델 학습에 사용한 데이터셋 크기에 따른 AUC 성능 변화

그 결과 저희는 인간의 단원 간 지식을 모델에게 알려주지 않은 경우보다 높은 performance를 얻어낼 수 있었습니다. 우리가 얻어낸 수치는 전문가들의 지식을 사용하지 않고 만들어낸 단원 간 관계에 관한 지식을 모델에 적용했을 때보다도 높은 수치였습니다.

이러한 경향은 데이터셋이 한정된 상황일 때 특히 더 두드러졌는데, 이로부터 부족한 데이터로부터 찾아낸 부족한 insight는 인간이 알아낸 insight를 사용하게 함으로써 해결할 수 있다는 것을 확인할 수 있습니다. 저희 방법론이 DL 기반 지식추적 모델이 데이터뿐만 아니라 인간 지식을 사용해서도 학습하는 것을 가능하게 한 것입니다.

결론

이렇게 이번 연구가 잘 마무리되었습니다. 한정된 시간 안에서 모든 작업을 수행하다 보니 분석적 측면에서 살짝 아쉬운 점이 남지만, 그럼에도 수학 도메인에서의 전문가 지식을 활용할 수 있는 방법론을 최초로 고안 및 적용하여 더 고도화된 지식 추적 모델을 얻어내었다는 점에서 의미 있는 일이었습니다.

딥러닝을 기반으로 지식 추적 모델을 학습했을 시 인간의 직관에 위배되는 결과가 종종 발견되기도 합니다. 이는 통계 기반 모델보다 더 좋은 numeric 성능을 보여주는 데에는 도움이 될지 몰라도 비직관적인 모델의 결과를 설명할 수 없다면 학습을 하는 사용자에게는 오히려 좋지 않은 경험을 제공하게 됩니다. 즉 모델의 결과는 상식적으로 납득할 수 있어야 하는데요. 그렇기에 특히 교육 도메인에서는 AUC, ACC 성능 뿐만 아니라 모델의 설명 가능성도 중요한 문제입니다.

학습 분석의 결과가 왜 이렇게 나오는지, 왜 이런 문제를 추천했는지, 어떤 부분이 부족해서 문제를 틀렸는지에 대한 이유도 함께 제공해야 더 신뢰할 수 있지 않을까요? 위 연구도 결국 수학대왕에서 좋은 학습 경험을 제공해주기 위한 아이디어였고, 튜링에서는 모델의 설명 가능성을 위해 다양한 연구를 진행하고 있습니다.

--

--