AI 공부 기록 블로그

[논문 리뷰] Decoupled Side Information Fusion for Sequential Recommendation 본문

논문 리뷰

[논문 리뷰] Decoupled Side Information Fusion for Sequential Recommendation

dhgudxor 2022. 6. 24. 21:24

 

 

논문은 Transformers를 기반으로 한 시퀀셜 추천시스템에 입력 데이터와 연관된 side information을 모두 분해해 모델 입력으로 사용하여 side information의 효과를 입증하였습니다. 현재는 arXive에 preprint되었으며, 2022 SIGIR conference에 Accept 되었습니다.

 

 

논문 리뷰는 제가 이해한 내용을 바탕으로 정리하였으며, 잘못된 내용이 있을 경우 지적해주시면 감사하겠습니다 :)


1. Introduction

  먼저 시퀀셜 추천시스템의 목적은 사용자의 행동 패턴(구매 이력)을 바탕으로 이후에 구매할 아이템을 예측하는 문제입니다. 기존 시퀀셜 추천 모델은 CNN, RNN 등을 사용해서 행동 패턴을 파악했다면, 2017년 NLP 분야에서 트랜스포머 모델이 등장한 이후 Attention을 기반으로 한 시퀀셜 추천 모델에 대한 연구가 활발히 진행되고 있습니다. 특히 사용자의 행동 시퀀스에 대해 단방향으로 학습하는 SASRec 모델과 [mask] 토큰을 사용해서 양방향으로 학습하는 BERT4Rec 모델은 아직도 좋은 성능을 보여주고 있으며, 여러 논문에서 Baseline으로 사용이 되고 있습니다. 

  초기 Attention을 기반으로 한 시퀀셜 추천모델이 등장하였을 때, 사용자가 아이템에 대해 Click, 구매 여부 등 암시적인 정보(Implicit data)만을 활용하여 연구가 진행되었습니다. 하지만 이러한 암시적인 정보만을 활용하여 추천 모델을 구축하는 것보다 아이템 혹은 사용자와 연관 있는 텍스트, 이미지, 카테고리 등을 사용하게 되면 보다 좋은 성능 개선을 기대할 수 있습니다. 이와 관련된 많은 연구가 진행되었지만, 저자는 시퀀셜 추천 모델에 side information을 반영한 이전 연구들에 대해 많은 한계점이 있다고 지적합니다. 

  먼저 2019년에 발표된 FDSA 모델의 경우 아이템에 대한 시퀀스와 side information이 독립적으로 self-attention block을 통과하고 마지막에 Fully-Connected Layer를 통해 합치는 구조로 되어 있습니다. 또한 2020년에 발표된 S3-Rec 모델의 경우 pre-trained 과정에서 Item-Attribute, Sequence-Item, Sequence-Attribute, Sequence-Sequence의 4가지 태스크를 통해 side information을 학습하게 되고 이후 fine-tuning 과정에서 사용자의 행동 패턴을 바탕으로 학습과 평가가 이루어지게 됩니다. 두 모델의 경우 실제 성능 개선이 있었지만, 사용자가 구매했던 아이템의 시퀀스 정보와 직접 반영되지 않고 독립적으로 모델 입력에 들어가기 때문에 효과적이지 않다고 지적합니다. 

  이후 사용자의 시퀀스에 대해 Attention 연산 수행 시 side information도 함께 고려될 수 있도록 초기에 item에 통합하는 방법을 제안하였습니다. 2021년에 발표된 ICAI-SR 모델의 경우 아이템과 서로 다른 속성들에 대해 그래프로 연결하고, fused embedding을 추가하여 item_id와 합쳐줍니다. 또한 2021년에 발표된 NOVA 모델의 경우 아이템과 side information 정보들 합쳐진 fused item representation을 Q, K 연산을 수행하고, pure item representation을 V로 입력하여 아이템 정보는 유지하면서 side information 반영하는 모델을 제안하였습니다. 

  위 방법들의 경우 좋은 성능을 보였지만, 초기 단계에서 side information을 item_id와 합치는 방법은 다음과 같은 이유로 한계가 있다고 지적합니다.

  먼저 Attention 매트릭스의 rank bottleneck이 발생하며, 이는 attention score의 결과를 악화시킬 것이라고 말합니다. 선형대수의 개념인 rank는 행렬이 가지는 independent 한 column의 최대 개수로, attention matrix 내에서 표현이 가능한 속성들의 최대 크기를 의미합니다. side information이 초기에 통합된 Attention matrix를 보게 되면, 전체 입력 시퀀스에 head의 갯수로 나눈 $d_h$의 크기가 최대 가질 수 있는 rank가 됩니다. 하지만 이는 side information을 반영하기 이전과 같은 크기의 rank를 가지기 때문에 rank bottleneck이 발생할 수 있다고 지적합니다. 

  또한 모델 입력 이전 단계에서 side information을 합치게 될 경우 item_id와 관련이 없는 정보들도 함께 반영되어 불규칙한 교란이 일어날 수 있습니다. 또한 입력 단계에 임베딩 벡터에 속성 정보들이 서로 같은 gradient를 가지기 때문에 side information 간에 상대적 중요도를 학습하는데 제한이 있습니다. 

  이러한 문제점을 해결하고자 저자들은 Decoupled Side Information Fusion for Sequential Recommendation(DIF-SR) 모델을 제안합니다. 

