[3학년][2학기][소셜네트워크분석][과제] 논문 리뷰
소셜네트워크분석 수업 과제로 논문 리뷰를 했다
네트워크 분석 / 추천시스템 / 감성분석 중 하나를 골라 해당하는 논문을 읽고 항목별로 정리하는 것이 과제다
평소에도 관심있고, 유튜브나 넷플릭스와 같은 빅테크의 연구 논문을 읽어보고자 추천시스템을 골랐다
선택한 논문은 Google이 YouTube 추천시스템을 어떻게 발전시켰는지에 대한 논문이다.
Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.
https://research.google/pubs/deep-neural-networks-for-youtube-recommendations/
Deep Neural Networks for YouTube Recommendations
research.google
과제에서 요구하는 항목들은 아래와 같다
- 주제 소개
- 방법
- 실험과 결과
- 분야 소개
- 연구 확대 방향: 내가 연구를 확장한다면?
I. 논문 주제
Google에서 YouTube의 추천시스템을 어떻게 구성했는지를 분석한 연구를 선정하였습니다. 최근 많은 사람들에게 추천시스템에 대한 관심이 증가하고 있습니다. “유튜버”라는 직업이 새로 생기고, 기존의 연예인의 자리를 넘볼 만큼 많은 사람들에게 인기를 끌 정도로, 전세계적으로 많은 사람들이 이용하는 YouTube느 실시간으로 정말 방대한 영상 컨텐츠를 사용자에게 제공하고 있습니다. 이 과정에서 사용자가 좋아할만한 영상 컨텐츠를 추천하는 “YouTube 추천 알고리즘”에 대한 대중들의 관심과 호기심도 엄청나게 증가하고 있습니다.
Google은 YouTube 추천시스템에 대한 논문을 research.google에 발표하고 있으며, 이번에 선정한 논문은 2016년에 발표된 Deep Neural Networks for YouTube Recommendations 입니다. 논문은 전통적인 정보 검색의 2단계 구분에 따라 나뉘어져 있으며, 먼저 Deep Learning 기반의 Candidate Generation Model을 자세히 설명한 후, Deep Learning Ranking Model에 대해 설명합니다. 또한, 대규모 사용자에게 영향을 미치는 추천시스템을 설계, 반복 및 유지하면서 얻은 교훈과 통찰을 제공합니다.
II. 분석 방법
논문에서는 Deep Learning을 사용하여 추천시스템의 성능을 향상시킨 것에 대해 다루고 있습니다. 이 추천시스템은 2가지 기본 구조를 따르고 있습니다. 첫번째는 Deep Candidate Generation Model이며, 두번째는 Separate Deep Ranking Model입니다.
1. System Overview
추천시스템의 전체 구조는 위 그림과 같습니다. 구조는 크게 Candidate Generation과 Ranking을 위한 두 개의 Neural Network로 구성되어 있습니다. Candidate Generation Neural Network는 사용자의 YouTube 활동 기록에서 이벤트를 입력으로 받아 대규모 데이터베이스에서 수백 개 수준의 비디오를 검색합니다. 이 후보들은 사용자의 취향에 맞는 정확도가 높은 비디오로 구성되어 있습니다. Candidate Generation Neural Network는 Collaborative Filtering을 통해 넓은 범위의 Personalization을 제공하며, 사용자 간의 유사성은 여러 특징들로 표현됩니다.
Ranking Neural Network는 주어진 목록 중 몇 가지 Best 추천을 제시하기 위해 후보들 간의 상대적인 중요성을 구별하려고 합니다. 비디오와 사용자를 설명하는 풍부한 Feature Set를 사용하여 원하는 목적 함수에 따라 각 비디오에 점수를 부여함으로써 이 작업을 수행합니다. 점수가 가장 높은 비디오들이 사용자에게 순서대로 제시됩니다.
추천시스템의 주요 구조인 Candidate Generation과 Ranking에 대한 상세한 내용은 아래와 같습니다.
2. Candidate Generation
이 과정에서 거대한 YouTube-Corpus는 사용자와 관련 있을 수 있는 수백 개의 동영상으로 축소됩니다. 기존의 추천시스템은 Rank Loss를 기반으로 학습된 Matrix Factorization 기법이었습니다. 초기 Neural Network Model은 사용자의 이전 시청 기록을 Embedding하는 방식으로 이 Matrix Factorization 방식을 모방하였습니다. 이러한 접근은 Matrix Factorization 방식을 비선형적으로 일반화한 것으로 볼 수 있습니다.
추천 문제를 극단적인 다중 클래스 분류 문제로 정의하였습니다. 시간 t에 특정 사용자 U와 Context C를 바탕으로 비디오 i를 시청할 확률을 예측하는 문제입니다. w_t는 실제로 시청한 비디오를 의미하며 아래 수식은, 실제로 시청한 비디오 w_t가 수백만 개의 비디오 중 하나인 i일 확률을 계산하는 것입니다.
수식을 조금 더 살펴보겠습니다. 사용자와 상황(Context)가 주어졌을 때, 특정 시간 t에서 시청한 비디오 w_t가 특정 비디오 Index i일 확률을 구하고 있습니다. 이 확률은 각 비디오의 Embedding Representation Vector v_i와 사용자의 고차원 Embedding Representation Vector u를 Dot Product하고 SoftMax Function을 이용하여 0과 1사이의 확률 값으로 만듭니다. 분모는 YouTube-Corpus V내의 모든 비디오 j들의 Embedding Vector와 사용자 Embedding Vector의 Dot Product의 Summation입니다. 분자는 특정 비디오 i와 사용자의 Dot Product입니다. 여기서 Embedding은 개별 비디오와 사용자 등 Sparse한 객체들을 고차원 Vector로 변환하는 것입니다. 이러한 Embedding Vector가 특정 객체의 Feature를 잘 Representation 해야 하기 때문에 Embedding을 잘 학습하는 것이 중요합니다.
학습 데이터가 증가하면서 SoftMax Classification의 개수가 늘어남에 따라 효율적인 학습을 위해 Negative Sampling을 도입하였습니다. 또한, 서비스 제공 시에도 가장 가능성이 높은 N개의 클래스를 계산하여 선택해야 하는데, 굉장히 짧은 지연 시간 내에 사용자에게 비디오를 제공해야 하기 때문에 Sublinear 방식인 Hashing 방식으로 수백만 개의 항목을 빠르게 점수화하였습니다.
또한, YouTube에는 좋아요/싫어요, 설문조사 등 Explicit Feedback이 존재하지만, Implicit Feedback을 사용하여 Model을 학습시킵니다. 사용자가 비디오를 끝까지 시청하는 경우와 같은 예시들이 있습니다. 이러한 활용 가능한, 아주 많은 Implicit Feedback이 있어 Explicit Feedback이 드문 경우에도 깊이 있는 추천을 제공할 수 있습니다.
Model 구조는 아래와 같습니다. 각 비디오 컨텐츠의 고차원 Embedding을 구합니다. 사용자의 시청 기록은 정해져 있지 않은 길이의 Sparse한 비디오 ID의 Sequence로 표현되며, Embedding하여 Feed Forward Neural Network에 입력하기 위해 시청 기록 Vector의 평균을 냅니다. 이 외에도 Geographic Embedding, Example Age, Gender 등의 여러 Feature들을 Concatenate하여 Neural Network에 입력됩니다. Activation Function은 ReLU(Rectified Linear Unit)을 사용합니다. 훈련 시에는 SoftMax의 출력을 이용하여 Cross-Entropy Loss를 Gradient Descent로 최소화합니다. 사용자에게 실제로 추천 비디오를 제공할 때는 Nearest Neighbor 검색을 이용하여 상위 N개의 비디오를 제공합니다.
이러한 구조로 Matrix Factorization을 Neural Network로 사용하는 핵심 장점은 다양한 Continuous, Categorical Feature들을 Model에 쉽게 추가할 수 있다는 점입니다. 사용자의 검색 기록은 시청 기록과 유사하게 처리되며, 새로운 사용자에 대한 추천시스템의 초기 행동 정의를 위해 사용자의 지리적 위치나 장치 정보, 접속 장치, 성별, 나이 등 여러 Feature들도 또한 함께 Embedding되어 입력됩니다.
* Example Age
: YouTube에는 매초 수많은 비디오가 업로드되기 때문에 신규 컨텐츠를 추천하는 것이 중요합니다. 사용자는 일반적으로 신규 컨텐츠들을 선호하지만 이는 관련성을 해치지 않는 범위 내에서입니다. Machine Learning 시스템은 보통 과거 데이터로 미래 행동을 예측하므로 과거에 대한 Bias가 내재될 수 있습니다. 이를 교정하기 위해 비디오가 업로드 된 후 경과한 시간을 Feature로 추가합니다.
3. Ranking
Ranking 시스템의 주요 역할은 Impression 데이터를 활용하여 특정 사용자에게 맞는 후보 예측을 세분화하고 조정하는 것입니다. 이 단계에서 중요한 점은 특징의 다양성과 후보 소스의 결합입니다. Candidate Generation 단계에서는 수백만 개의 비디오를 평가하지만 Ranking 단계에서는 수백 개의 비디오만 평가하기 때문에 더 많은 Feature를 이용할 수 있으며, 비디오의 세부 정보나 사용자와 비디오의 관계를 설명하는 추가적인 Feature들을 사용할 수 있습니다. 또한 여러 후보 비디오의 점수를 비교하는데도 중요합니다. 각 후보 소스의 점수가 직접 비교하기 어렵기 때문에, Ranking을 통해 독립적인 점수를 할당해야 합니다.
Model의 구조는 Candidate Generation과 유사한 Neural Network가 사용되나, Logistic Regression을 사용하여 각 비디오 Impression에 독립적 점수를 할당하고, 이 점수에 따라 비디오 목록이 정렬, 사용자에게 제공됩니다. Ranking의 최종 목표는 Expected Watch Time을 기반으로 합니다. 이 목표는 실시간 A/B Test 결과에 따라 지속적으로 조정됩니다.
Ranking Network에 Categorical, Continuous Feature들을 결합하고 입력하여 최종적으로 비디오에 대한 순위를 매깁니다. Categorical Feature인 Impression Video ID와 Watched Video ID는 Embedding을 통해 Sparse한 데이터를 Dense Vector로 변환합니다. 사용자와 비디오의 언어도 각각 Embedding되어 Network에 입력됩니다. Continuous Feature는 Normalization되어 입력됩니다. 사용자가 마지막으로 비디오를 시청한 이후의 시간과 사용자에게 이전에 노출된 비디오의 개수인 Time Since Last Watch와 # Previous Impressions는 Continuous Feature를 더 유연하게 처리하기 위해 Normalization된 후 제곱과 제곱근 변환을 통해 입력됩니다. 입력된 모든 Features는 ReLU Activation Function을 사용하는 Fully Connected Layer를 거쳐 비디오에 대한 점수로 최종 출력됩니다. 점수는 Weighted Logistic Regression 방식을 통해 계산되며, 이는 특정 비디오가 사용자에게 얼마나 적합한지를 나타내는 점수로, 이 점수를 바탕으로 비디오가 사용자에게 추천됩니다.
해당 추천시스템의 중요한 목표 중 하나인 사용자가 사용자에게 추천된 비디오에 대해 얼마나 오랫동안 시청할 것인지, Expected Watch Time을 예측하기 위해 Weighted Logistic Regression 기법을 사용했습니다. Positive Example과 Negative Example로 나뉩니다. Positive Example은 사용자가 클릭한 Impression 비디오를 의미합니다. 여기에는 사용자가 해당 비디오를 얼마나 시청했는지에 대한 정보가 추가로 제공됩니다. Negative Example은 사용자가 클릭하지 않은 비디오입니다.
Logistic Regression은 Cross-Entropy Loss를 기반으로 학습됩니다. Positive Example에는 시청 시간을 가중치로 주고, Negative Example은 모두 동일한 가중치를 부여합니다. 즉, 사용자가 클릭하고 시청한 비디오일수록 Model에서 더 많은 영향을 미치게 됩니다. Logistic Regression이 학습하는 확률은 아래와 같습니다.
여기서 N은 전체 훈련 데이터 예시의 수, k는 Positive 비디오 노출 수, T_i는 i번째 비디오 노출의 시청 시간, P는 Click Probability입니다. 추론 시에는 Exponential Function이 최종 Activation Function으로 사용됩니다. 비디오 Impression에 대한 확률을 계산하며, 이를 바탕으로 예상 시청 시간을 예측할 수 있게 됩니다.
III. 실험과 결과
YouTube의 추천시스템 성능 향상을 위해 여러 연구와 시도들이 진행되었습니다. 이들에 대한 실험과 결과를 분석해보겠습니다.
1) Example Age
사용자들이 보통 신규 컨텐츠를 선호하는 점을 반영하기 위해 추가되는 Feature인 Example Age를 적용한 후 효과를 파악해보았습니다. 아래 Figure에서 업로드 이후 경과된 일 수에 따른 클래스 확률(해당 비디오가 선택될 확률)을 보여주고 있습니다. 파란색 선은 Example Age를 적용하지 않은 Model, 빨간색 선은 Example Age를 사용한 Model이며, 녹색 선은 실제 데이터에서 관찰된 인기도 분포로 실제로 비디오가 어떻게 소비되는지 나타냅니다. 실제 데이터를 봤을 때, 보통 비디오가 업로드된 직후 인기가 급격히 상승하고, 시간이 지나며 점점 감소하는 패턴을 보입니다. Example Age를 적용한 Model은 마찬가지로 업로드 직후 클래스 확률을 크게 계산하며, 점점 줄어드나, 적용하지 않은 Model은 비디오의 업로드된 시점이나 그 후 변동을 잘 반영하지 못하고 있습니다.
2) Feature와 Depth
Feature와 Neural Network의 Depth를 추가하면 Holdout 데이터에 대한 Precision이 크게 향상되는 것을 확인하였습니다. 실험을 위해 1백만 개의 비디오와 1백만 개의 검색 토큰이 사용되었습니다. 각 비디오와 검색 토큰은 각각 256차원의 Embedding으로 변환되었으며, 최대 50개의 최근 시청 기록과 50개의 최근 검색 기록을 포함하는 “bag”구조가 사용되었습니다.
Model은 모든 유저에 대해 여러 번의 Epoch를 거쳐 수렴할 때까지 학습되었으며, Network 구조는 일반적인 “Tower Pattern”을 따랐습니다. Network의 하단부가 가장 넓고, 각 은닉층으로 갈수록 유닛의 수가 절반으로 줄어듭니다. Neural Network Depth는 0부터 4까지 디자인되었으며, Depth 0은 선형 Layer가 단순히 Concatenate-Layer를 변형하여 SoftMax 차원인 256차원과 맞췄습니다. 이 Network는 기존 시스템과 유사한 성능을 발휘했으며, Depth 1부터 4까지의 Layer 디자인은 다음과 같습니다.
• Depth 1: 256 ReLU
• Depth 2: 512 ReLU → 256 ReLU
• Depth 3: 1024 ReLU → 512 ReLU → 256 ReLU
• Depth 4: 2048 ReLU → 1024 ReLU → 512 ReLU → 256 ReLU
결과를 분석해보겠습니다. Neural Network의 Feature와 Depth를 추가할수록 Model의 성능이 꾸준히 향상되었습니다. 성능 측정은 Model Training에 사용되지 않은 Holdout 데이터를 이용해 Mean Average Precision을 계산하였습니다. X축 Network의 Depth가 깊어질수록 성능이 향상되었으며, 점선, 파란색 선, 빨간색 선, 녹색 선으로 갈수록 성능이 향상되었습니다. 특히 Example Age가 추가된 빨간색 선이나 모든 Feature를 사용한 녹색 선의 경우 Network가 깊어질수록 성능 향상이 두드러지나, 단순한 시청 기록만을 사용한 Model은 Network가 깊어지더라도 성능이 크게 개선되지 않습니다. 이는 다양한 신호가 주어졌을 때 더 잘 학습하고 반영할 수 있음을 보여줍니다.
3) Hidden Layers
Hidden Layers 구성에 따른 Model 성능에 대한 실험 결과입니다.
성능 비교 시 사용될 Metric은 Weighted, per-user Loss로, 한 페이지에 있는 Positive & Negative 비디오 노출에 대해 Model이 점수를 예측한 후, Negative 비디오의 점수가 Positive 비디오의 점수보다 높으면, 해당 Positive 비디오의 시청 시간이 잘못 예측된 것으로 간주합니다. Weighted, per-user Loss는 이러한 잘못 예측된 시청 시간을 총 시청 시간 대비 비율로 표현한 값으로, 작을수록 Model이 더 정확하게 시청 시간을 예측한 것입니다.
실험 결과, Hidden Layer의 Width와 Depth를 증가시키면 성능이 개선됩니다. 그러나 Width와 Depth를 증가시킴에 따라 CPU 자원의 사용량이 올라가는 Trade-off도 존재합니다. 또한, Positive 비디오와 Negative 비디오에 동일한 가중치를 부여한 경우 Watch Time Weighted Loss가 4.1% 증가하였습니다. 이는 Positive 비디오에 더 높은 가중치를 부여하는 것이 더 성능에 좋은 영향을 끼치는 것을 보여줍니다. 성능과 자원 효율 측면에서 1024 → 512 → 256 구성이 최적의 결과를 제공합니다.
IV. 분야 탐구
해당 연구는 추천시스템에 대한 연구로, Google의 YouTube가 어떻게 사용자들에게 영상 컨텐츠를 추천해주는지에 관한 연구입니다. 추천시스템은 Google뿐 아니라 Netflix, Meta 등 사용자에게 컨텐츠를 제공하는 여러 빅테크 기업의 주도로 활발히 연구가 진행되고 있는 분야입니다. “알고리즘의 선택”, “유튜버로서 성공하기 위해서는 알고리즘을 잘 타야 한다” 등 이러한 추천시스템은 대중들에게도 이미 친숙하고 알면 도움이 되는 분야입니다. 이렇게 서비스 산업에서 중요한 역할을 하고 있는 만큼, 산업의 규모가 커짐에 따라 추천시스템이 해결해야 할 문제들도 많습니다.
해당 연구에서 Google이 언급한 YouTube가 마주한 추천시스템의 Challenge는 크게 3가지가 있습니다. Google은 아래와 같은 Challenge를 포함한 여러 문제들을 Deep Learning을 이용한 Solution으로 해결하고자 하는 근본적 패러다임 변화를 시행하고 있습니다.
1) Scale
: 기존의 추천 알고리즘들은 작은 문제에 대해서는 잘 작동하지만 전세계 수억 명 이상이 사용하는 YouTube와 같은 규모에서는 제대로 작동하지 않습니다. 방대한 사용자 데이터를 처리하기 위해서는 굉장히 특화된 분산 학습 알고리즘과 효율적인 Serving 시스템이 필요합니다.
2) Freshness
: YouTube에는 매초 매순간 많은 양의 비디오가 업로드 됩니다. 추천시스템은 새로 업로드된 컨텐츠와 사용자가 최근에 취한 행동을 Modeling 할 수 있을 정도로 충분한 반응성이 있어야 합니다. Exploration & Exploitation 관점에서 새롭게 업로드된 컨텐츠와 기존의 인기 있는 비디오 간의 균형을 맞추는 것이 중요합니다.
3) Noise
: YouTube 사용자의 과거 행동은 Sparsity와 여러 외부 요인으로 인해 예측하기 어려우며, 사용자의 만족도 또한 정확히 알기 어렵습니다. 대신 Noise가 섞인 Implicit Feedback을 Modeling 합니다. 또한, 컨텐츠와 관련된 메타데이터의 분류 체계는 잘 정의되어 있지만, 구조화가 제대로 되어있지 않습니다. 이러한 훈련 데이터의 특성에 강인한 추천시스템이 필요합니다.
이 외에도 유해 컨텐츠 차단, 더 빠르고 정확한 추론, 유저의 알고리즘 공략 등 추천시스템 분야가 마주한 난관들은 많습니다. 이 논문에서는 위에서 언급된 3가지 Challenge들을 해결해 나가기 위해 추천시스템을 연구하고 발전시킨 내용을 다루고 있습니다.
V. 연구 확대 계획
YouTube의 영상 추천시스템을 다룬 해당 연구를 살펴보고, 학습하면서 이러한 연구 결과들을 어떻게 활용, 발전, 확대할 수 있을까 고민해보았습니다.
1. Embedding Feature 확대
우선 현재 적용되고 있는 추천시스템에서 중요한 부분 중 하나인 Embedding Feature가 먼저 떠올랐습니다. 비디오의 내용을 Embedding하는 Algorithm을 수정한다면 Trade-off가 발생할 것으로 예상되어, 대신 사용자의 특성을 잘 반영할 수 있는 Feature들을 추가하고자 합니다. 그 목록은 다음과 같습니다.
1) 주로 시청하는 영상의 길이
최근 Short-form플랫폼이 굉장한 인기를 끌고 있습니다. TikTok, Reals, Shorts 등이 그러한 플랫폼의 선발 주자입니다. 반면, 아주 긴 시간동안 컨텐츠가 진행되는 영상에 매력을 느끼는 사용자들도 많습니다. 제가 자주 보는 “침착맨” 채널이나 “안될과학” 등 30분 이상, 길게는 몇 시간까지도 진행되는 이러한 컨텐츠들이 대표적인 예시입니다. 이렇듯 사용자마다 즐겨 찾는 컨텐츠의 길이가 달라 이를 Feature Vectorization하여 추천시스템에 반영한다면 보다 더 정확한 추천을 제공할 수 있을 것입니다. 더 나아가자면, 영상 컨텐츠의 세부 분야와 영상 시간을 Matching하여, 각 사용자들이 각 분야마다 선호하는 영상 길이에 대한 Feature를 추가하면 더 효과적일 것입니다.
2) 시간대 별로 시청하는 영상의 종류
많은 현대인들이 YouTube 플랫폼에서 많은 시간을 보내고 있습니다. 이는 YouTube 영상을 시청하고 있는 시간대도 다양하다는 것을 의미합니다. 그리고 시간대마다 즐겨 찾는 영상의 분야도 서로 다를 것입니다. 예를 들자면, 하루를 시작하는 아침에는 뉴스나 간밤 있었던 해외 증시에 대한 영상일 수 있으며, 식사 시간에는 가볍게 볼 수 있는 예능, 잠들기 전에는 수면을 도와주는 ASMR 영상일 것입니다. 이렇듯 사용자가 특정 시간대에 주로 시청하는 영상의 종류, 분야를 Vectorization 한다면 추천 성능을 향상시킬 수 있을 것입니다.
3) 타 사용자와의 교류
YouTube의 단점을 꼽아보자면, 카페와 같은 플랫폼과 다르게 타 사용자들과의 교류가 적다는 점입니다. YouTube 영상들 중 인기를 끄는 또 하나의 종류가 영상과 그에 대한 댓글들이 함께 등장하는 컨텐츠입니다. “댓글 모아보기”와 같은 이름으로 업로드되는 이러한 컨텐츠들도 사용자로 하여금 다른 여러 사람들과 함께 영상을 즐기는 듯한 느낌을 주어 인기를 끌고 있습니다. 이러한 특성을 반영하고자 영상의 댓글 수나 댓글의 답글 수, 댓글의 좋아요 수 등 다른 사용자들과의 교류, 상호작용의 여지가 많은 컨텐츠의 특성을 Embedding 하여 반영할 수 있을 것입니다.
2. 영상 컨텐츠를 넘어 텍스트 컨텐츠까지
YouTube 추천시스템의 이러한 구조, 특성들을 비단 영상 플랫폼을 넘어 e-Book 등 텍스트 플랫폼에도 적용해볼 수 있을 것입니다. “밀리의 서재”와 같은 e-Book 플랫폼이나, 뉴스 기사, Article들을 추천해주는 서비스들에 적용해보고자 합니다.
텍스트 컨텐츠는 영상 컨텐츠와 다르게 이미 Script화 되어있기 때문에 최근 발전한 LLM 기술 등을 이용하여 컨텐츠의 Feature Vector를 구하는 것이 수월할 것으로 예상됩니다. 게다가, 영상 컨텐츠에 비해 압도적인 분량으로 보다 정확하고 구체적으로 컨텐츠의 내용을 Feature에 반영할 수 있을 것입니다.
또한, 마찬가지로 사용자의 화면이나 스크롤 등의 데이터를 이용해 해당 컨텐츠의 소비 속도, 사용 진도 등을 참고하여 영상 컨텐츠의 추천시스템을 그대로 적용할 수 있을 것입니다.
VI. 느낀 점과 배운 점
기존에 많은 관심을 가지고 있고, 일상에서도 자주 접해 친숙한 추천시스템에 대한 연구를 학습해볼 좋은 기회가 되었습니다. 학기 초 커리큘럼에서도 중간고사 이후에 추천시스템을 다루게 되어 기대가 많았는데, 이번 과제를 통해서도 많이 배우게 되어 기뻤습니다.
추천시스템에 대한 연구 중 해당 논문을 고른 이유 중 하나는, 사회 전반에 끼치는 영향력입니다. 해당 연구는 Google Scholar 기준 3820회의 Citation으로 학계에 굉장히 많은 영향을 끼치는 논문이며, 그것보다 Google이라는 빅테크 기업의 YouTube라는 전세계에서 가장 큰 플랫폼에 적용되는 추천시스템에 대해 이번 기회에 학습해보고자 했습니다. 이번 기회를 토대로 Google이 발표한 여러 논문들과 Netflix, X, Meta 등 여러 빅테크 기업들의 논문도 함께 학습해볼 계획입니다.
Computer Vision과 Natural Language Processing 등 현실의 여러 분야에 Deep Learning이 적용되어 문제를 해결해 나가는 동향을 보고 많은 흥미를 느꼈는데, 추천시스템에도 이렇게 활발히 Deep Learning 적용이 되고 있다는 것을 알게 되었습니다.
아쉬운 점이 있다면, 해당 연구에서 Deep Learning 접목 외의 추천시스템에 대해서는 많이 다루지 않았다는 점입니다. Matrix Factorization, Collaborative Filtering, Latent Factor Models 등과 같은 여러 추천시스템에 사용되는 알고리즘에 대해서도 학습해보고 싶었으나 해당 연구를 통해서는 그러지 못했습니다. 과제 이후로도 추가로 학습해보려고 합니다.
VII. 추가 학습
Collaborative Filtering
Netflix의 Collaborative Filtering for Implicit Feedback Datasets 논문을 읽고 Collaborative Filtering을 활용한 추천시스템에 대해 간단하게 학습해보았습니다. Collaborative Filtering은 추천시스템에서 사용자의 과거 행동과 다른 사용자들의 행동을 기반으로 새로운 사용자-아이템 간의 연관성을 발견하는 방법입니다. 이 알고리즘은 직접적인 사용자 프로파일링이나 항목의 특성을 파악하지 않고, 사용자의 과거 아이템 소비 기록을 분석해 향후 선호할 가능성이 높은 아이템을 추천합니다. 사용자와 아이템 간의 상호작용 행렬을 사용하는데, 주로 두가지 방식이 사용됩니다.
1) User-based CF: 특정 사용자의 행동 패턴과 유사한 다른 사용자 그룹을 찾아내, 그들이 선호하는 아이템을 추천합니다.
2) Item-based CF: 사용자가 과거에 선호했던 아이템과 유사한 다른 아이템을 추천합니다. 이를 위해 주로 Similarity 측정(예를 들면 Cosine Similarity)을 사용해 두 아이템 간의 관계를 파악합니다.
Latent Factor Models
Netflix의 Recommender Systems in Industry: A Netflix Case Study 논문을 참고하여 Latent Factor Models에 대해 간단하게 학습해보았습니다. LFM은 사용자와 아이템(Netflix에서는 영화 등)을 잠재 공간에 Mapping하여, 두 행렬을 분해함으로써 각 사용자와 아이템 간의 상호작용을 모델링합니다.
1) Matrix Factorization: 사용자-아이템 상호작용 행렬을 사용자 행렬, 아이템 행렬 두 개의 저차원 행렬로 분해합니다. 각각의 행렬은 잠재 요인으로 구성되어 있으며, 사용자는 이 잠재 공간에서 특정 속성을 가지고, 아이템 역시 그와 유사한 속성으로 모델링됩니다. 사용자와 아이템 간의 Dot Product를 통해 사용자가 아이템을 얼마나 선호할지 예측합니다.
2) Sparsity 문제 해결: 데이터 Sparsity 문제를 해결하기 위해 차원 축소를 사용하여 빈 데이터를 예측합니다. 이를 통해 사용자가 평가하지 않은 아이템에 대한 선호도를 추정할 수 있게 됩니다.
3) 정규화 및 최적화: LFM은 Regularization 기법을 통해 Model이 Overfitting되지 않도록 조정합니다. 특히 Stochastic Gradient Descent 같은 기법을 사용하여 행렬을 최적화합니다.
Netflix의 추천시스템에서 LFM은 사용자와 아이템의 숨겨진 관계를 학습해 사용자가 아직 보지 않은 콘텐츠를 효과적으로 추천하는 데 매우 중요한 기법으로 사용됩니다.
참고 문헌
- Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM conference on recommender systems. 2016.
- Hu, Yifan, Yehuda Koren, and Chris Volinsky. "Collaborative filtering for implicit feedback datasets." 2008 Eighth IEEE international conference on data mining. Ieee, 2008.
- Amatriain, Xavier, and Justin Basilico. "Recommender systems in industry: A netflix case study." Recommender systems handbook. Boston, MA: Springer US, 2015. 385-419.