(2021/02/20 작성)
석사과정을 추천 시스템을 주로 연구하며 보냈고 얼마 전 마무리지었다. 짧은 식견에 기반한 개인적인 의견이지만, 추천 시스템 연구는 빠르게 변화했고 현재도 변화중이며 다음 스텝으로 갈 준비를 하는 듯 하다. 지금까지 평점 예측, Top-N 추천을 주제로 열심히 NDCG, Precision 등의 평가지표를 향상시켜러고 열심히 모델링을 했다면, 이제는 "정말 딥러닝으로 발전을 한걸까?", "현업에서도 이러한 발전이 일관적으로 도움이 될까?", "현업과 같은 형태로 모델링 할 수는 없을까?" 등 숨을 고르며 다음을 바라보고 있다.
얼마 전, 클럽하우스라는 어플에 친구의 초대를 받아 가입했다. 많은 대단하신 분들의 이야기를 들었지만, 인상적이었던 것 중 하나는 단연 추천 시스템에 관한 논의였다. 여러가지 논의 중 이 글에서는 "추천 시스템의 다음 스텝은 무엇인가?"를 주제로 듣고 생각한 내용을 정리해본다.
추천 시스템은 사용자와 아이템 그리고 둘 간의 상호작용에 의한 데이터를 활용하여 둘 간의 매칭을 예측한다. 예를 들어, Matrix Factorization은 사용자와 아이템에 고유한 임베딩을 부여하고 둘 간의 Dot product를 통해 추천 점수를 계산한다. 여기서 한가지 주요한 점은 "사용자와 아이템에 고유한 임베딩"이다. 모델에 따라 다르지만, 현재 대부분의 추천 모델은 사용자나 아이템 적어도 하나에 대한 표현을 정의하고 학습하기를 요구한다. 그 결과, 새로운 사용자와 아이템에 대해서는 대응하기 어렵다. 사용자와 아이템이 실시간으로 추가, 삭제되고 변화하는 서비스에서는 이에 대한 대책이 요구된다.
(참고: https://www.slideshare.net/butest/an-analysis-of-graph-cut-size-for-transductive-learning)
위와 같이 사용자와 아이템으로 이루어진 하나의 그래프안에서 학습과 예측이 이루어지는 것을 Transductive 라고 한다. 이와 반대로, 새로운 그래프 (새로운 사용자와 아이템)을 다룰 수 있는 것은 Inductive 라고 한다. (자세한, 정확한 설명은 생략) Inductive learning에 대한 요구는 서비스에 필수적이며 이것이 Transductive만큼의 성능을 낼 수 있다면 서비스에 큰 도움이 되지 않을까 싶다.
최근 Subgraph 패턴을 활용한 Inductive GNN 모델이 제안되었는데, 비슷한 생각을 하지 않았나 싶다.
자연어 처리의 BERT, 컴퓨터 비전의 VGG, ResNet과 같은 추천 시스템의 Large-scale + Pre-trained 모델이 나올 수 있을까? 추천 시스템의 많은 모델이 복잡도를 높이며 성능을 높였지만, 개인적으로 여전히 작다고 생각한다. 또한, 단순한 1 layer 오토인코더로도 준수한 성능이 나온다. 이는 서비스에서 얻을 수 있는 대규모 데이터에 비해 과히 단순하지 않나 싶다. 물론 서비스에는 더욱 복잡하고 다양한 모델들이 사용될테지만, BERT 대비 작은 모델들의 조합이 아닐까 예상한다.
여러가지 종류의 데이터 (메타데이터, 상호작용 등)를 가지고 추천을 위해 학습한 큰 모델이 존재하고 Domain에 맞게 fine-tuning 만으로 빠르고 정확하게 추천이 가능할까? 사용자와 아이템을 정의하고 각자를 빠르게 Align하는 능력 혹은 위 Inductive learning과 연결하여 subgraph 패턴을 빠르게 파악하는 능력을 학습한다면, 가용 데이터를 충분히 활용하면서 domain shift를 하여도 유효하게 동작하지 않을까 싶다.
추천 시스템 분야의 일가견이 있거나 석학은 아니지만, 분야가 아주 중요한 시기를 겪고 있다고 생각한다. 이 중 하나라도 이루어지는 날이 올까?