Level 2의 두 번째 대회인 RE 데이터 제작 대회가 끝났다. 이번 대회는 팀별로 리더보드 점수를 높이는 것이 아니라, 팀별 주제에 맞게 주어진 텍스트 데이터로 관계추출(Relation Extraction) 데이터를 구축하는 것이 목표였다. 이번에는 변성윤 마스터님께서 소개해주신 KPT 회고에 따라 작성해 보았다.
위키피디아에서 러시아-우크라이나 전쟁 키워드로 수집한 데이터로 관계 추출(Relation Extraction) 데이터셋을 구축했다. KLUE 관계추출 데이터를 기반으로 주제로 정한 텍스트 데이터에 맞게 relation map을 정의하고 tagging을 진행하기 위한 guideline을 작성했다.
프로젝트 정리 링크
전반적인 데이터 구축 과정은 부스트캠프에서 제시한 타임라인을 따랐지만, 파일럿 태깅은 조금 다르게 진행했다. 제시한 타임라인에서는 본 태깅을 진행한 이후에 파일럿 태깅을 통해 IAA를 계산하는 순서였다. 하지만 파일럿 태깅을 통해 팀원(평가자)들간의 기준으로 먼저 맞춰야 한다고 생각해 1차 파일럿 태깅
→ IAA 측정 및 가이드라인 수정
→ 본 태깅
→ 2차 파일럿 태깅
→ 최종 IAA 측정
순서로 진행했다. 파일럿 태깅을 2번 진행하면서 본 태깅 시 발생할 의문들을 미리 조율해 수월하게 태깅을 진행할 수 있었다.
데이터 구축에는 정해진 정답이 없기 때문에 팀원들끼리 의견을 조율해 데이터의 특성을 잘 살리면서 일관성 있는 데이터셋을 만드는 것이 중요하다. 동일한 문장을 보고도 다른 entity, relation을 정의할 수 있어 팀원들끼리 의견을 조율하고 합의점을 찾는데 상당한 시간을 쏟았다. 초반에는 논리적으로 더 타당한 relation을 찾고 정의하기 위해 회의하는 시간이 길었는데, 후반에는 2가지 방법으로 회의 시간을 단축했다.
- 파일럿 태깅 시에 서로 다르게 태깅을 한 경우에는 더 많은 팀원의 동의를 얻은 relation으로 태깅을 진행했다.
- 서로 주장하는 relation이 다를 때 둘 다 타당한 근거를 가지는 경우에는 러시아-우크라이나 전쟁 주제에 더 연관되는 relation에 초점을 맞춰 태깅을 진행했다.
모든 관계 추출 데이터셋에 해당하는 문제이지만 no_relation
데이터는 너무 많고, 다른 클래스의 데이터는 너무 적은 데이터 불균형 문제가 발생했다. "클래스별 데이터 개수를 고려하면서 태깅을 진행했다면 불균형이 심하지 않은 데이터셋을 제작할 수 있지 않을까?"
하는 아쉬움이 있다. 하지만 동시에 "특정 클래스의 데이터가 많이 존재하는 것 또한 해당 데이터의 특성이지 않을까?" 생각한다.
전에 OCR 데이터를 라벨링해본 경험이 있어 데이터 제작을 단순히 라벨링 작업이라고 생각했는데 큰 오산이었다. 동일한 데이터에 대해 서로 다른 entity와 relation을 정의할 수 있고 데이터에 다양한 relation이 존재해 합의점을 찾는데 상당한 시간을 쏟았다. 팀원들끼리 왜 해당 관계로 태깅했는지 토의하면서 주제에 더 관련된 데이터를 구축할 수 있는 방향으로 태깅을 진행했다.
벤치마크 데이터셋을 가져와 사용하거나 조금 변경하는 정도가 전부였는데, 이번 데이터 제작 대회를 통해 전반적인 데이터셋 제작 과정을 알게 되었고, 오픈 데이터셋의 소중함을 더 느꼈다.
섬세킹으로 뽑혀서 마스터 클래스 시간에 우리 팀이 어떤 부분을 중점적으로, 어떻게 데이터 제작을 수행했는지 발표할 기회를 가졌다. 사실 마스터님과 조교님들의 주관적인 기준으로 뽑혔고, 더 복잡한 데이터로 대회를 수행한 팀도 있기 때문에 객관적으로 봤을 때는 우리 팀이 월등히 우수하다고 보기에는 무리가 있다고 생각한다.
하지만 우리 팀 첫 발표였고, 팀원들과 함께 정리하면서 팀워크를 돈독히 할 수 있는 시간이었다. 요즘 점점 공부량은 많아지는데 무엇 하나 제대로 완성하지 못하는 것 같아 지친 상태였는데 이번 대회에서 '괜찮아, 잘 하고 있어'라고 응원받은 기분이었다.