본문 바로가기
ML&DL/Recommender System

[Recommender System / Paper review] #21 Deep Neural Networks for YouTube Recommendations

by 거북이주인장 2023. 4. 20.

Summary

  • 유튜브 추천 알고리즘에 관한 논문으로, 2010년과 달리 neural network을 사용했다는 것이 달라진 점이다.
  • candidate generation, ranking에서 neural network을 사용한다.
  • 주목할만한 점은, 다양한 feature을 neural network의 input으로 넣는다는 점이다. 유저의 비디오 시청 시간, 횟수, 인구학적 정보 등의 feature가 concatenate 된다. 이러한 feature은 모델의 추천 성능을 향상시킴을 경험적으로 증명했다.

Motivation

유튜브의 영상 추천 알고리즘은 아래 세가지 문제를 해결하고자 한다.

  • scale: 유튜브의 데이터는 크기가 매우 크기 때문에, 이런 대용량 데이터에 맞게 추천 알고리즘이 개발되어야 한다.
  • freshness: 유튜브는 초단위로 몇시간의 영상이 업로드되는 플랫폼이다. 그렇기 때문에 새로운 컨텐츠와 기존의 컨텐츠를 적절히 섞어서 추천을 해야한다.
  • noise: explicit feedback은 얻기 어려우므로 noisy implicit feedback을 사용하기 때문에 이런 noisy training 데이터에 robust한 알고리즘을 개발해야한다.

Approach

system overview

2010년에 유튜브에서 발표한 논문과 동일한 candidate generation > ranking 틀을 따른다. 다만, 보 논문에서는 두 과정을 neural network을 사용해 구현한다.

Candidate generation: recommendation as classification

논문에서는 추천 문제를 극단적인 multiclass 분류 문제로 바꿔서 논의를 진행한다. 특정 시간 t에 비디오 i를 시청할  확률을 아래의 softmax 확률로 표현한다.

dnn의 과제는 유저의 과거 행동을 기반으로 하여 유저 u의 임베딩을 학습하는 것이며 이를 softmax classifier에 적용함으로써 비디오를 선택하는 것이다.

  • embedded video watches:
    • 비디오 하나를 fixed vocabulary의 형태로 고차원 임베딩을 학습시킨다.
    • 이를 사용하여 유저의 과거 시청 기록을 임베딩으로 넣는다.
    • 여러 비디오를 시청한 경우, 임베딩 벡터를 평균하여 하나의 벡터로 만든다.
  • embedded search tokens
    • mf에 비해 dnn이 가지는 장점은 여러 feature을 넣을 수 있다는 점이다.
    • 검색 기록도 시청 기록과 비슷하게, 검색 쿼리를 tokenize하여 각 토큰의 임베딩을 만든다.
    • 여러 쿼리를 검색했을 경우, 임베딩 벡터를 평균낸다.
  • demographic / geographic features
    • 임베딩 벡터로 넣어서 시청 벡터, 쿼리 검색 벡터와 함께 concatenate 된다.
    • 이때, 나이 벡터와 같은 연속형 변수는 scale하여 넣는다.

Label and context selection

유뷰트 영상 추천 문제이기 때문에 특별히 고려해야할 점이 몇가지 있다.

  • 유저가 추천 영상이 아니라 다른 영상을 직접 검색해서 들어갔다면, 유저의 이 행동을 cf에 즉각 반영할 필요가 있다. 유저의 의지가 아주 잘 반영되기 때문이다.
  • training/test 데이터를 신중하게 구성해야 한다. 보통, 영상은 시리즈별로 sequential하게 시청하는 경우가 많다. 1편, 2편, 3편을 연속적으로 보는 경우가 그 예시인데, 1편, 3편을 training 데이터로 넣고 2편을 test 데이터로 넣는 것보다 1,2편을 training 데이터로 넣고 3편을 test 데이터로 넣는 것이 실험적으로 더 효과적임을 확인했다.

Ranking

랭킹의 중요한 요소 중 하나는 유저 개인별로 후보군의 순서를 specialize하는 것이다. 유튜브의 랭킹 알고리즘에서는, 후보군 생성 단계에서 걸러진 비디오를 대상으로 점수를 생성하는데, 이때 logistic regression을 사용한다. 랭킹은 후보군 생성에 비해서 훨씬 적은 수의 영상을 다루기 때문에 다양한 피쳐를 반영할 수 있다. 또한 추려진 후보군에 대해 점수를 한번에 부여하기 때문에 점수의 scale이 일치한다는 장점도 있다. 그럼, 이제 유튜브의 랭킹 알고리즘에 대해 자세히 살펴보자.

Feature engineering

논문에서 언급된 몇가지 feature는 아래와 같다.

  • 이전에 그 영상과 어떤 상호작용을 했는지, 다른 비슷한 아이템과는 어떤 관계를 맺었는지
  • 한 채널에 업로드된 영상에 유저가 관심을 표했다면, 이 채널의 영상을 몇개나 봤는지, 이 주제의 영상을 본 마지막 시기는 언제인지
  • 후보군 생성 단계에서 넘어온 영상들이 어떤 이유로 상위에 랭크됐는지, 그 출처는 어떻게 되는지

Embedding categorical features

  • 후보군 생성 단계와 유사하게 sparse categorical features을 임베딩 벡터로 만들고 모델에 반영한다.
  • categorical 변수는 차원이 매우 큰 경우가 많은데 이를 그대로 넣기보다 빈도 기반으로 상위 n개를 잘라내어 임베딩하였다.
  • categorical 변수를 모형에 반형할 수 있다는 것이 mf와 비교되는 neural network의 큰 장점이지만 범주가 많다보면 파라미터의 수가 비약적으로 많아질 수 있으니 적절한 실험을 통해 n을 조절하는 것이 중요해 보인다.

Normalizing continuous features

  • neural network은 scaling에 많은 영향을 받기 때문에 본 논문의 랭킹 알고리즘에서도 continuous variable에 대해 scaling을 진행한다.

Results

  • hidden layers에 따른 실험 결과만 남아있다.

Conclusion

  • 수식이 없어서 전체적으로 쉬울 줄 알았는데 오히려 더 헷갈렸다.. 후보군 생성과 랭킹에 대한 아키텍쳐는 있었지만 그래서 결국 수식이 어떻게 되지? objective function이 어떻게 되지? 라는 의문이 계속 생겼다. 아직 식을 세우는 능력이 부족한 것 같다.
  • 후보군 생성과 랭킹 단계에서 피쳐를 계속 붙이는 것이 인상적이었다. 무조건 neural network을 태우는 것이 능사가 아니라 얼마나 좋은 피쳐를 넣냐에 따라서 성능이 좌지우지 되지 않을까라는 생각도 들었다.
  • scalability가 중요할 것 같은데, 이에 대한 분석은 자세히 안 나와서 아쉬웠다. 시간 복잡도 계산이나, 데이터 크기에 따른 실험 결과나.. 이런 것들이 부족하다.
  • 다른 알고리즘과의 실험 결과 비교도 첨부가 안 되어 있어서 아쉬웠다. linear model과 비교를 해봤다고 하는데 논문에 없으면 사실 믿을 수 없는 것..

댓글