추천시스템의 딥러닝 모델(1)

siwoo·2023년 11월 30일
0

추천시스템에서 딥러닝을 활용하는 경우는 다른 AI 분야에 비해서는 많지 않은 편이다.

머신러닝 모델과 딥러닝 모델 간의 성능 차이가 그리 크지 않기도 하고 서빙 속도가 중요한 추천 특성 상
연산량이 많은 딥러닝 모델
을 쓰기가 쉽지 않기 때문이다.

그럼에도 대용량의 유저에 대해 서비스를 서빙하는 유튜브, 페이스북과 같은 곳에서 딥러닝 추천 모델을 활용하고 있으며 다양한 연구를 진행하고 있다.

Neural Collaborative Filtering


  • background

    Matrix Factorization의 경우, user와 item latent matrix 간의 내적, 즉 선형 조합을 통해 예측하기 때문에 실제 user와 item 간의 복잡한 관계 표현력에는 한계가 있다.

    [출처] "Neural collaborative filtering" 논문

    user-item matrix를 보면 u4u_4u1>u3>u2u_1 > u_3 > u_2 순서대로 유사함을 직관적으로 확인할 수도 있고 jaccard 유사도를 이용해 계산했을 때에도 이가 맞음을 확인할 수 있다.

    그렇지만 user latent space(위 상황에서는 2차원)에 벡터를 표시하면 p2p_2p3p_3보다 p4p_4에 가까운 것을 확인할 수 있다.

    물론 latent space를 고차원으로 늘릴수록 표현력을 높일 수 있지만 이는 결국 학습 데이터에 대해 과적합되는 잘못된 결과로도 이어질 수 있다.

  • model architecture

    모델을 직접 구현해보면서 계산한 각 layer 에서의 차원 변화에 대해 정리한 표이다.



Youtube Recommendation

  • background

    유저와 아이템 모두 엄청난 대용량이므로 연구 당시 존재했던 기존의 추천 알고리즘은 잘 동작하지 못했다.

    유저의 최근 행동(관심), 막 업로드된 컨텐츠 등 최신 정보를 유연성 있게 반영해야 한다.

    explicit feedback(좋아요, 구독)은 implicit feedback(영상 시청)보다 적은 데이터이기 때문에 implicit feedback을 잘 반영해야 하지만 이는 선호도에 대한 명확한 정보가 아니기 때문에 데이터에 noise가 존재한다.

  • model architecture

    유튜브 추천시스템 모델은 두 가지 구조로 분리된다.

    1. 주어진 사용자에 대해 high recall을 목표로 top n개의 추천 아이템을 생성하는 candidate generation 단계가 있고,

    2. 유저와 비디오 피쳐 등 정보를 다양하게 사용해서 스코어를 구한 후 최종 추천 리스트를 제공하는 ranking 단계가 있다.

    Candidate Generation 모델의 구조는 위와 같다.

    문제 자체는 특정 시간 t에 유저 u가 c라는 context를 갖고 있을 때 비디오(i) 각각을 볼 확률을 계산하는 extreme classification 으로 정의된다.

    과거 시청 이력과 검색 이력을 embedding한다.

    인구통계학적 정보와 지리적 정보까지 feature로 포함하며 example age 피쳐를 활용해 최근의 행동일수록 많이, 과거일수록 적게 반영하도록 한다.

    이렇게 형성된 feature vector들을 concatenate하여 n개의 dense layer를 거치고 user vector를 생성한다.

    최종 output layer는 비디오를 분류하는 softmax function을 적용한 확률 값들로 구성된 vector가 나오게 된다.

    serving할 때에는 속도가 중요하기 때문에 ANN library(Annoy, Faiss 등)를 사용한다.

    Ranking

    문제 정의: Candidate Generation 단계에서 생성된 비디오 후보들을 input으로 최종 추천할 비디오 목록의 순위를 매긴다.

    loss function에는 시청 시간을 가중치로 한 값을 반영하고 도메인 전문가가 고른 다양한 feature들을 활용하여 질적으로 우수한 성능을 보일 수 있도록 한다.

    	

0개의 댓글