2. Model

  저자가 제안한 모델의 구조는 Embedding Module, Decoupled Side Information Fusion Module, Prediction Module 총 3개로 구분되어 있습니다. 아래의 그림을 보시게 되면 사용자의 입력 시퀀스에 해당하는 Item_id와 Attribute 들이 모두 분리하여 Q, K 연산을 수행하게 됩니다. 이후 Attention Fusion을 통해 각각을 합쳐준 후에 V에 해당하는 순수한 item_id와 Attention 연산을 수행하게 됩니다. 또한 모델의 학습 과정에서는 Item_id뿐만 아니라 Attribute까지 학습하는 multi-task training 방식을 사용하게 됩니다. 

  각각의 Module에 대해 자세히 살펴보면 다음과 같습니다. 먼저 Embedding Module에서 입력 시퀀스로 n 길이만큼의 사용자가 구매한 아이템 ($\mathbb{S}_u = [v_1, v_2, ..., v_n]$)이 입력될 때 이들을 각각의 ($E^{ID} \in \mathbb{R}^{n\times d}$, $E^{f1} \in \mathbb{R}^{n\times d_{f1}}$, ..., $E^{fp} \in \mathbb{R}^{n\times d_{fp}}$) 크기를 가진 임베딩 임베딩 벡터들로 바꾸어 주게 됩니다.

 

$E^{ID}=\varepsilon_{id}([I_1, I_2, ..., I_n])$

$E^{f1}=\varepsilon_{f1}([f_1^{(1)}, f_2^{(1)}, ..., f_n^{(1)}])$

...

$E^{fp}=\varepsilon_{fp}([f_1^{(p)}, f_2^{(p)}, ..., f_n^{(p)}])$

 

  이때 side information의 차원 크기는 item_id 차원의 크기보다 작게하여($d_{fj} \leq d$) 필요 이상으로 많은 파라미터를 갖는 over-parameterization과 연산량으로 인한 오버헤드를 감소시켜주도록 합니다. 실제로 저자들의 실험에서 side information의 차원이 item_id의 차원보다 작은 크기를 가질 때 모델의 효율성이 증가하였다고 합니다.

 

  Decoupled Side Information Fusion Module에는 여러 개의 레이어로 구성되어 있으며 각 레이어에서는 Current item representation과 Auxiliary side information 두 개의 입력값을 받게 됩니다. Auxiliary side information 입력할 때 레이어를 통과하여 업데이트된 정보가 반영되는 것이 아닌 Embedding Module에서 생성한 side information 벡터들이 레이어에 직접 반영되게 됩니다. 이를 통해 연산량을 줄이고 overfitting을 방지할 수 있습니다. 아래의 DIF-Block의 수식을 보게 되면 레이어마다 item representation이 업데이트될 때 side information($Ef1, ..., Efp$)은 그대로 반영이 되고 업데이트가 된 item representation($R_i^{(ID)}$)이 입력으로 들어가는 것이 특징입니다. 여기서 FFN은 Feed Forward Layer를 의미하고, LN은 Layer Normalization을 의미합니다. 

 

$R_{i+1}^{(ID)} = LN(FFN(DIF(R_i^{(ID)}, E^{f1}, ... , E^{fp})))$

$R_1^{(ID)} = E^{ID}$

 

 저자는 이렇게 side information 들을 모두 분리해 Attention 연산을 수행할 경우 다음과 같은 장점이 있다고 주장합니다. 먼저 모델 입력 이전 단계에서 side information을 합치게 될 경우 Attention matrix의 rank가 입력 차원의 크기에 각 head의 수만큼 나눈 $d_h$크기만큼의 rank를 갖지 못한다는 단점이 있었습니다. 하지만 side information을 모두 분리하게 될 경우 Attention matrix의 rank 크기는 $d_h + \sum_{i=1}^{p}d_{hj}$으로 side information에 대한 추가적인 rank 크기를 직접적으로 반영할 수 있습니다. 아래의 그림을 보시게 되면 이전 제안 모델인 SASRecF 모델과 NOVA 모델의 경우 Attention Head의 rank가 32의 크기를 갖지만 DIF-SR모델의 경우 48 정도의 크기를 갖는 것을 알 수 있습니다. 

  두 번째로는 Attention 연산 수행 이전에 side information 정보들을 합치게 되면 gradients가 유연하지 못하고 다른 속성 간에 관계를 포착하기 어렵다는 단점이 있었습니다. 아래의 SASRec과 NOVA-SR 모델의 Loss 수식을 보게 되면 $G$라는 모델 입력에 item_id와 side information이 함께 입력되게 됩니다. 하지만 제안한 DIF-SR 모델의 경우 item_id와 side information이 모두 분리가 되어서 attention 연산을 수행하기 때문에 비교적 유연한 기울기를 갖고 속성 간의 관계를 잘 포착할 수 있는 장점이 있습니다.

  Prediction Module에서는 Item과 side information에 대한 각각의 Loss로 모델을 학습하는 Multi-task training 방식을 사용하고 있습니다. 먼저 Item Loss의 경우 사용자의 시퀀스에 대해 여러 개의 DIF block을 통과하여 업데이트된 final representation vector($R_L^{(ID)}[n]$)와 미리 생성해놓았던 item embedding table($M_{id}\in\mathbb{R}^{|I|\times d}$) 간에 행렬 연산을 수행한 후 softmax 함수를 통해서 사용자가 다음 시점에 구매할 아이템의 확률값을 도출해내게 됩니다. 이후 실제로 사용자가 구매했던 아이템($y_i$)과 cross entropy를 계산하여 모델을 학습시킵니다. 또한 multi-labeled를 갖는 side information의 경우 모든 속성에 대해 binary cross entropy를 통해 속성들의 정보를 학습하게 됩니다.

 

