boostcampaitech4lv23nlp1 / final-project-level3-nlp-03

Multi-Modal Model for DocVQA(Document Visual Question Answering)
3 stars 0 forks source link

Token Classification labeling algorithm #32

Open Ssunbell opened 1 year ago

Ssunbell commented 1 year ago

Why Token Classification

QA 문제로 정의할 경우 모델이 산출한 logit 값들 중에서 가장 값이 높은 두 로짓값을 시작 인덱스, 끝 인덱스로 판단하고 시작 인덱스와 끝 인덱스만큼 슬라이싱하여 예측값으로 산정한다.

이 경우 발생하는 문제점이 OCR이 왼쪽에서 오른쪽으로 단어들을 긁어오면서 정답과 관련이 없는 단어가 섞여 들어간다는 것이 문제점이다.

Untitled-6

위의 이미지를 보면 정답은 4TH QTR 89 인 반면에, 예측 값은 QTR 89이다.

정답의 위치는 정확히 맞췄지만, OCR 결과에서는 4TH 다음에 QTR 89가 아닌 1ST가 오게 된다.

따라서 토큰을 하나하나 맞추는 토큰 분류 문제로 재정의하여 멀리 떨어져 있더라도 정답이라고 가져올 수 있도록 만든다.

labeling algorithm

토큰 분류를 위해서는 각 토큰마다 정답인지 아닌지 구분해주는 라벨링이 필요하다. 정답 단어는 우리가 알고 있으므로 words 리스트 안에서 해당 단어가 정답인지 아닌지 라벨링해주는 알고리즘이 필요하다. 하지만 How?

Clustering

위의 이미지를 보면 단어 리스트상에서는 저멀리 떨어져있지만, 이미지상에서는 가까이에 위치한다. 즉, 이미지의 좌표값을 feature값으로 설정하여 정답 후보 단어들을 클러스터링하게 된다면 가장 잘 모여있는 후보 단어들이 정답에 근접할 것이다.

if not the only answer?

만약 클러스터링을 진행하고 정답이라고 여겨질만한 후보가 2개 이상이라면 이때는 question 안에 있는 핵심 단어들과 얼마나 가까이에 있는지를 판단하여 가까이에 위치한 정답 후보 단어들이 정답이라고 판단할 수 밖에는 없다.