Skip to content
Guides5 min read

오차 막대가 붙은 라벨: 주석을 위한 문항반응이론

다수결은 어노테이터가 알려 준 것의 대부분을 버립니다. 문항반응이론은 모든 라벨에 사후확률과 신뢰구간을 붙이고, 어노테이터 능력과 항목 난이도를 추정하며, 망가진 코드북 항목을 찾아냅니다. 골드 라벨도 LLM도 없이 말입니다.

Potato Team

다수결은 모든 어노테이터를 똑같이 믿을 만하다고 보고 모든 항목을 똑같이 어렵다고 보며, 확률이 아니라 표를 셈해 보고합니다. 문항반응이론(IRT)은 두 가정을 모두 버립니다. 일치 양상만으로 어노테이터별 능력과 항목별 난이도를 추정한 다음, 모든 라벨을 신뢰구간이 붙은 사후확률로 보고합니다. 골드 라벨도 LLM도 필요하지 않습니다. Potato에서는 이것이 심리측정 엔진이며, 주석이 들어오는 동안 실시간으로 돌아갑니다.

어노테이터 세 명이 한 항목에 라벨을 붙입니다. 둘은 sarcastic, 하나는 sincere라고 합니다. 다수결은 sarcastic이라 판정하고 넘어가며, 데이터셋에는 세 명이 모두 일치한 항목과 정확히 똑같은 확신으로 그 결과가 기록됩니다.

이것은 정보를 버리는 일입니다. 반대한 사람이 가장 믿을 만한 어노테이터일 수도 있습니다. 그 항목이 누구에게나 어려운 항목일 수도 있습니다. 표를 세는 순간 두 사실은 모두 사라집니다.

신뢰구간과 함께 실시간으로 추정되는 어노테이터 능력. 모든 라벨이 단순 투표가 아니라 사후확률을 갖게 됩니다.신뢰구간이 붙은 어노테이터 능력

문항반응이론이란 무엇인가

문항반응이론은 심리측정학에서 나왔고, 원래 표준화 시험을 채점하려고 만들어졌습니다. 핵심은 시험 하나가 두 가지를 동시에 알려 준다는 점입니다. 응시자가 얼마나 유능한지, 그리고 문항이 얼마나 어려운지입니다. 둘은 서로를 제약하기 때문에, 응답 양상만 가지고도 함께 추정할 수 있습니다. 유능한 학생이 틀리는 문항은 어려운 문항입니다. 어려운 문항을 맞히는 학생은 유능한 학생입니다.

주석도 모양이 같습니다. 어노테이터가 응시자이고, 항목이 문항이며, 정답표는 아무도 갖고 있지 않습니다.

Potato는 GLAD(Whitehill et al. 2009)의 다중 클래스 일반화를 적합하며, 세 가지를 함께 추정합니다.

  • 각 항목의 참 라벨을 확률분포로
  • 각 어노테이터의 능력(θ)을 표준오차와 함께
  • 각 항목의 난이도, 그리고 항목별 변별도 진단

적합은 결정론적이고 주석 연구 규모에서는 밀리초 단위로 끝나므로, 사후 배치 작업이 아니라 계속 돌아가는 방식으로 쓸 수 있습니다.

켜기

yaml
psychometrics:
  enabled: true
  schema: sarcasm
  confidence_threshold: 0.95
  min_annotators_per_item: 2

이것만으로 분석 레이어가 생깁니다. 내보내기는 이것에서

text
sarcastic    (2 of 3 votes)

이것으로 바뀝니다.

text
sarcastic    p = 0.94 [0.88 – 0.97]

이 확률은 모델의 사후확률로, 몇 명이 투표했는지만이 아니라 누가 투표했는지에 가중치를 둡니다. 구간은 능력 추정치에 대한 민감도 범위입니다.

후속 작업에서 이 숫자는 가지고 있을 만합니다. 소프트 라벨로 학습해도 되고, 평가 집합을 신뢰도 하한 위의 항목으로 걸러도 되고, 확률이 낮은 항목을 조용히 잘못 붙인 라벨이 아니라 정말로 모호한 항목으로 다뤄도 됩니다. 불일치가 평균으로 지워야 할 잡음이기를 그만두는 셈인데, 이 대목은 불일치는 잡음이 아니라 신호다와 함께 읽을 만합니다.

어노테이터 능력, 정직하게 제시하기

능력은 일치 양상에서 추정합니다. 1.0은 새로 온 사람의 사전값이고, 0은 그 어노테이터의 라벨에 정보가 담겨 있지 않다는 뜻이며, 음수는 체계적으로 틀린다는 뜻입니다.

모든 추정치에는 표준오차가 함께 붙고, 이쪽이 점추정치보다 더 중요합니다. 라벨이 열두 개뿐인 어노테이터는 오차 막대가 넓고, 대시보드도 그것을 넓게 그립니다. 넓은 오차 막대를 근거로 인사 결정을 내리지 마십시오. 표준오차는 근사값(최빈값에서의 Fisher 정보량)이며 계산 방식상 다소 낙관적입니다. 숫자를 과하게 읽는 일을 막으려고 있는 것이지, 누군가를 자르라고 있는 것이 아닙니다.

