본문 바로가기

recommend system

item2vec 요약

Abstract

NLP의 word2vec에서 착안하여item-based Collaborative Filtering을 비슷한 방식으로 동작하는것. item-item 사이의 관계성을 필요로 하기에 user information 이 없어도 동작할 수 있으며, item2vec이라고 명칭한 방법을 통하여 item들에 대한 embedding을 제공한다.

Introduction and Related Work

실제로 많은 곳에서 user-item의 collaborative filtering 하여 item끼리의 유사도를 바탕으로 item에 대한 추천을 진행하는데, 지금의 방법은 단일 아이템에 대한 추천을 진행한다. 특정 데이터셋(user 이 item 에 대비하여 월등하게 많아서 user-item CF에 소요되는 시간이 너무 큰 경우, user 정보가 없는 경우)에 대하여 적용할 수 있고, NLP에서 word2vec(sgns)를 통하여 뛰어난 성능을 보이고 있기에 이를 item 기반 RS에 적용한 item2vec를 다룬다.

SKIP-GRAM WITH NEGATIVE SAMPLING

단어 신경 임베딩 방법으로써, 특정 단어와 그 단어 주변에 존재하는 단어들을 바탕으로 어떤 관계가 있는지 찾아내는것을 목적으로 하는 방법이다. 

위 값이 최대가 되도록 하는 것이 목적이다. 

 

이 식은 조건부확률이자 softmax 함수로 이해할 수 있다. 하지만 위와 같은 방법으로 각각의 확률을 계산하여 최대가 되는 값을 찾아내기에는 W 공간의 size가 보통(10^5 ~ 10^6) 정도 되기에 계산하는데에 있어서 어려움이 있다. 따라서 이러한 방법에 있어서 완화를 위하여 Negative sampling을 이용하게 된다. 위의 softmax 함수를 다른 방식으로 대체하게 되는데 이는 

 

위와 같은 수식으로 표현된다. 여기서 N 은 positive example 당 뽑을 negative example의 개수를 결정하는 파라미터이다.(여기서 σ는 시그모이드 함수를 나타낸다.) 또한 단어 w_i 에 대하여 unigram 분포를 3/4제곱한 값에서 샘플링한 결과를 가지게 된다. 또한 높은 빈도수로 등장하는 단어들과 희소하게 등장하게 되는 단어들 사이에서의 불균형을 줄이기 위하여 단어 w에 대하여

위와 같은 확률로 해당 단어를 버리게 된다. 이때 f(w) 는 단어의 등장 빈도수이며, ρ는 threshold 를 나타낸다. 이 과정을 통하여 학습을 가속화할 수 있고, 희소한 단어들에 대한 표현을 더 잘 할 수 있게 되었다. 그 후  최적의 latent vector(u,v)를 경사하강법으로 구하게 된다.

ITEM2VEC – SGNS FOR ITEM SIMILARITY

CF 데이터의 경우, item 은 user generated set으로 제공이 된다. 하지만 항상 user-item 사이의 relation 이 성립하는것은 아니다. 이 논문에서는 item기반 CF에 SGNS 를 사용하여 유사성을 측정하는 방법을 사용한다. word 를 item으로 교환하는 방식을 사용하며, 단어의 경우 sequencial 한 반면, item들은 그냥 집합 set의 성격을 가지기 때문에 시,공간적 정보들이 손실되게 된다. 이 논문에서는 관련 정보들을 버린 정적인 환경에서의 실험을 진행하였다. 공간적인 정보를 무시하기에 같은 item set에 속한 것들은 positive example로 취급한다. 그렇기에 window size는 set의 크기에 따라 결정된다. 그렇게 목적 함수는

위와 같이 작성할 수 있다.(j !=i 이기에, 1~K에 속하는 모든 i에 대하여 자기 자신(i)을 제외한 1~K까지의 값들과의 유사도를 계산한다) 또한 특정 item 과 한 쌍의 item 사이의 유사도의 경우, cosine similarity를 이용하여 계산하게 된다. 

어떤 경우에는 u,와 v를 이용하여 u+v 로 표현하기도 하고 [u^t v^t]^t로 표현하기도 하는데 특정한 상황에서는 이러한 것이 더 우수하게 표현되기도 한다.

EXPERIMENTAL SETUP AND RESULTS

실험에서 사용한 데이터셋의 경우 MS xbox 음악 서비스를 이용했고 그 중에서도 어떤 유저가 어떤 artist의 음악을 재생했는지에 관한 realtion 이 포함된 데이터셋을 사용했고 이는 732K의 유저와 49K의 중복되지 않는 artist로 구성되어 있다.

두 번째 데이터셋의 경우 user 에 대한 정보 없이 basket of items가 주어진다. 379K의 주문과 1706개의 중복되지 않는 item들이 존재한다.

위 데이터셋들에 tiem2vec 를 적용시키고 최적화를 완료시켰다.(20 에폭으로, negative sampling N=15, dimension parameter m 은 각각 100, 40으로 또한 threshold는 각각 10^(-5), 10^(-3)으로 설정되었다.) 각 데이터셋별로 parameter이 다른 이유로는 두 데이터셋의 크기가 다르기 때문이다. 이렇게 해서 반든 RS를 SVD기반의 item-item 유사도 시스템이랑 비교하게 되었다. 

Conclusion

item2vec 이 기존의 SVD보다 좋은 성능을 내었다.(Negative sampling에 의해서 rare한 아이템들도 잘 표현할 수 있게 되었다.)

'recommend system' 카테고리의 다른 글

GNNExplainer 요약  (0) 2022.06.27
Steam Game Recommend  (0) 2022.02.09