CTR Prediction : Computational Advertising에서 중요한 역할을 수행
2개 모델이 이 Task에서 널리 활용됨
논문에서 소개하는 모델 : Field-aware Factorization Machiens(FFMs)
논문에서 하고자 하는 것
데이터를 통해 기계가 스스로 학습하게 하는 방법
Click-through rate : 추천된 아이템을 유저가 클릭할 확률
CTR Prediction
Computational Advertising
추천 시스템을 배워본 적이 없으니 먼저 추천 시스템이 뭔지, 어떤 종류가 있는지부터 이해해야 이 논문을 이해할 수 있을 것이라고 생각한다.
추천 시스템은 위에서 말했듯 Computational Advertising의 효과를 높이는 분야라고 생각하면 편할 것 같다.
최근 너무 많은 빈도의 광고 때문에 사람들은 피로감을 크게 느낀다. 실제로 나도 페이스북 광고가 너무 많아지면서 페이스북의 사용 빈도가 떨어졌다.
하지만, 때론 적절한 광고는 도움이 되기도 한다.
예를 들어, 예전에 내가 다이어트를 하고 있을 때 닭가슴살 사이트가 광고가 나온적이 있었는데, 해당 앱을 다운 받고 거기에서만 닭가슴살을 주문하지 않는다.
즉, 이런 효율적인 광고를 더 많이 보여주기 위한 Task라고 보면 된다.
이런 문맥에 맞는 광고는 해당 사이트에 대한 신뢰감을 높이고, 광고사 또한 충성스러운 고객을 얻게 할 수 있는 장점을 가진다.
User, Item에 대한 Profile을 생성하여 과거에 user가 접한 Item과 유사한 Item을 추천해주는 것
예시 : Netflix에서 User A가 본 영화에 대한 정보(장르, 배우, 별점 등)을 종합하여 이와 유사한 영화를 추천하는 전략
장점
단점
Profile없이 과거 Interaction에 기반하여 추천을 제공해주는 것
예시 : 홈쇼핑에서 User A와 User B가 동일한 품목을 샀다. 이 때 User A가 C라는 물건을 샀고 User B가 C라는 물건을 사지 않았을 경우, User B 또한 C를 마음에 들어하지 않을까?
장점
단점
Neighborhood method
Latent Factor Model
Latent Vector라는 말이 논문에 많이 나와 이 말의 의미가 신경 쓰였는데, 그냥 "특징"이라고만 생각하면 된다.
Latent가 앞에 붙은 것은, 결국 이 특징들은 서비스 겉으로 드러나지 않는, Model의 Input으로만 주어지는 특징들이기 때문에 앞에 "잠재"라는 뜻인 Latent를 붙인 것 같다.
즉, User는 해당 Data를 활용해 추천 시스템이 동작하는지 모르지만, 실제로는 활용하는 Vector라는 것이다
User와 Item 간의 평가 정보를 나타내는 Rating Matrix를 User Latent Matrix와 Item Latent Matrix로 분해하는 기법이다.
이를 풀어 말해보자.
먼저, User가 Item에 대해 직접적으로 평가한 자료가 있을 것이다. 이를 2차원 Matrix로 만든다.
이후 이 Matrix를 User Latent Vector와 Item Latent Vector로 쪼개는 것이다.
문제는 Rating Matrix는 (대부분) Sparse Matrix가 된다는 것이다.
실제로 특정 물건을 사거나 선호도가 있더라도, 평점을 달지 않는 경우도 많기 때문이다.
Matrix Factorization은 위와 같은 행렬 분해 과정에서 Spare Matrix의 빈칸을 채울만한 평점을 예측하는 과정이라고 생각하면 된다.
기존 시스템은 이런 결측치를 채우는 과정에 신경썼지만, Sparse한 데이터의 차원이 커질수록 계산 부담이 커지고 데이터가 왜곡될 가능성이 높아졌다.
따라서, 최근에는 존재하는 데이터만을 이용하는 방법을 많이 활용한다.
맨처음 User Latent Matrix와 Item Latent Matrix을 임의의 값으로 채워넣는다.
이후 User와 Item Latent Matrix의 Weight값을 변경하여 최소한 기존 Rating Matrix와 유사하도록 학습이 진행되는 것이다.
이를 Gradient Descent라고 한다.
아 이제 내가 공부한 내용이 나왔다. GD!
즉, 이제 나는 Gradient Descent 기법을 활용하여 User Latenet Matrix와 Item Latent Matrix곱을 통해 얻어진 Matrix를 Prediction, 기존 Rating Matrix를 Label값으로 생각하여 둘 사이의 오차값이 최소화하는 방향으로 학습이 진행되면 되는 것이다.
Rating Matrix의 Size는 (User 수 X Item 수)이다.
이를 2개의 Matrix로 쪼개는데, 이 때 2개의 Matrix Size도 결정되어 있어야 한다.
이 때 User Matrix의 Size는 (User 수 X K), Item Matrix의 Size는 (Item 수 X K)로 지정한다.
이 때 K는 user가 지정해주는 Parameter이다.
그리고, 위 식에서 활용하는 K 또한 Matrix Size를 위해 user가 지정한 Parameter값이다.
논문에서는 SG라고 말한 기법이다.
이전에 공부했던 대로, 단순히 Gradient를 계산한 이후 Gloabl Minmize를 찾을 수 있는 방향으로 학습이 진행되는 것이다.
구현이 쉽고 빠르다는 장점이 있다.
User와 Item의 Latent Vector는 모두 미지의 값이므로, Regularized Squared Error가 Convex하다는 보장이 없다.
즉, Global Minmum이 존재한다는 보장이 없는 것이다.
하지만, 두개 벡터 중 한 개를 곶어시키면 Convex한 2차식이 되어 최적화가 가능해진다.
따라서, 와 를 번갈아가며 고정시키면서 최적화를 하는 방식이다.
ALS는 Implicit Data에 집중된 Data이거나 병렬화가 가능할 경우 효과적인 학습 방법이다.
일반적인 데이터에 바로 적용할 수가 없음
대부분의 경우 Task Specific한 모델
이러한 단점을 해결하기 위해 SVM과 MF의 장점을 동시에 가지고 있는 FMs Model이 발표됨
Sparse Data에도 활용 가능
Linear Complexity
General Predictor
MF에서는 User, Item, Rating만을 활용했지만 FM은 다양한 Feature를 Concat하여 1개의 Feature Vector를 만들고, 이를 Input으로 넣어준다.
즉, Explicit 뿐만이 아닌 Implicit한 특성이라도 실수 형태로 x Vector에 추가시킬 수 있다.
FMs에서는 User, Item과 같은 Categorical Feature를 One-hot 형태로 표현하여 x에 추가하기 때문에 일반적으로 Input Data x는 Sparse한 Vector가 된다.
이처럼 Feature Vector를 형성한 뒤, 바로 가중치 행렬 W에 x를 곱하여 W를 구하는 방식으로 학습하지 않는다.
대신 V라는 Matrix를 활용하여 W를 분해한 뒤 (Factorize) V를 학습하는 방향으로 진행된다.
(여기는 MF와 비슷한 형식)
일반족으로 Positive definite matrix W에 대해서는 충분히 큰 k에 대해 를 만족하는 V가 존재한다고 알려져있고, 이는 W를 V안에 포함된 잠재벡터 의 내적으로 표현할 수 있다는 의미이다.
(Sparse Data를 많이 활용하므로 좋은 일반화를 위해 k를 어느정도 작게 잡는다)
즉, f개 Latent Vector로 표현된 간의 2-way Interaction의 내적값과 와 대응하는 곱을 활용하여 최적화를 진행하는 것이다.
FM의 가장 큰 특징은 특성마다 Latent Space로의 Mapping을 진행하고, Latent Space에서의 내적을 계산한다는 것이다. 이를 Factorized Parametrization이라고 한다.
이를 수식으로 나타내면 아래와 같다