범주형 스킴 전반에서 더 단순한 역량 지표를 원한다면 MACE가 손위 사촌이고 여전히 좋은 도구입니다. 차이는 MACE가 배치 분석으로 돌아가는 반면 심리측정은 할당 루프 안에 앉아 연구가 진행되는 동안 실제로 움직인다는 점입니다.

코드북 문제 탐지기

사람들이 놀라는 대목이 이겁니다.

모델은 난이도와 나란히 변별도를 추정합니다. 어떤 항목에서 어노테이터의 능력이 합의와 일치하는 정도와 상관을 갖는지 보는 것입니다. 보통은 상관이 있습니다. 능력 있는 어노테이터는 최종 답과 더 자주 일치하고, 그게 대략 “능력 있다”의 뜻이기도 합니다.

변별도가 크게 음수로 가면 뭔가 잘못된 것입니다. 가장 뛰어난 어노테이터들이 그 항목에서 다수와 체계적으로 어긋나고 있다는 뜻입니다. 가장 그럴듯한 설명은 최고의 어노테이터들이 갑자기 나빠졌다는 것이 아닙니다. 그 사례에서 지침이 모호하거나 틀렸고, 꼼꼼한 어노테이터들이 그것을 알아채고 있다는 것입니다.

Potato는 이런 항목을 “코드북 문제로 의심됨” 아래에 모아 보여줍니다. 대개 연구 전체에서 가치가 가장 높은 항목인데, 하나하나가 사람의 결함이 아니라 도구의 결함이기 때문입니다. 지침을 고치고 다시 주석하십시오. 팀이 함께 이 항목들을 정리하기에는 노밍 룸이 좋은 자리입니다.

값어치가 있는 곳에 주석 예산 쓰기

“항상 항목당 어노테이터 세 명”이라는 고정 중복 규칙은 모두가 동의하는 항목과 팀이 정확히 반으로 갈리는 항목에 같은 돈을 씁니다. 거꾸로 된 얘기입니다.

yaml
assignment_strategy: psychometric
num_annotators_per_item: 4
psychometrics:
  enabled: true
  confidence_threshold: 0.95
  cost_per_judgment: 0.08

이렇게 해 두면 어노테이터가 작업을 요청할 때 Potato가 남은 항목을 그 어노테이터그 항목에 라벨을 붙일 때의 기대 정보 이득으로 순위를 매깁니다. 사후확률이 이미 confidence_threshold를 넘은 항목은 아예 배포되지 않습니다. 대시보드는 사지 않아도 됐던 판단의 수를 세고, cost_per_judgment를 설정해 두면 금액으로도 환산합니다.

켜기 전에 알아 둘 유의점이 둘 있습니다.

  • 콜드 스타트. 라벨이 충분히 쌓이기 전까지는 할당이 무작위로 되돌아갑니다. 어노테이터들이 겹치지 않으면 모델은 능력과 난이도를 갈라낼 수 없고, 아닌 척하지도 않습니다. 대신 대시보드에 예열 중 미터가 표시됩니다.
  • 배치 처리. 순위는 대기열이 짧을 때 가장 최신입니다. 어노테이터 한 명에게 200개짜리 배치를 한꺼번에 넘기면 적응성이 옅어지는데, 그 라벨 대부분이 생기기 전에 순위가 계산됐기 때문입니다.

돈을 쓰기 전에 중복도 정하기

모든 프로젝트가 어림짐작으로 넘어가는 질문이 항목당 어노테이터가 몇 명 필요한가입니다. 연구 설계 도구는 그 질문에 몬테카를로 시뮬레이션으로 답합니다.

bash
python -m potato.psychometrics.design --items 500 --accuracy 0.75 \
    --classes 3 --target-ci 0.10 --cost 0.08
text
ann/item   alpha     95% interval   width  majority acc  judgments       cost
       2   0.392 [ 0.330,  0.439]   0.109         0.751       1000      80.00
       3   0.388 [ 0.338,  0.431]   0.093         0.864       1500     120.00  <- recommended

권장값은 Krippendorff α의 95% 구간이 목표치보다 여전히 좁게 나오는 가장 저렴한 중복도입니다. --accuracy 입력값은 짐작하지 말고 작은 파일럿으로 재야 하는 값입니다.

같은 계산을 브라우저에서도 돌릴 수 있습니다. 질문 하나에 답하자고 뭔가를 설치하고 싶지 않다면 말입니다.

이것이 하지 못하는 일

IRT는 마법이 아닙니다. 정직한 한계 몇 가지입니다.

  • 단일 선택 범주형 스킴, 즉 radiolikert를 모델링합니다. 다중 선택은 다루지 않습니다.
  • 어노테이터가 겹쳐야 합니다. 모든 항목을 서로 다른 사람이 라벨링한다면 배울 만한 일치 구조가 없고, 모델은 아직 예열 중이라고 알려 줄 것입니다.
  • 어노테이터가 한 명이거나 어디서나 만장일치라면 적합은 설계상 퇴화합니다. 버그가 아니라 올바른 동작입니다.

그 대가로 얻는 것은 라벨마다 자기 불확실성을 지닌 데이터셋, 이해할 수 있는 어노테이터 풀, 그리고 코드북이 망가진 지점의 목록입니다.

더 읽을거리