Contents
Abstract
Generative Adversarial Networks (GANs), Variational Auto-Encoder (VAEs) 등과 같은 생성형 모델을 활용해서 추천 시스템을 구축하는 연구가 많이 제안되고 있다. 그러나, GANs, VAEs 등과 같은 생성형 모델은 노이즈를 주입해서 사용하기 때문에 노이즈로 인한 Bias가 존재할 수 있다. 이와 같은 문제를 해결한 Diffusion Model이 나왔고, 본 논문에서는 Diffusion Model을 활용한 Diffusion Recommener Model (DiffRec)을 제안한다. DiffRec은 노이즈를 완화해 사용자의 상호 작용을 효과적으로 반영할 수 있다. 추가적으로 Diffusion Model의 문제점인 많은 리소스가 요구되고 사용자 선호도의 시간에 따른 변화를 반영하기 위해 L-DiffRec, T-DiffRec을 제안한다. L-DiffRec은 item을 군집화한 후 Latent Space에서 Diffusion Process를 사용하고, T-DiffRec은 시간 정보를 활용하여 다시 가중치를 할당하는 역할을 수행한다.
Introduction
GAN 기반 모델은 Generator를 활용해서 사용자와 제품 간의 상호 작용 할 확률을 예측하고, Adversarial Training을 통해 최적화하한다. 그러나, Adversarial Training은 학습하는 것이 매우 불안정하기 때문에 성능을 보장할 수 없다. VAE 기반 모델은 Encoder를 활용해 Latent Factor의 분포를 근사하고, 사용자와 제품 간의 상호 작용의 Likelihood를 최대화하는 형태로 학습한다.
일반적으로 VAE 기법이 GAN 기반 기법에 비해 성능이 우수하지만, 다루기 쉬운 만큼 Representation 능력이 낮다. 즉, 학습은 잘 되지만, Heterogeneous 적인 사용자의 선호도를 제대로 파악하지 못하고, 복잡한 관계를 가지는 사후 분포 (Posterior Distribution)는 다루기 어렵다.
Diffusion Model (DMs)은 다루기 쉬운 Forward Process에서 입력 정보를 점진적으로 노이즈를 주입해 손상시키고, Reverse Reconstruction을 반복함으로써 기존 VAE 기법의 Trade-off (간단한 대신 복잡한 문제를 해결할 수 없는 문제) 를 완화시킨다.
추천 시스템의 목적 자체는 (c)와 같이 과거의 Interaction을 바탕으로 미래의 Interaction을 추천하는 것이기 때문에 DM 의 접근과 유사하다. 모델이 처음으로 예측한 False-Positive (FP), False-Negative (FN) 에서, 학습을 통해 예측 성능을 개선하는 방식으로 학습하는 것이다. FP는 실제 사용자가 구매했으나, 구매하지 않은 것으로 예측하는 것을 의미하고, FN는 실제 구매하지 않았으나 구매했다고 모델이 예측하는 것을 의미한다. 두 값의 손실을 줄이는 방식으로 학습하는 것이 바로 추천 시스템에서의 DM Process로 볼 수 있다.
본 연구에서는 DM Process를 활용하여 사용자의 제품에 대한 상호 작용 확률을 추론할 수 있는 Diffusion Recommender Model (DiffRec)을 제안한다. DiffRec은 Forward Process에서 Gaussian Noise를 주입시킴으로써 점진적으로 사용자의 과거 상호 작용을 오염시킨 후, Neural Network를 통해 손상된 상호 작용을 원래 값으로 복원한다. 그러나, 추천 시스템에서는 개인화된 추천이 필요하기 때문에 Image Domain에 사용하던 방법을 직접적으로 사용할 수 없다.
일단 사용자의 상호 작용 정보를 Noise로부터 손상되는 것을 방지해야 하기 때문에, Forward Process에서 추가되는 Noise의 스케일을 크게 감소시킨다(Section 3.4). 추가적으로, 추천을 위한 생성 모델을 구축하는 데 있어 중요한 1) 대규모 item 예측과 2) Temporal Modeling을 처리하기 위해 L-DiffRec, T-DiffRec을 제안한다. L-DiffRec은 추천 시스템에서는 대규모 사용자에 대해 모든 추천 제품을 구성해야하기 때문에 엄청난 메모리가 요구되는 것을 완화한 방법이며, T-DiffRec은 시간에 따른 사용자의 선호도를 반영하기 위한 방법을 나타낸다.
L-DiffRec은 제품을 그룹으로 먼저 군집화 한 후, 각 그룹에 대해서 VAE를 이용해 저차원 Latent Vector로 변환한 후 Diffusion Modeling을 수행한다 (d). 이처럼, 저차원 공간에 매핑시키면 대규모 데이터에 대해서도 처리하는 것이 가능하다 (Section 3.5, 4.3). T-DiffRec은 시간에 따라, 가충지를 Reweighting함으로써, 시간에 따른 정보를 고려할 수 있다 (Section 3.6, 4.4).

