AI 공부 기록 블로그

[논문 리뷰] Non-invasive Self-attention for Side Information Fusion in Sequential Recommendation 본문

논문 리뷰

[논문 리뷰] Non-invasive Self-attention for Side Information Fusion in Sequential Recommendation

dhgudxor 2022. 6. 6. 14:30

 

 

논문은 2021년 AAAI에서 발표되었으며, 어텐션 메커니즘을 사용하여 SOTA의 성능을 보인 시퀀셜 추천시스템(BERT4Rec)에 side information(rating, description)을 반영하기 위한 방법을 제안하였습니다. 

 

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


1. Introduction

  어텐션 메커니즘의 등장은 시퀀셜 추천시스템에서도 적용되어 현재까지 좋은 성능을 보이고 있습니다. 특히, 유저가 구매한 아이템의 시퀀스에 [Mask] 토큰을 활용하여 양방향으로 학습한 BERT4Rec 모델은 SOTA의 정확도를 달성하였습니다. 단순히 생각했을 때, 유저에게 새로운 아이템을 추천하기 위해 이전에 아이템 혹은 유저가 가지고 있는 side information을 활용하면 더 좋은 추천 성능을 기대할 수 있을 것입니다. 하지만 본래 BERT의 모델 경우 한 가지 유형만(word token) 고려될 수 있도록 설계가 되었습니다. 이에 대해 저자들은 아래의 그림과 같이 유저가 구매했던 item_id와 시퀀스 정보(time stamp)만 반영했던 기존 구조에서 추가로 아이템에 대한 카테고리 정보를 직접 반영하여 Sequential model(BERT4Rec)의 입력으로 사용하였습니다(Invasive fusion approaches). 아래의 우측 그림을 보면 아이템의 정보(item_id)와 아이템의 피쳐 정보($f_k$), 유저가 아이템에 남긴 정보($b_n$)를 Fusion function을 이용해 합쳐준 이후 self-attention 방법을 통해 item representaion을 업데이트시켜줍니다. 해당 Invasive fusion approaches 결과로 모델의 성능 향상은 미미했으며, 오히려 더 떨어지는 악효과가 나타났다고 합니다. (저 역시 Amazon 데이터의 Luxury Beauty를 통해 위와 같은 실험을 진행해보았으나 모델의 성능은 오히려 더 떨어지는 것을 확인할 수 있었습니다.) 이에 대해 저자들은 모델이 유저가 구매했던 아이템들을 해석하는 과정에서 다양한 side information 정보들이 섞이면서 아이템에 대한 정보를 불필요하게 어렵게 만들었기 때문이라고 언급하고 있습니다. 

2. Methodology

  이에 따라 유저의 시퀀스에 대한 side information을 효과적으로 반영하기 위해 item_id만을 이용한 'pure item representation'과 side information이 합쳐진 'fused item representation'으로 나누어 Sequential model의 입력을 제안하였습니다(Non-invasive fusion approaches). 이때 self-attention 연산에서 Q, K는 fused item representation으로부터 추출하고, V는  pure item representation으로부터 추출한 값을 이용하게 됩니다. 이처럼 V를 혼합되지 않고 순수한 item_id 정보에서 추출한 값을 연산에 사용함으로써 layer를 통과할 때마다 item_id의 본래 정보를 잘 유지할 수 있도록 해줍니다. 

 

  한편 저자들은 item_id와 side information($f_k, b_n$)을 합쳐주는 방법으로 다음과 같은 세가지 연산 방법을 제안하였습니다.

(1) Add operations : $F_{add}(f_1,...,f_m) = \sum_{i=1}^{m}f_i$

먼저 Add 연산의 경우 간단하게 item_id와 이에 해당하는 side information의 벡터들을 더하는 방법입니다. 

 

(2) Concat operation : $F_{concat}(f_1,...,f_m) = \mathbf{FC}(f_1\odot\cdot \cdot \cdot \odot f_m )$

Concat 연산의 경우 모든 입력 피쳐에 대한 벡터들을 합쳐준 후에 fully connected layer를 통해 차원의 크기를 맞추어 줍니다.

 

