Typed Entity Marker
모델의 알고리즘은 같아도 학습한 데이터가 다르다면 완전 다른 모델이기 때문에 논문과 같은 결과를 낼 수는 없다.
현재 진행중인 모델과 task에서는 Type Entity Marker가 유의미하다 라고 결론을 내릴 수 있다.
TAPT
DAPT는 현존하는 한국어 Relation Extraction task 데이터를 가지고 pretrain하는 것
최근 논문들에서는 TAPT를 오래 학습하면 catastrophe forgetting이라고 원래 LM이 가지고 있는 지식들을 잊어버리는 현상들이 목격되었다.
데이터에 따라 다르지만 1 ~ 5 epoch이 좋은 경우가 많다.
TAPT는 다운스트림 Task를 적용해보기 전까지는 loss값만으로는 비교하기가 어렵다. epoch이 높을 수록 loss는 낮아지지만 해당 다운스트림 Task에서는 성능이 더 낮을 수 있다.
Augmentation
- AEDA나 EDA같은 방법은 text classification에서 나온 알고리즘이다.
현재 task는 relation을 찾는 문제이기 때문에 AEDA 같이 단순히 punctuation을 추가하는 것으로 성능 향상을 기대하기 어렵다.
- 문장 의미를 보존하면서 하는 Augmentation 보다는 맥락은 비슷하지만 의미를 바꾸는 Augmentation로 diversity가 있는 Augmentation을 사용하는 것이 좋을 것 같다.
- Augmentation은 많이 만들어도 쓸모있는 문장들만 골라내는 필터링 과정이 필요하다.
- 특정 자리를 mask로 대치하고 mlm을 사용해서 그 자리에 들어갈 단어를 고른 뒤 original 문장과 대체된 문장의 cos similarity가 몇점 이상일 때 해당 문장을 사용한다.
- Relation Extraction에서는 어떻게 증강을 하는지 찾아볼 필요가 있다.
- 이 알고리즘을 썼을 때 어떤 유형의 문제를 잘 맞추는지, 못 맞추는지 분석을 하는 것이 중요하다.
PER을 계속 분류를 잘 하지 못하는데 전체적인 성능이 높아졌다면 PER를 잘 풀 수 있도록 해당 레이블에 대한 증강을 추가한다던가 하는 가설을 추가하는 방식으로 진행하여야 한다.
그냥 token과 special token의 차이
token과 special token의 목적이 다르다.
special token은 일반 token과 다르다는 것을 명시해주기 위해 사용하는 것이다.
[CLS]나 [SEP] 같은 special token은 모든 sentence에 다 나오는 것이 정석이다.
input text는 문장마다 달라지지만 special token은 모든 sentence가 최대한 다 가지고 있을 수 있도록 특징을 부여하다보니 훨씬 더 많이 등장하게 되고 등장하는 위치가 학습을 하면서 반영을 많이 하게 된다. 그래서 special token으로서의 역할을 하게 되는 것이라 따로 special token에 대한 특별한 embedding layer를 주지 않더라도 학습을 할 때 이미 매번 나오는 special token의 위치까지 학습이 되기를 기대하는 것이다.
LSTM을 마지막 layer에 붙여주는 이유
LSTM을 마지막 layer에 붙여줄 때는 보통 순서 정보가 중요하여 그 정보를 반영하고 싶을 때이다.
RE task에서는 순서가 중요하지 않아서 해당 가설을 세우기에는 타당하지 않다.