Preliminary
일단, 모델 구조에 대해서 다루기 전에, DM의 Forward Process와 Reverse Process 그리고 Optimization에 대해서 먼저 알아보자.
Forward Process는 입력으로
Reverse Process는 Forward Process와는 달리
Optimization는 Evidence Lower Bound (ELBO)의 Likelihood를 최대화하는 방식으로 학습하며 입력으로

Diffusion Recommender Model
Forward and Reverse Process
Figure 2에서 볼 수 있듯, DiffRec은 Forward Process와 Reverse Process로 구성된다. 먼저 Forward Process에서는 사용자
이때
다음으로, Reverse Process는 아래와 같이 정의해서 사용한다.
DiffRec Training
Denoising matching term
그 후, Denoising matching term에 대한 Loss Function을 살펴보면 아래와 같이 정리할 수 있다.
요약하자면, 위 수식은 모델에 의해 예측된 결과인
다음으로, Reconstruction term에 대한 Loss Function은 아래와 같이 정의할 수 있다.
위 두 수식 즉,
이때 각 Loss의 최적화가 단계별로 다를 수 있기 때문에 본 논문에서는 Importance Sampling이라는 기법을 사용하였다. Importance Sampling은
이때

DiffRec Inference
DiffRec의 Inference phase는 기존 DM과는 달리 먼저

Latent Diffusion
본 연구에서는 기존의 DM (Diffusion Model) 과는 달리 Latent Diffusion, Temporal Diffusion을 사용한다고 언급했었다. 먼저, Latent Diffusion에 대해서 알아보자. Latent Diffusion은 Encoding, Latent Diffusion, Decoding, Training, Inference 단계로 구성되어 있다.
Encoding 단계는 제품 집합
그 다음으로 Latent Diffusion 단계에서는 Encoder 단계에서 계산된 값들을 각각 연결(Concateate)하여
Decoding 단계에서는
마지막 Training 단계는 MultiVAE 방식을 따라, 아래와 같이 최적화 한다.
Inference 단계에서는 L-DiffRec은 처음으로 먼저

Temporal Diffusion
사용자의 선호도는 시간에 따라 변화하기 때문에, 시간적인 정보를 고려하는 것은 매우 중요하다. 최근에 발생한 사용자 상호작용이 현재 사용자의 선호도를 더 많이 고려할 수 있다고 가정하고, 시간에 따라 reweighting하는 방식을 사용하고자 한다. 이때
Experiments
본 연구에서는 실험 결과를 총 3단계로 나누어 해당 질문에 답하는 형태로 실험을 진행하였다. RQ 1) DiffRec이 다른 베이스라인 모델에 비해 성능이 우수한지, 그리고 DiffRec의 설계(Important Sampling, Reduce noise scale)가 성능에 어떤 영향을 주는가? RQ 2) L-DiffRec이 추천 성능과 Resource 측면에서 어떠한가? RQ 3) 학습 단계에서 Timestamp를 사용할 수 있는 경우 T-DiffRec이 기존의 Sequential Model에 비해 성능이 우수한가?
RQ 1) Analysis of DiffRec
성능은 Table 2에서 확인할 수 있듯, DiffRec의 성능이 다른 SoTA모델에 비해 최대 14.76% 높은 것을 확인할 수 있다. 추가적으로, 본 논문에서는 DiffRec의 Important Sampling과 Noise scale을 감소시키는 것이 모델 성능에 어떠한 영향을 미치는지 확인하는 실험을 추가로 진행하였다.
Important sampling에 대한 내용은 Figure 5(a)에서 확인할 수 있으며,
Figure 4는 Noise를 무작위로 주입했을 때의 성능을 비교분석한 것이며, Figure 4(a)는 train, validation set에 positive로 평가된 4점 이하의 False-Positive를 무작위로 주입시킨 결과는 나타내며, Figure 4(b)는 무작위로 non-interacted 제품에 대해 positive로 부여한 상태의 추천 성능을 비교한 것이다. 다른 모델에 비해 DiffRec이 상대적으로 Robust한 것을 확인할 수 있다. Table 3도 함께 확인하면 된다.




추가적으로 RQ 1)에서 Effects of noise scale


RQ 2) Analysis of L-DiffRec
RQ 2)에서는 L-DiffRec의 효과에 대해서 성능을 비교한 것이다. Table 6 (Clean Training)과 Table 4 (Noisy Training), 그리고 Figure 7 (Effect of category number)의 결과에서 확인할 수 있다.



RQ 3) Analysis of T-DiffRec
마지막으로 T-DiffRec의 성능을 검증하기 위한 실험으로 (Table 7), 다른 SoTA Sequential recommendation model인 ACVAE와 비교할 때 어떤 성능 차이가 있는지에 대한 실험을 진행하였다. 실험 결과, 엄청 작은 메모리를 소모하며, 기존 연구와 비슷하거나 오히려 LT-DiffRec에서는 더 좋은 성능을 보이는 것 뿐만 아니라 메모리 역시 적게 소모되는 것을 확인할 수 있다.
