[AI Tech] 네이버 부스트 캠프 16주차 회고

15주차 리마인드

대회 피드백

이번주는 계획했던 대로 Context 정보를 활용하는 Conntext-Aware Recommendation(CAR)모델에 대해 공부하고 이를 기반을 모델을 구현해보았다.
모델링을 통해 실험을 진행했으며, 파이토치 탬플릿 형태로 모듈화를 진행했다. 또한 Recbole 라이브러리를 활용해서 대회 데이터를 활용해서 실험을 진행해보았다.(이런 편한 라이브러리를 왜 지금 써보는 걸까 후회막심…)
구현한 모델들은 FM, FFM, DeepFM이며, 성능은 내가 기대한 것 이상으로 나오지는 않았다. 데이터를 다르게 전처리하고 돌려보아도 기대한 것만큼의 성능을 보이지는 않았다.
비교적으로 이번 대회는 AutoEncoder기반의 모델 혹은 간단하게 MF와 같은 행렬 분해 기반의 모델들이 괜찮은 성능을 보였다.
나름대로 분석을 해보면 이번대회은 무비렌즈 데이터를 가공한 데이터로, 정확히 말하면 기존의 평점데이터 중 상위 데이터만을 1로 표기한 implicit 형태의 데이터이다. 또한 시퀀스를 랜덤하게 잘라서 특성 시퀀스부터 랜덤하게 9개를 지우고 마지막 시청 영화 역시 지우고 이것을 학습데이터로 제공하여 지워진 데이터 즉 영화를 추천해야하는 대회였다.
무비렌즈 데이터는 원래라면 Dense한 형태의 데이터이다(보통 논문을 읽으면 무비렌즈 데이터는 Dense한 데이터로 분류를 하고 실험이 진행되어있다)하지만 대회 동안 제공된 데이터는 implicit형태로 가공한다고 일정 평점 이하의 데이터들을 제거하는 과정을 가졌던 것 같다. 즉 이로 인해 Dense한 형태에서 Sparse한 형태로 변형된 것이다. 그렇게 때문에 CF기반 모델을이 성능을 못낸 것이라고 생각된다. 그렇기 때문에 Sparse한 데이터에 강점을 가지고 지워진 데이터들을 복원하는 능력을 가진 AutoEncoder기반의 모델들이 좋은 성능을 낸것이다. ㅎㅎ 물론 내가 세운 가설과 결론이 틀렸을 수 도 있다. 하지만 내가 배운 내용과 이번 대회를 하면서 느낀점들을 종합하면 위와 같은 결론이 나온다.

이번 프로젝트 마스터님 질의응답 정리

실제로 산업에는 2-stage를 이용하는데요, competition에도 이를 활용할 수 있다. ex) Retrieval 후 > Ranking 그럼에도 Retrieval 단계에서 모델을 여러개 썼다면, 중복 처리나 중요도에 따른 drop도 필요하다. 실무에서는, 강의에서 나온 것처럼 2-stage,
1단계 ) 벡터 서치 기반으로 검색 범위를 줄이고
2단계 )ranking에서 XGboost, SASRec 등을 활용함
배치 서빙을 진행하다면, 앙상블 활용한다. Real-Time을 쓴다면 앙상블을 잘 활용하지 않는다고 한다.

주간 회고

휴… 길고 길었던 Movie Recommendation 대회가 끝났다. 우리 팀은 이번 대회를 Public 3등, Private 2등으로 마무리했다.
최종프로젝트 기획하고 준비한다고 바빴을 텐데 대회 끝까지 참여하고 노력한 나와 우리팀 동료들에게 감사와 고마움을 전하고 싶다. image
항상 원숭이(성능 안좋은 모델…) 학습시켜서 가져와도 고생했다고 해주는 우리 팀 동료들 감사합니다ㅎㅎ.
이제 최종프로젝트 남았다. 비록 많이 지쳤지만 좋은 팀 동료들과 함께라면 끝까지 완주할 수 있을 것 같다는 강한 확신이 든다. 최종프로젝트도 화이팅!!!

Categories:

Updated:

Leave a comment