일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- Item2Vec
- SGNS
- 부스트캠프 AI Tech
- TTS
- matrix factorization
- FastSpeech2
- 추천시스템
- Ai
- 논문리뷰
- Noise Contrastive Estimation
- 백준
- CV
- FastSpeech
- Collaborative Filtering
- Tacotron2
- CF
- wavenet
- NEG
- ANNOY
- Tacotron
- Skip-gram
- Implicit feedback
- Neural Collaborative Filtering
- RecSys
- ALS
- BOJ
- Negative Sampling
- word2vec
- Dilated convolution
- Recommender System
- Today
- Total
devmoon
[논문 리뷰] Item2vec: Neural Item Embedding for Collaborative Filtering 본문
[논문 리뷰] Item2vec: Neural Item Embedding for Collaborative Filtering
Orca0917 2022. 12. 22. 22:55ABSTRACT
당시 NLP분야에서 Neural embedding algorithm을 통해 단어를 잠재 벡터로 표현하는 방법에 대한 뛰어난 성과가 발표되었다. 그 방법 중 하나로 word2vec 이라고도 알려진 Skip-gram with Negative Sampling (SGNS)가 특히 좋은 성능을 보여주었다. 여기에 영감을 받아 저자들은 추천 시스템의 아이템 기반 협업 필터링(IBCF)에 word2vec을 적용시킨 item2vec을 발표한다.
INTRODUCTION AND RELATED WORK
당시 추천 시스템의 핵심은 아이템 간 유사도를 구하는 것이었다. 저자는 많은 추천 시스템들이 유저와 아이템의 저차원 입베딩을 학습하는데 초점을 맞추고 있지만, 아이템 유사도 자체를 구하는 것이 중요하다고 한다. 따라서 본 논문에서는 그동안 간과했었던 아이템 임베딩을 통해 아이템 유사도를 학습하는 방법에 대해 다룬다.
아이템을 기반으로 한 유사도는 온라인으로 상품을 판매하는 회사에서 사용되고 있다. 예를 들어 Microsoft의 Windows10 App store는 하나의 응용프로그램을 선택하면 이와 관련된 다른 프로그램이나 이 프로그램을 다운로드 했던 사람들이 좋아하는 다른 응용프로그램을 추천해준다.
이렇게 하나의 아이템에 대해서 관련된 다른 아이템들을 추천해주는 것은 기존의 "user-item recommendation" 과는 차이점이 존재한다. 유저가 직접 선택한 아이템에 대한 추천이기 때문에, 명시적(explicit)인 선호도나 특정 아이템에 대한 구매 의도가 먼저 반영되게 된다. 그렇기에 선택된 아이템과 유사도가 높은 아이템들을 추천했을 때, 더 높은 CTR과 매출, 수익을 기대할 수 있다.
따라서 본 논문에서는 NLP에서 뛰어난 성능을 보여준 SGNS를 추천시스템에 맞게 고쳐 item2vec이라는 방법을 소개한다. 앞서 말했듯, item2vec을 사용하면 벡터 공간에서 아이템을 정확하게 표현할 수 있고 현재의 SVD를 사용한 아이템 기반 협업 필터링과 견줄만한 추천 시스템이라고 발표한다.
SKIP-GRAM WITH NEGATIVE SAMPLING
Skip-gram with negative sampling은 단어를 벡터공간에 임베딩하는 방법 중 하나로 Mikolov.에 의해 가장 처음 소개되었다. 이 방법은 문장에서 해당 단어 주변에 있는 다른 단어들을 잘 맞추도록 학습을 시켜주며, 이번 파트에서는 SGNS에 대해 자세하게 소개한다. Skip-gram은 어떤 단어 집합 $W = \{ w_i \}_{i=1}^W$이 있고, 유한한 $K$개의 단어를 이번 학습의 입력으로 받는다고 하면 아래의 식을 최대화하도록 학습을 진행한다.
$$ \frac{1}{K} \sum_{i=1}^K \sum_{-c \leq j \leq c, j \neq 0} \log p(w_{i+j} \vert w_i), \qquad p(w_j \vert w_i) = \frac{\exp(u_i^\top v_j)}{\sum_{k \in I_W} \exp(u_i^\top v_k)} $$
- $c$ : 주변 단어 (window size)
- $u_i \in U(\subset \mathbb{R}^m)$ : $w_j$의 잠재 벡터 표현
- $v_i \in V(\subset \mathbb{R}^m)$ : $w_i$의 잠재 벡터 표현
- $m$ : 벡터 공간의 차원
- $I_W \triangleq \{ 1, \dots , \vert W \vert \}$
위의 식에서 softmax 함수의 그래디언트인 $\nabla p(w_j \vert w_i)$의 계산량이 단어 집합의 크기 $\vert W \vert$에 비례하기 때문에 비효율적이다. 이에 등장한 개념이 Negative Sample이며 softmax함수를 아래와 같이 변경하도록 하였다. (자세한 내용 아래의 링크 참고)
$$ p(w_j \vert w_i) = \sigma (u_i^\top v_j) \prod_{k=1}^N \sigma(-u_i^\top v_k) $$
- $\sigma(x) = 1 / 1 + \exp(-x)$
- $N$ : negative sample의 개수
또한, 빈도가 높은 단어와 낮은 단어의 샘플링이 고르게 이루어질 수 있도록 별도의 subsampling 함수를 두어서 그 균형을 맞추도록 노력하였다. 이 subsampling은 등장 빈도가 낮은 단어의 벡터 표현력을 높이고, 학습 속도도 함께 향상할 수 있다고 발표되었다. 아래는 subsampling 될 때, 단어를 아래의 확률로 선택하지 않는다는 의미이며, 빈도가 높을수록 더 높은 확률로 선택하지 않는다.
$$ p(discard \vert w) = 1 - \sqrt{\frac{\rho}{f(w)}} $$
- $f(w)$ : 단어 $w$의 등장 횟수
- $\rho$ : 임계값. 일반적으로 $10^{-5}$로 설정
Skip-gram, Skip-gram with negative sampling에 대한 더 자세한 내용은 이전의 논문 리뷰인 [논문 리뷰] Distributed Representations of Words and Phrases and their Compositionality에서 확인할 수 있다.
ITEM2VEC - SGNS FOR ITEM SIMILARITY
이제 본론으로 돌아와서, SGNS를 아이템 기반 협업 필터링(IBCF)에 적용시키는 방법을 소개한다. 이 작업은 단어를 아이템으로 취급하기만 하면 되기 때문에 꽤나 단순한 작업이라고 한다. 차이점이 있다면, 사용자가 소비한 아이템의 목록에서 시공간 정보를 삭제하고, 하나의 묶음으로 처리한 것이다. 이렇게 하여 하나의 묶음 내에 있는 아이템들은 서로 유사하다고 간주한다. 쉽게 말해 영수증 단위로, 영수증에 있는 아이템들만 순서에 상관없이 학습 데이터로 사용하겠다는 의미이다.
$$ \frac{1}{K} \sum_{i=1}^K \sum_{j \neq i}^K \log p(w_j \vert w_i) $$
item2vec의 목적함수는 skip-gram의 목적함수와 차이점이 하나 있는 것을 확인할 수 있는데, 바로 주변 단어의 범위인 $c$라는 파라미터가 필요 없다는 것이다. 시공간 정보가 사라진 데이터 속에서 주변을 정의하기 힘들기 때문에, 하나의 영수증 내에 있는 아이템 집합에서 현재 아이템을 제외한 나머지 아이템들을 모두 주변 아이템이라고 정의하였다. 이 외의 나머지 과정들은 위에서 소개한 word2vec의 과정 와 동일하다. 위의 연산의 결과로 아이템 $i$의 벡터를 $u_i$라고 표현하고, 두 개의 아이템에 대해 유사도를 구할 때는 코사인 유사도를 사용하였다.
EXPERIMENTAL SETUP AND RESULTS
이번 장에서는 item2vec에 대한 정성적, 정량적 평가를 진행한다. 가장 기본이 되는 baseline으로 아이템 기반 협업 필터링 모델을 선택하였고 동일한 환경에서 비교를 진행하였다.
Datasets
저자는 item2vec을 평가하기 위해서 서로 다른 2종류의 데이터셋을 사용하였다. 먼저, 하나는 Microsoft Xbox Music 서비스의 데이터셋으로 유저와 아티스트의 정보가 주어져있다. 전체 데이터셋은 9M 개의 이벤트로 구성되어 있고, 상호작용 했다는 말은 유저가 해당 아티스트의 음악을 들었다는 의미가 된다. 전체 데이터셋에는 732K 명의 유저와 49K 명의 아티스트가 존재하였다.
두 번재 데이터셋은 Microsoft Store의 주문 내역이다. 이 주문 내역은 누가 구매했는지는 알 수 없고, 단지 그 묶음만이 존재할 뿐이다. 예를 들어서 비회원으로 우유, 빵, 치즈를 구매했다면, 이 3가지 아이템들이 묶인 데이터만이 존재하는 것이다. 따라서 어떻게 보면 유저와 아이템을 연관 지을 수 없기 때문에 비교적 약한 데이터셋이라고 볼 수 있다. 전체 데이터셋은 379K 개의 주문 내역과 1706K 개의 서로 다른 아이템이 존재하였다.
Systems and parameters
저자는 바로 위에서 보인 2개의 데이터셋에 item2vec을 모두 적용시켰으며 사용한 파라미터의 정보는 아래와 같다. 아래에서 데이터셋마다 파라미터 설정을 다르게 한 것은 데이터셋의 크기 차이 때문이라고 밝혔다.
- Optimization : Stochastic Gradient Descent
- Epoch : 20
- Negative sampling : 두 데이터셋 모두 15개
- 벡터의 차원($m$) : Xbox Music 데이터셋에서 100, Appstore 데이터셋에서 40
- Subsampling ($\rho$) : Xbox Music 데이터셋에서 $10^{-5}$, Appstore 데이터셋에서 $10^{-3}$
Experiments and results
첫 번째 데이터셋인 음악 데이터셋에서는 장르에 대한 정보가 포함되어 있지 않았다. 그렇기에 저자는 인터넷에서 장르 정보를 추출하여 장르-아티스트의 정보를 하나 따로 생성했다고 한다. 이 정보는 나중에 학습된 벡터를 시각화하여 표현할 때와 얼마나 표현을 잘하는지 확인하기 위해서 사용되었다. 이는 벡터의 표현력이 정확하다면, 장르에 대해서 잘 군집화 될 것이라는 가정 속에서 진행되었었다.
학습된 벡터를 t-SNE를 사용해 2차원 평면상에 보인 결과, 군집화를 정말 잘 한 것을 확인할 수 있었다. item2vec이 SVD보다 더 좋은 군집화를 보여주었고, 중간에 섞인 색이 다른 벡터들은 라벨링이 잘못되거나 장르가 섞인 데이터들이라고 발표하였다. 아래의 표를 보면 실제로 옳은 정답인데 잘못 라벨링된 데이터들에 대한 것을 확인할 수 있다. 이에 item2vec을 잘못 라벨링 된 데이터들을 찾는 곳에서도 사용할 수 있을 것이라는 결론을 지을 수도 있었다.
유사도에 대한 정량평가를 진행하기 위해서 해당 벡터공간에 표현된 해당 아이템과 가장 가까운 아이템을 찾아 장르가 얼마나 일치하는지 정확도를 확인해보았다. 가까운 이웃의 범위 $k$를 6~16 정도로 늘려가면서 확인을 했는데 큰 차이는 없었고, $k=8$일 때의 결과는 아래와 같았다.
이 결과를 보았을 때, 아티스트에 인기도에 따른 모든 결과에서 item2vec이 SVD보다 정확도가 더 높음을 볼 수 있었다, 또한 인기도가 낮은 아티스트에 대해 큰 차이로 좋은 결과를 보여줬는데, 이는 item2vec이 negative sample을 진행할 때 subsampling을 거쳤기 때문이라고 발표하였다. 이후에 정성적 평가도 진행했으며, 하나의 아이템이 들어오면 그 추천되는 아이템들이 잘 추천되는지 평가하였다.
정성평가를 진행했을 때도, seed item에 대해 더 좋은 품질의 추천이 이루어짐을 확인하였고, Microsoft Appstore 데이터셋의 추가 정보가 부족했음에도 꽤 아이템 간의 관계를 잘 추론했음을 확인하였다.
CONCLUSION
이번 논문에서 저자가 발표한 것은 SGNS를 기반으로 한 item2vec이다. SVD 아이템 추천 모델보다 item2vec이 정성적, 정량적 평가에서 효과적임을 증명하였으며, t-SNE로 군집화가 더 잘되고 표현력이 좋음을 보이기도 하였다. 특히 인기도가 낮은 아이템에 대해서 좋은 추천 결과를 보였는데, 이는 subsampling의 효과 덕분이라고 밝혔다. 저자는 앞으로 더 복잡한 협업 필터링 모델과 비교 분석을 진행할 계획이라고 하면서 마무리한다.
'AI > 논문 리뷰' 카테고리의 다른 글
WaveNet: A Generative Model For Raw Audio (0) | 2023.07.03 |
---|---|
NCF: Neural Collaborative Filtering (0) | 2023.02.11 |
[논문 리뷰] Distributed Representations of Words and Phrases and their Compositionality (0) | 2022.12.18 |
[논문 리뷰] Efficient Estimation of Word Representations in Vector Space (0) | 2022.12.10 |
[논문 리뷰] BPR: Bayesian Personalized Ranking from Implicit Feedback (2) | 2022.12.06 |