Project
오늘의 목표 및 진척상황
- Parallel Model 구현 및 실험
- Item-User Attention Model 구현 및 실험
- Last Query Model 적용 및 실험
직면했던 문제와 학습한 내용
- Parallel Model 구현 및 실험
현재 Team 내에서 1D Conv Layer를 활용하는 방법이 좋은 성능을 보이고 있다. 이에, Conv Layer를 접목시킨 Model을 구상하고 있었는데, 팀원의 제안으로 GRU와 병렬적으로 계산하는 Model을 구상하게 됐다.
먼저, 나는 Conv 연산을 Sequence Data에 맞게, 각 시간 순으로 진행하도록 구상했다. Kernel의 크기에 맞도록 Pre Padding을 주었고, Sequence Length 축으로 Filter가 움직일 수 있도록 했다.
Conv Layer는 여러개의 크기로 구성하여, 각 크기에서 특징 추출을 하도록 했다. 동시에 GRU에서도 동일하게 Sequence 연산을 수행토록 구성했다. 최종적으로는, 두 결과를 Concat하여 Logit을 구하도록 Model을 구현했다.
이외에도, Multi Head Attention을 추가한 Model도 구성했으나, 이 경우에는 심하게 과적합되는 경향을 확인할 수 있었다.
Validation 상에서는 위 모델이 더 좋은 Score를 보였으나, Public Score상에서는 GRU Attention Model이 더 높은 성능을 보였다.
- Item-User Attention Model 구현 및 실험
Item의 특성과 User의 특성이 다르다는 생각에서 출발했다. Item은 시간과 관계없이 동일한 특성을 지니고 있고, User는 시간에 따라 특성이 달라지는 것이라 가정했다. 이에, Item의 Embedding을 따로 구성하고, User의 Embedding도 따로 구성하는 것이 좋을 것이라 생각했다.
위 두 Embedding을 구한 후, Multi Head Attention을 통해 가중합을 하고, 두 Embedding을 Skip Connection하는 것으로 Model을 구현했다.
실제로 꽤 준수한 성능을 보였으나, 마찬가지로 과적합의 문제가 생겼고, 다른 Model 실험에 밀리게 되었다.
- Last Query Model 적용 및 실험
Attention이 추가되는 Model은 계속 과적합의 문제를 벗어날 수 없었다. 이에, 마지막 문제만을 Target으로 하고, 해당 문제에 대한 Query만을 사용하는 Self Attention Model을 적용해보았다.
Parallel 구조에 Last Query Attention Module을 붙인 형태로 구현했는데, 마찬가지로 과적합의 문제가 생겼다.
과적합의 문제가 지속적으로 발생하고 있어, Model의 경량화와 Drop out 등의 필요성이 더욱 중요하다고 생각된다.
추가로 진행 할 사항
- 다양한 Model 실험
- Stacking Code 적용
'네이버 부스트캠프 AI Tech' 카테고리의 다른 글
[P4] Sunday 13 June (21.06.13) (0) | 2021.06.26 |
---|---|
[P4] Saturday 12 June (21.06.12) (0) | 2021.06.26 |
[P4] Day 92 (21.06.10) (0) | 2021.06.26 |
[P4] Day 91 (21.06.09) (0) | 2021.06.26 |
[P4] Day 90 (21.06.08) (0) | 2021.06.26 |
Uploaded by Notion2Tistory v1.1.0