본문 바로가기

논문 정리

Deep Learning 기반의 추천 시스템 개요: Deep Learning Based Recommender System- A Survey and New Perspectives

Deep Learning 기반의 추천 시스템 등장

추천 시스템은 정보가 범람하는 시대에 필수적이다. 수많은 정보 중에서 사용자가 필요한 정보를 제공하는 것이 추천 시스템의 핵심이다. 사용자는 모든 정보를 확인할 필요 없이 원하는 것을 얻음으로써 시간을 절약할 수 있다. 기업의 관점에서 정보 제공은 서비스이다. 미디어 콘텐츠를 다루는 기업이 성공하기 위해서는 사용자가 좋아하는 정보(콘텐츠)를 제공하는 것이 필수적이다.

 

전통적으로 추천 시스템은 Collaborative Filtering 방법과 Content Based 방법, 그리고 이 둘을 모두 사용하는 Hybrid 방법으로 구분한다. Collaborative Filtering은 사용자의 아이템 평가 정보를 활용하여서 추천을 하고, Content Based는 아이템의 특징을 기반으로 구한 아이템 간 유사도를 통해 추천이 이루어진다. 전통적인 Collaborative Filtering 방법을 위해서 Matrix Factorization 알고리즘을 사용한다.

 

하지만 최근에 Deep Learning은 다양한 분야에서 각광을 받고 있다. CNN을 통해 성장한 Computer Vision 분야, 기계 번역 및 컴퓨터의 자연어 이해를 다루는 Language Processing 분야까지, Deep Learning은 다양한 분야에서 높은 성능의 과제 수행력을 보인다. 추천 시스템에서도 이러한 Deep Learning을 적용하려고 한다.

 

Deep Learning 기반의 추천 시스템 장점

Deep Learning 기반의 추천 시스템이 가지는 장점은 다양한 Feature(User, Item) 간의 Non-linear 하고 복잡한 관계를 학습할 수 있다는 것이다. 기존의 Matrix Factorization과 같은 방법은 User와 Item 간의 선형적인 관계에 집중하였다면, 비선형성의 활성화 함수를 사용하는 Deep Learning은 이보다 복잡하고 비선형적인 관계를 추론할 수 있다.

 

또한, Deep Learning 모델은 모듈 확장 및 교체가 용이하다. 이는 Deep Learning 기반의 모델로 추천 시스템을 구축한다면 다양한 모델을 결합해서 사용할 수 있음을 의미한다. 자료의 형태에 따라서 적합한 형태의 Deep Learning 모델을 사용해서 이를 조합해 거대한 추천 시스템을 구축할 수 있다. 유연한 모델 조합을 통해 뛰어난 성능의 모델을 실험하고 서비스로 제공할 수 있다.

 

어떠한 Deep Learning 기반의 추천 시스템을 구현

논문의 Figure: Deep Learning 기반의 추천 시스템

Deep Learning 기반으로 추천 시스템을 구출할 때에는 단일 신경망 블록을 사용하는 모델과 여러 모델을 결합하는 방식이 있다. 단일 신경망 블록으로 사용되는 모델로는 MLP, AE, CNN, RNN, RBM, NADE, AN, AM, DRL이 있다. 논문은 각 모델 별로 어떠한 방식의 연구가 이루어졌는지를 정리하였으며, 이에 대해서는 차후에 정리하도록 한다.

 

Deep Learning 기반의 추천 시스템의 향후 연구 주제

다양한 연구 주제 중 모델의 설명력, 범용성, 확장성에 집중하여서 설명한다.

 

전통적으로 Deep Learning 모델은 Black Box에 비유한다. 이는 Deep Learning 모델이 왜 그러한 결과를 산출해내었는지 파악하기 어렵다는 특징에서 비롯된다. 이를 추천 시스템에 적용하면 Deep Learning 모델이 추천한 아이템이 어떠한 근거로 추천이 되었는지 명확히 설명하기 어려울 수 있다. 하지만 딥러닝 모델을 설명하기 위한 시도는 계속되고 있다. CNN의 필터를 시각화하는 것도 딥러닝을 이해하기 위한 시도이다. 이와 같이 설명 가능한 AI를 생성하기 위한 XAI(eXplainable A.I)와 같은 분야가 발전하고 있다.

 

음악 추천을 위한 모델을 영화 추천을 위한 모델로 사용할 수 없을까. 도메인을 뛰어넘는 추천 모델에 대한 개발 필요성이 증대되고 있다. 이는 기업에서는 다양한 콘텐츠를 추천하기 때문이다. 음악 추천, 영상 추천, 상품 추천 등 다양한 도메인에 추천이 필요한데, 해당 도메인에 맞는 모델을 매번 개발하는 것보다 범용적인 모델을 사용하는 것이 자원 절약에 관점에서 좋을 것이다. 이를 위해 Transfer Learning 방법을 사용할 수 있다. 이는 하나의 도메인에서 학습한 Deep Learning 모델을 다른 모델에 적용하기 위한 방법이다. 예를 들어 ImageNet으로 학습한 Deep Learning 모델을 기준으로 출력 레이어를 수정하여서 특정 과제(X-RAY 판독)에 사용할 수 있다. 이러한 Transfer Learning 방법으로 하나의 도메인에서 높은 성능을 보인 모델을 약간의 수정을 거쳐 다른 도메인에서도 뛰어난 성능을 보이도록 학습할 수 있다.

 

서비스로서 추천 시스템을 구축할 때 중요한 것은 확장성이다. 데이터는 끊임없이 생성된다. 사용자도 아이템도 실제 추천 시스템 서비스에서는 그 수를 헤아릴 수 없을 정도로 많다. 동시에 더욱 많은 데이터를 활용하여서 모델을 설계하면 모델이 추천을 위해 Inference 하는 시간이 길어진다. 실시간으로 결과를 보여주는 서비스임에도 불구하고 Inference로 인한 지연이 발생한다면 사용자들은 만족하지 않을 것이다. 따라서 큰 규모의 데이터에 대해서도 정확하고 빠르게 추천 결과를 제공할 필요가 있다. 이를 위해서 Knowledge Distillation 방법이 있다. Knowledge Distillation 방법에서는 복잡한 Teacher 모델과 Compact 한 Student 모델이 필요하다. Student 모델은 Techer 모델로부터 지식을 흡수한다. 예를 들어 Teacher 모델이 여러 Deep Learning 모델을 앙상블 한 거대한 모델이라고 가정하자. Student 모델은 이보다 간단한 단일 Deep Learning 모델이지만 특정 데이터에 대해서 출력 결과가 Teacher 모델과 동일하도록 학습이 이루어진다. 이러한 방법을 통해서 원래의 복잡한 모델에 근사한 성능을 가진 Student 모델을 생성할 수 있다. 따라서 서비스를 위해서 깊고 복잡한 Teacher 모델은 Offline으로 학습하고, Online에서는 Compressed된 Student Model을 사용해서 Inference 하는 방식으로 추천 시스템 서비스를 빠르게 운영할 수 있다.

 

References

Zhang, S., Yao, L., Sun, A., & Tay, Y. (2019). Deep learning based recommender system: A survey and new perspectives. ACM Computing Surveys (CSUR), 52(1), 1-38.

Relational Knowledge Distillation: https://www.youtube.com/watch?v=AI5m8XotWvs&t=709s