$\hat{y} = softmax(M_{id}R_{L}^{(ID)}[n]^\intercal]))$

$L_{id} = -\sum_{i=1}^{|I|}y_ilog(\hat{y}_i)$

 

$\hat{y}_i^{(fj)} = \sigma(W_{fj}R_L^{(ID)}[n]^{\intercal}+b_{fj})$

$L_{fj} = -\sum_{i=1}^{|fj|}y_i^{(fj)}log(\hat{y}_i^{(fj)})+(1-y_i^{(fj)}))log(1-\hat{y}_i^{(fj)})$

 

  최종적으로 DIF-SR 모델의 Loss function은 item loss와 side information loss를 합한 아래와 같은 식으로 표현이 가능합니다. 이때 $\lambda$는 하이퍼파라미터로 저자들의 실험에선 대략 5 정도의 $\lambda$ 크기를 가졌을 때 가장 좋은 성능이 나타났습니다.

 

$L = L_{id} + \lambda\sum_{j=1}^{p}L_{fj}$

3. Experiments

  실험에 사용한 데이터셋은 아마존에서 제공하는 Beauty, Sports, Toys와 Yelp 데이터를 사용하였으며, side information은 아이템의 카테고리 정보와 position 정보를 사용했습니다. 여기서 position은 실제로 사용가 구매했던 아이템의 시퀀스를 의미합니다. 모델의 평가 방식은 leave-one-out 방식으로 사용자가 1~n개만큼 아이템을 구매하였을 때 마지막에 구매했던 n번째 아이템은 test 데이터 셋으로, n-1 번째 구매했던 아이템은 validation 데이터 셋으로 구분합니다. 

 

< 실험 데이터 셋 >

  아래의 실험 결과는 기존 baseline 모델들과 성능을 비교한 내용입니다. 먼저 side information이 반영이 안 된 시퀀셜 모델 (GRU4Rec, Caser, BERT4Rec, SASRec) 중에 SASRec모델이 가장 좋은 성능을 보였습니다. 이는 시퀀셜 추천모델에 Attention을 기반으로 한 모델이 우수함을 보여주고 있습니다. 저자들이 제안한 DIF-SR모델의 경우 기존에 side information을 반영한 모델들과 비교하였을 때 모두 우수한 성능을 보였습니다. 이는 DIF-SR 모델이 높은 rank, 유연한 gradient 등의 특징을 지녔기 때문이라고 주장합니다. 

< 모델 성능 비교 표 >

  아래의 표는 attention을 기반으로 한 SASRec 모델과 BERT4Rec 모델에 DIF-Block을 사용해서 side information을 반영하였을때와, 하지 않았을 때를 비교한 내용입니다. 표의 내용을 종합해보면 side information을 반영한 DIF-BERT4Rec 모델은 Recall@10과 NDCG@10에서 18.46%와 36.16%만큼 성능 개선이 나타났으며, DIF-SASRec의 경우 12.42%와 22.64%만큼 성능 개선을 보였습니다. 이를 통해 사용자의 시퀀셜을 고려하는 추천 모델에 side information은 유의미한 정보라는 것을 입증합니다. 

 

  이 외에도 Ablation Study, Hyper-parameter 비교 등의 실험을 진행하였지만, 이에 대한 결과는 생략하도록 하겠습니다.

4. Conclusion

  본 논문의 저자들은 이전 시퀀셜 추천모델에 side information을 반영하기 위해 제안되었던 모델들의 한계점을 지적하면서, side information 정보를 효과적으로 반영하기 위한 모델을 제안하였습니다. 모델 입력 단계에서 item_id와 side information을 모두 분리해 Attention 연산을 수행함으로써 higher rank attention matrices와 adaptive gradient를 가질 수 있게 되었습니다. 또한 모델 학습 단계에서 side information도 함께 학습하기 위해 multi-task training 방식을 채택하여 기존 비교 모델들보다 더 좋은 성능을 보였습니다. 

 

Comments