본문 바로가기

카테고리 없음

[논문 리뷰] Bootstrapping User and Item Representations for One-Class Collaborative Filtering

논문

ABSTRACT

one-class collaborative filtering (OCCF)은 유저가 (홈페이지 방문, 앱 설치함) 와 같은 positive user-item interaction이 적게 관측 된 데이터를 이용하여 positive하게 관련된 user-item pair (앞으로 간단하게 pair로 쓰겠습니다) 을 식별하는 것을 목표로 하고 있습니다. 기존 OCCF 연구들은 관측되지 않은 pair를 negative로 고려한 채 모델링을 하였습니다. 예를 들어 유저가 어떤 상품(item)을 클릭한 경우 관심이 가는 상품으로 보고 positive 하다고 할 수 있고, 클릭하지 않은 경우 관심이 없는 상품이라 생각하여 negative로 고려한 것입니다. 하지만 사실은 유저가 관심이 있는 상품이지만 상품을 보지 못하여 클릭을 못한 경우, 즉 관측되지 않은 pair에 대해서 negative로 고려하기 때문에 문제가 있습니다. 그래서 저자들은 negative sampling을 필요로 하지 않는 새로운 OCCF framework를 제안했고, BUIR라고 이름 지었습니다. BUIR는 self-supervised learning에서와 같이 positive하게 연관된 유저, 아이템 들의 representation이 비슷하게 되도록 학습을 하는데 이때 collapsed solution을 피하고자 두개의 encoder을 이용하였습니다. (collapsed solution이란 하나의 encoder을 사용한 similarity 학습과정에서 손실함수를 최소화하기 위해 단순히 모든 input을 같은 representation으로 매핑하여 손실함수를 최소화하는 것이다)

그리고 보통 OCCF는 데이터가 sparse 하므로 data augmentation을 이용하는데, BULR은 유저와 아이템 neighborhood information에 기반하여 데이터를 증강합니다. 저자들은 실험을 통해 BULR모델이 효과적임을 보였습니다.

 

INTRODUCTION

OCCF는 유저의 아이템에 대한 implicit 피드백(구매 이력, 사이트 클릭 등 직접적인 선호를 매기진 않은)을 이용하여 유저가 선호하는 아이템을 추천해 줍니다. 많은 아이템 속에서 소수의 아이템을 만나는 경우가 많기 때문에 implicit feedback은 sparse 한 데이터이고, 유저가 직접적으로 선호를 매기지 않기 때문에 선호를 추정하기 어렵습니다. OCCF 문제의 접근법은 유저와 아이템의 similarity를 이용한 판별 모델링이 주였고, 관측되지 않은 interaction은 negative로 가정하였습니다.

또한 기존 연구들은 관측되지 않은 pair를 랜덤하게 샘플링하는 negative sampling을 이용하였는데, 샘플링하는 분포에 따라 성능이 달라지고 계산 비용이 크다는 문제점이 있습니다. 이러한 문제를 해결하기 위해서 저자들은 기존 연구와는 다르게 negative sampling이 필요하지 않은 BULR를 제안하였습니다. BULR는 online, target encoder를 이용한 student-teacher network 구조를 이용하였습니다. 예측 task을 위해 online encoder을 학습시키는데, 예측을 위한 target은 target encoder에 의해 제공됩니다. 더 정확히 말하자면 online encoder에 의해 계산된 user vector가 target item에 의해 계산된 item vector와 가까워지도록 학습이 된다는 것입니다(반대로도 학습이 이루어집니다). 이때 target encoder는 online encoder을 위한 target으로써 더 좋은 representation을 제공하기 위해 momentum-based moving average에 기반하여 업데이트됩니다.

BUIR: PROPOSED FRAMEWORK

논문에서 제안한 BULR에 대해서 살펴보도록 하겠습니다.

OCCF의 목표는 interaction score를 구하는 것인데, 이 score는 유저 u가 아이템 v와 얼마나 상호작용하는지를 (유저가 아이템을 얼마나 좋아할 것인지) 나타냅니다. 이 score를 기반으로 유저에게 score가 높은 k개의 아이템을 추천해 주는 일을 할 수 있습니다. BULR의 전반적인 구조는 다음과 같습니다.

 

encoder는 유저나 아이템 id를 저차원의 embedding vector로 매핑하고 좋은 representation을 뽑아낼 수 있게 학습이 됩니다. 이때 유저와 아이템의 id를 나타내는 one-hot vector를 각각 online encoder, target encoder(반대로도)의 입력으로 줍니다. 두 encoder는 같은 구조를 가지고, 각각 𝜃, 𝜉로 파라미터화 됩니다. 하지만 업데이트되는 방식은 다릅니다. online encoder는 자신의 output과 target encoder의 output 사이의 error를 최소화하도록 학습되고, target encoder는 자신의 output의 일관성을 지키기 위해 momentum update에 기반하여 천천히 학습됩니다. 

BUIR loss

 

𝑞_𝜃는 online encoder 위에 있는 predictor로 online encoder의 user(item) vector가 target encoder의 item(user) vector를 예측하기 위해서 도입된 것입니다. BULR LOSS 는 두 error term으로 이루어져 있습니다.  

  1. online user vector  𝑓_𝜃(𝑢) 가 target item vector 𝑓_𝜉(𝑣)를 정확히 예측하기 위해 업데이트
  2. online item vector  𝑓_𝜃(𝑣) 가 target user vector 𝑓_𝜉(𝑢)를 정확히 예측하기 위해 업데이트 

