ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 매쓰플랫 문제 풀이 기록을 바탕으로 한 학생들의 정량적 실력 평가 방법
    카테고리 없음 2025. 1. 23. 17:02
    반응형

    Introduction

    최근 석사 과정을 마치고 취업을 준비하며 입시 학원에서 일을 하고 있다. 이 학원은 학생들의 실력을 기반으로 S반, A반으로 나누어 수업을 진행한다. 수업 내용 자체가 다른 것은 아니지만 매일 보는 일일테스트의 난이도, 숙제의 양 그리고 단원별 나가는 진도의 속도가 다르다. 시간이 지나며 학생들의 실력이 분명히 변하고 S반, A반에서 이동해야할 학생들이 분명히 생긴다. 이러한 학생들의 실력 변화를 측정하기 위한 기존의 방법은 "반배치고사"를 실시하는 것이다. 반배치고사는 길어야 1시간 남짓한 시간에 풀어낸 문제의 점수를 바탕으로 학생의 실력을 나타낸 것이기 때문에 운적인 요소를 배제하기 어렵다. (계산 실수로 한 문제 틀린 학생보다 찍어서 맞춘 학생이 높은 점수를 받는다는 의미이다.) 또한 자주 시행할 수 없으니 피드백에 오랜 시간이 걸린다. 학교에서 보는 중간, 기말 평가도 마찬가지이다. 정리하자면, 오래 쌓아온 데이터에 기반하여 신뢰성있고 실시간으로도 실력 측정이 가능한 방법이 마땅치 않다는 것이다.

     

    본 제안서에서는 매쓰플랫(Mathflat)의 학습 기록을 바탕으로 학생의 실력을 예측하는 세 가지의 방법을 조사하고 정리하고자 한다. 방법은 다음 세 가지이다.

    1. 매쓰플랫에서 제공하는 내부 보고서 기능.
    2. Elo Rating System
    3. Item Response Theory (IRT)

    각 방법들에 대한 자세한 설명은 Method 섹션 아래에 작성해두었다.

     

    위 세 가지 기능에 대하여 현재 일하고 있는 학원의 학생들을 대상으로 점수를 구해 해당 반 선생님들의 직관과 비교하였을 때, 그리고 학생들이 현재 속한 반의 등급 (S반, A반) 과 비교하였을 때 꽤나 일치하는 것으로 보여 충분히 실효성이 있다고 판단된다.

    Method

    1. 매쓰플랫 내부 보고서 활용

    매쓰플랫의 내부 보고서 생성 기능은 ‘보고서 생성하기’ 버튼을 누르고 기간을 설정하면 자동으로 분석 보고서를 만들어주는 간편한 기능이다. 이 보고서는 크게 아래 네 가지 섹션으로 구성된다.

    매쓰플랫에서 제공하는 내부 보고서 카테고리별 예시 이미지

    1. Overview
      • 등급, 정답률, 난이도, 문항 수를 기간에 따라 그래프로 시각화
      • 설정된 기간 동안의 정답률과 등급을 토대로 학생의 성취도를 하나의 척도로 표현
    2. Achievement
      • 학생이 푼 문제 수, 정답률, 학습 단원 등을 시각화
    3. Results
      • 각 단원별 정답률과 우수 유형, 취약 유형을 분석 및 시각화
    4. Assessment
      • 모든 결과를 종합하여 최종 등급 산출

    위 보고서는 학생별 우수 유형과 취약 유형 등 다양한 정보를 제시한다는 점에서 참고할 가치가 있다. 다만 Overview에서 제공하는 ‘정답률’과 ‘등급’만으로 학생의 실제 성취도를 정확히 파악하기에는 한계가 있다. 예컨대 성취도가 낮은 학생이 쉬운 문제만 풀면 정답률이 높은 것처럼 보이고, 반대로 성취도가 높은 학생이 어려운 문제 위주로 풀면 정답률이 낮아질 수 있기 때문이다. 또한, 대부분의 학생 등급이 2~4에 집중되어 있어 정교한 비교가 어렵다.

    정답률과 학생의 등급으로 나타낸 그래프

     

    예를 들어 학생6 과 학생13은 정답률은 크게 차이 나지 않지만 반의 등급 (학생6: A반, 학생13: S반)도 다르며 직접 가르치며 느낀 실력 차이도 상당하다. 또한 3등급으로 뭉뚱그려진 30% ~ 12% 사이의 학생들도 구분이 어렵다는 한계가 있다.

    2. Elo Rating System

    Elo Rating System은 체스, 스타크래프트, 스포츠 등에서 주로 선수나 플레이어의 실력을 평가하기 위해 사용된다. 예를 들어, 롤(LoL)의 MMR 점수도 Elo Rating System을 기반으로 한다. 각 플레이어에게 레이팅 점수를 부여하고, 경기(매치)를 통해 점수를 점진적으로 갱신하는 방식이다.

    매치가 끝날 때마다 레이팅 점수 $ R $는 아래와 같이 업데이트된다.

     

    $$ R_{new} = R_{old} + K * (\textbf{1}(\text{win}) - E) $$

     

    1. $ \textbf{1}(\text{win}) $ 는 승리시 1, 패배시 0을 나타내는 indicator function이다.
    2. $ E $ 는 상대에게서 승리할 확률을 나타낸다.
    3. $K$ 는 한 경기에서 얻거나 잃을 수 있는 최대 레이팅 점수

    상대의 레이팅 점수가 높아서 이길 승률이 0.2인 경우 그 상대를 이겼다면 레이팅이 크게 오르고, 이길 승률이 0.9인 상대를 이겼다면 레이팅이 거의 오르지 않는다.

    승률 $E$는 두 플레이어 간의 실력 차이를 기반으로 계산된다. 이는 아래와 같이 정의된다.

     

    $$ E = \frac{1}{1 + 10^{\frac{R_{\text{opponent}} - R_{\text{current}}}{400}}} $$

     

    $ R_{\text{opponent}} $는 상대방의 레이팅 점수이며 $ R_{\text{current}} $는 레이팅을 업데이트하는 플레이어 (내 점수) 의 레이팅 점수이다. 승률은 레이팅 점수에 따라 지수 스케일로 계산되므로 승률에 따른 레이팅은 로그 스케일을 갖는다.

    • 실효성 판단

    매치 정의

    레이팅 점수는 ‘두 플레이어’ 간의 매치를 통해 수정된다. 따라서 우리 학원의 학생 실력을 평가하기 위해서는 학생들의 문제 풀이 활동을 두 플레이어 간의 매치로 대응시킬 필요가 있다. Codeforces(알고리즘 경진대회 플랫폼)에서도 문제 하나를 ‘플레이어와 문제 간의 매치’로 보고 레이팅을 산출하는 방식을 활용한다. 본 프로젝트 역시 이 아이디어를 차용하였다.

     

    데이터 준비

    매쓰플랫에서 3개월치 문제 풀이 데이터와 1주차 데이터를 활용했다. 3개월치 데이터를 통해 각 학생의 초기 레이팅을 계산하고, 1월 2주차(1주일간) 데이터를 이용해 레이팅 변화를 살펴보았다. 데이터 형식은 각 학생의 정보, 푼 문제 수, 정답 수로 구성되며 문제 난이도는 ‘하’, ‘중하’, ‘중’, ‘상’, ‘최상’의 5단계로 구분된다.

     

    구현 상세 내용

    학생들의 초기 레이팅은 Codeforces를 참고해 1200으로 설정했다.

    문제 레이팅은 정답률을 기준으로 다음과 같이 가정했다:

    • ‘하’(정답률 90%) → 레이팅 800
    • ‘중하’(정답률 75%) → 레이팅 1000
    • ‘중’(정답률 50%) → 레이팅 1200
    • ‘상’(정답률 25%) → 레이팅 1400
    • ‘최상’(정답률 1%) → 레이팅 1600

    3개월치 데이터를 바탕으로 초기 레이팅을 계산할 때는 $K=2$, 1주간 데이터를 통해 레이팅을 업데이트할 때는 $K=4$ 를 사용했다. 이는 경험적으로 결정한 값이며, 추후 필요에 따라 조정이 가능하다.

     

    결과

    아래 그래프에서 하늘색 막대는 3개월치 데이터를 이용해 산출한 초기 레이팅, 초록색 막대는 1월 2주차 학습 데이터를 반영해 수정한 레이팅 점수다.

    학생4, 학생12, 학생14는 등원한지 얼마 안되서 데이터가 부족하여 부정확한 지표일 가능성이 높다. 아래 두 표와 위 레이팅 점수 분포를 비교하여 실효성을 판단한다.

    3. Item Response Theory (IRT)

    Item response theory (IRT)

    IRT는 각 문항별 피시험자들의 ability 와 시험 전반적인 피시험자들의 ability 간의 관계에 기반한 테스트에 관한 이론이다. 따라서 IRT는 테스트나 설문조사 등의 결과를 scoring 하는데 사용된다. IRT에서 item 이라는 단어는 오지선다와 같은 문제 뿐만 아니라 일반적인 설문 (e.g. 선호도 조사) 에도 적용할 수 있기 때문에 generic한 의미를 갖는다.

    피시험자의 능력을 측정한다고 했을 때 IRT는 피시험자의 능력, $\theta$ 와 문항의 난이도, $b$ 가 주어졌을 때 피시험자가 해당 문제 (item) 을 맞출 확률을 나타낼 수 있다. 이를 Item Response Function (IRF) 라하고 아래와 같이 정의할 수 있다. $i$번째 문제를 $\theta$의 ability를 갖는 피시험자가 맞출 확률은 아래와 같이 정의할 수 있다.

     

    $$ p_{i}(\theta) = c_i + \frac{1-c_i}{1 + e^{-a_i(\theta - b_i)}} $$

     

    $c_i$는 해당 문항을 찍어서 (pseudo-guessing) 맞출 확률을 의미한다. $a_i$는 변별력 (discrimination) 을 의미하고 $b_i$는 난이도 (difficulty)를 의미한다. 하나의 item에 대하여 3개의 파라미터로 확률을 측정하기 때문에 IRF 중에서도 이를 Three parameter logistic model (3PL) 이라한다.

    또 다른 IRF로 가우시안의 CDF를 활용하는 방법이 있다. 이러한 방법은 주로 normal ogive model이라고 불린다. 2개의 파라미터를 갖는 IRF는 아래와 같이 정의된다.

     

    $$ p_{i}(\theta) = \displaystyle\Phi(\frac{\theta - b_i}{a_i}) $$

     

    $\Phi$는 가우시안의 CDF이다.

    평가

    학생들의 실력을 평가하기 위해 본 보고서에서는 IRF 중에서도 Rasch Model, (1PL) 을 사용한다. $a_i, c_i$ 는 그냥 제껴두고 난이도 파라미터, $b_i$만을 가지고 학생들의 실력을 평가하겠다는 의미이다. 지금 사용할 수 있는 데이터도 각 난이도별 학생들의 틀리고 맞은 점수밖에 없기 때문에 어쩔 수 없는 선택이기도 하다.

    Loss 함수는 NLL을 활용하였다. NLL은 아래와 같이 정의된다.

     

    $$ \displaystyle\sum_{s\in S}\sum_{p \in P} -log(\sigma(\theta_{s} - d_p)) $$

     

    $S$는 모든 학생들의 집합이고 $P$는 문제들의 집합이다. $\theta_s, d_p$는 각각 학생 $s$의 ability와 문제, $p$의 난이도 (difficulty) 를 의미한다. IRF, $\sigma$는 $a_i$와 $c_i$ 를 각각 $1, 0$으로 고정한 Rasch model을 활용하였다. 각 문제별 난이도는 실제로는 최하, 하, 중, 상, 최상으로 나누어져있다. 이를 각각 $\{ -2, -1, 0, 1, 2 \}$ 로 두어 계산하였다.

    각 학생들의 ability, $\theta_s$를 구하기 위해 optimization method로는 scipy의 L-BFGS-B를 활용하였다.

     

    1~10번은 A반, 11~16번은 S반 학생들이다. 최근 학원에 등록한 학생_12번을 제외하고는 직관과 거의 일치하도록 잘 평가가 된 것을 확인할 수 있었다.

    Evaluation

    이로 인해 얻을 수 있는 기대효과는 아래와 같다.

    • 학생들이 실시간에 가까운 피드백을 얻을 수 있어 자기 주도적 학습에 도움이 된다.
    • 학교 시험 및 반배치 고사 등 장기적 관점의 평가와 달리, 꾸준한 누적 데이터를 통해 신뢰도 높은 정량적 지표를 확보할 수 있다.
    • 문제 난이도별 정답률을 기반으로 성취도 편차를 식별할 수 있으므로, 맞춤형 개별 지도가 용이해진다.
    • 학생·학부모에게 학습 진단 및 향상도를 구체적으로 제시함으로써 학원 운영 및 홍보에도 도움이 된다.

    P.S.

    재밌게 만들어가서 강사님께 보여드렸다. 꽤나 흥미로워 하셨지만 실제로 이를 바탕으로 학생들을 구분하기에는 무리가 있어 보조적인 지표로만은 사용할 수 있다고 하셨다. (오버엔지니어링이었던 셈..) 

     

    역시 가장 중요한 것은 문제 정의인 것 같다.

    반응형
Designed by Tistory.