(3) Gating operation : $F_{gating}(f_1,...,f_m) = \sum_{i=1}^{m}G^{(i)}f_i$,   $G = \sigma(FW^F)$

Gating 연산의 경우 피쳐 벡터들에 trainable coefficients를 두는데, 모든 피쳐 벡터($F$)와 trainable parameter($W^F$)연산 결과에 대해 시그모이드 함수를 사용해서 중요한 피쳐 정보를 반영할 수 있게 합니다. 

Fusion operation의 경우 우월한 방법은 없으며, 데이터셋과 도메인에 따라 서로 다른 결과가 나오기 때문에 적절한 방법을 채택해서 사용할 수 있다고 합니다. 

 

  최종적으로 Non-invasive Self-attention 방법을 제안한 NOVA-BERT는 아래와 같은 구조를 가지게 됩니다. 각각의 NOVA layer에 pure item representation과 fused item representation이 두 가지 입력 받고, (Q, K) (V)의 입력이 다른 Non-invasive Self-attention을 수행하여 기존 입력과 같은 크기를 가진 updated representations를 얻게 됩니다. 해당 updated representations는 다음 layer의 입력으로 사용되게 되며, side information이 반영된 fused item representation은 updated reprentations와 같이 반영되는 것이 아닌 Nova layer에 직접 입력되게 됩니다. 이러한 구조는 다음의 실험을 통해 기존의 접근 방식보다 우수한 접근임을 보였습니다. 

< NOVA-BERT 모델 >

3. Experiments

  실험은 ML-1m, ML-20m 그리고 실제 데이터 셋인 APP를 사용하여 모델을 검증하였습니다. 아래 표를 보시게 되면 ML-1m 데이터 셋은 다른 데이터 셋에 비해 비교적 적은 수의 데이터를 가지게 됩니다. 또한 실험에 이용한 side information의 경우 year, genres, category 등을 사용했습니다. 

< 실험 데이터 셋 >

  먼저 저자들은 item_id와 위치정보가 반영된 BERT4Rec, invasive methods 그리고 fusion function에 대해 비교 실험을 진행하였습니다. 제안한 NOVA-BERT가 세 가지 데이터 셋에 대해서 가장 좋은 성능을 보였으며, item_id만 반영한 BERT4Rec 모델보다 좋은 성능을 보였습니다. 반면 단순히 모든 피쳐 정보를 한 번에 연산하는 invasive methods의 경우 성능이 미세하게 증가하거나 오히려 떨어지는 것을 알 수 있습니다. 또한 한 가지 흥미로운 사실은 NOVA-BERT를 사용했을 때 비교적 작은 규모의 데이터 셋이였던 ML-1m은 HR@10 기준 약 13% 정도 증가한 것을 알 수 있지만, 나머지 두 데이터 셋에서는 약 3%, 1.5%로 비교적 적은 증가가 나타났습니다. 이에 대해 저자들은 충분히 많은 양의 데이터들을 사용하게 될 경우 그 자체로 아이템에 대한 정보를 충분히 학습할 수 있게 하며, 이는 side information에 대한 영향이 줄어들었을 것이라고 주장합니다.

< 실험 결과 표 >

  다음 실험으로는 모델이 어느 위치에 attention이 걸리는지 확인하기 위해 NOVA-BERT 모델의 맨 첫 번째 layer의 헤드별로(row) 6개씩 랜덤하게 샘플링하여(columns) attention weight를 시각화하였습니다. 아래 그림을 보면  side information이 반영되지 않은 BERT4Rec 모델은 뚜렷한 특징 없이 균등하게 attention weight의 분포가 나타나는 것을 알 수 있습니다. 반면 NOVA-BERT의 경우 모델이 n+1 시점의 아이템을 예측하는데 바로 이전 시점들에 대해 attention weight 값이 높게 나타나는 것을 알 수 있습니다. 이를 통해 side information이 layer마다 학습을 통해 item에 대해 업데이트가 되지 않아도 초기 layer에서 충분히 좋은 정보를 반영하고 있음을 알 수 있습니다. 

< attention weight 시각화 >

 

Comments