이때 𝑙2 [x, y] 는 𝑙2 정규화로 이는 x, y의 내적의 음의 값으로 표현할 수 있어서 두 error term에 대해서 내적으로 표현하였습니다. 여기서 왜 𝑓_𝜃(𝑢)가 𝑓_𝜃(𝑣) 대신에  𝑓_𝜉(𝑣)에 유사하게 되도록 학습하는지 의구심이 들 수도 있을 겁니다. 이에 대해서 저자들은 negative interaction 없이 positive interaction만을 이용하여 학습을 할 때, 한 네트워크만을 이용해 𝑓_𝜃(𝑢)와 𝑓_𝜃(𝑣)의 error를 줄이는 것은 collapsed solution을 야기하기 때문이라고 말합니다.

앞서 말했듯 파라미터들은 다음과 같이 최적화 됩니다.

 

온라인 인코더는 backpropagation을  통해 최적화되고, 타겟 인코더는 온라인 인코더의 moving average로 업데이트됩니다. 𝜏값이 클수록 타겟 인코더는 온라인 인코더에 더 느리게 근접해 갑니다. 이러한 업데이트 방식은 𝜉 가 𝜃보다 느리게 업데이트되도록 하여 온라인 인코더에 더 좋지만, 일관적인 target을 제공함으로써 representation을 bootstrap하게 해줍니다.

Top-K Preferred Item Prediction

user에게 k개의 아이템을 추천해 주기 위해 interaction score를 구해주어야 합니다. interaction score는 cross-prediction task에 기반하여 정의되는데, online encoder에 의해 얻어진 representation만을 이용하게 됩니다. 이는 각각의 encoder가 같게 수렴하기 때문에 가능한 일입니다. 기존 OCCF 방법들은 user-item interaction을 내적을 통해서 최적화한 반면 BULR은 추가로 predictior를 사용하여 최적화하는 동시에 interaction score을 계산할 수 있습니다.

Neighbor-based Data Augmentation

앞에서 OCCF의 data sparsity 문제를 해결하기 위해서 이웃 정보에 기반한 augmentation을 도입한다고 했었습니다. 유저의 neighbors와 아이템의 neighbors는 각각  V𝑢, U𝑣로 나타냈습니다. 

이웃에 대해서 간단히 설명하자면 어떤 유저가 item 1, 3, 5 을 구입한 경우 V𝑢 = [1,0,1,0,1,...] 같이 나타나게 됩니다. input으로 기존 user, item vector와 이웃정보가 함께 입력이 되고, 다음과 같은 augmentation function 𝜓을 이용해 data augmentation을 수행하게 됩니다.

이는 각 input interaction (𝑢, 𝑣)에서 유저, 아이템 이웃의 부분집합을 이용해 여러 interaction을 만들어 augmentation을 수행하는 것입니다. 그 후 online encoder는  L_𝜃,𝜉 (𝜓 (𝑢, V𝑢),𝜓 (𝑣, U𝑣 ))을 최소화함으로써 학습이 되고, interaction score는 𝑓_𝜃(𝑢, V𝑢), 𝑓_𝜃(𝑣, U𝑣 )을 이용해 계산이 됩니다.

EXPERIMENTS

논문에서는 기존 모델인 BPR, NeuMF, CML, NGCF, LGCN, M-VAE, CFGAN 등의 모델을 이용하여 성능을 비교하였습니다. 저자들은 두 개의 encoder network를 이용해 두 개의  BULR 모델을 사용했습니다.

  • BUIR_id: encoder로 single embedding layer를 사용한 BULR framework 
  • BUIR_nb: 이웃정보를 이용하는 LGCN encoder에 기반한 BULR framework, 제안된 neighbor augmentation technique 사용

Table를 보시면 세 개의 데이터셋에서 모두 BULR가 성능이 제일 좋은 것을 볼 수 있고, 이웃 정보를 이용할 때 성능이 더 좋은 것을 알 수 있습니다. 이 때  𝛽 ∈ {10%, 20%, 50%}는 학습 데이터 셋에서 user-item interaction의 비율을 나타낸 것으로, 데이터의 여러 수준에서의 sparsity에서의 성능을 비교하기 위해서 도입하였습니다.  𝛽가 작을수록, 즉 데이터가 sparse 할수록 성능이 좋아지는 것을 볼 수 있습니다.

CONCLUSION 

논문은 OCCF를 위한 새로운 framework인 BLUR를 제안하였습니다. BULR는 cross-prediction error를 최소화함으로써 유저와 아이템의 representation을 bootstrap할 수 있었고, 학습시 관측된 positive interactions만을 사용하기 때문에 negative sampling이 필요 없었습니다. 그리고 OCCF에서의 data sparsity issue를 완화하기 위해서 neighborhood information을 이용한 data augmentation도 도입하였습니다. 저자들은 실험을 통해서 BULR의 우수성을 입증하였고, 데이터가 sparse 할수록 성능이 좋아짐을 보였습니다.