해당 포스팅은 네이버 부스트캠프 P-stage를 위해 개인 학습 내용을 정리했습니다.
1. 목표
- R-bert 모델의 fc layer 다양하게 적용해보기
- 다양한 모델 앙상블
2. 진행 내용
1) R-bert 모델의 fc layer 다양하게 적용해보기
fc layer input 형태 | 정확도 |
[cls, entity1, entity2] | 78.2 |
[cls, entity1, entity2, entity1*entity2] | 76.5 |
[cls, entity1, entity2, |entity1-entity2|] | 78.1 |
[cls*entity1, cls*entity2] | 76.2 |
[cls*entity1, cls*entity2, entity1*entity2] | 76.2 |
최초의 R-bert에서 제안한 방법이 가장 성능이 좋았습니다. entity1 - entity2를 절대값해준 것을 포함했을 때에는 살짝 감소한 모습을 확인할 수 있었습니다. entity간의 elementwise가 좋은 성능을 나타내지 못한 이유는 일단 entity1과 entity2가 fc layer를 통해서 만들어지기 때문에, 음수부터 양수까지 굉장히 다양한 원소를 가지고 있습니다. 그렇기 때문에 곱했을 때, 문제가 발생한 것이라고 생각이 듭니다. 만약 이걸 적용해보고 싶었다면, activation layer에서 변경해주면 좋았을 것 같습니다.
2) 다양한 모델 앙상블
위에서 언급했던 방법들과 다양한 데이터셋에 적용한 모델의 csv 파일로 하드보팅하는 형태로 모델 앙상블했습니다. 결과는 기존 최고 성능인 78.2에서 79.8까지 향상되었습니다.
3. 회고
역시 논문의 [cls, entity1, entity2]가 가장 좋은 성능을 가졌습니다. 그래도 많은 시도를 해볼 수 있었고, 조금만 더 고민해보고 뜯었다면 더 좋은 결과가 있을 수도 있었을 것 같습니다. 다음에는 꼭 더 많은 시도를 해보고 싶습니다. 앙상블은 항상 단일 모델에 비해 좋은 결과를 내는 것 같습니다. 하드보팅말고 soft보팅도 해보고 싶었지만 모델 파일이 워낙 커서 다 지워버리는 바람에 사용할 수 없어서 아쉬웠습니다. 그렇게 리더보드는 49등으로 마무리했습니다.