[WWW’22] Personalized Complementary Product Recommendation 리뷰

Austin Park
recsys-summarize
Published in
7 min readNov 21, 2023

아마존에서 발행한 보완재 추천 논문 리뷰

English version

배경

Complementary product recommendation (CPR), 즉 보완재 추천은 함께 자주 구매되는 (frequently bought together) 상품을 제안하는 것을 목표로 한다.

이 분야의 주요 모델들은 그 동안 말 그래도 “자주 함께 구매되는" 상품을 찾는 것에 집중했다. “개인화"는 없었다.

하지만 현실세계에서는 같은 상품을 구매했다 하더라도, 사용자마다 함께 구매하는 상품은 다르다. 따라서 CPR 분야도 사용자의 선호도를 고려해야한다.

Challenge

기존 모델에 개인화 요소를 삽입하는 것은 어렵지 않다. 쉽게는 사용자가 이미 구매한 상품을 제외하거나, 사용자가 좋아하는 속성을 지닌 상품을 추천해주는 등 간단한 rule을 활용할 수도 있다.

하지만 중요한 것은, 기존 CPR 분야에서 쓰이는 모델에 개인화 요소를 어떻게 해야 효율적으로 각각의 장점을 살릴 수 있는가 이다.

따라서 본 논문의 저자들은 product relation modelinguser behavior modeling을 동시에 수행하면서 서로에게 영향을 끼치는 하나의 프레임워크를 제안한다.

제안방법

TL; DR

GNN 모델을 통해 상품 임베딩을 학습하고, Transformer 모델을 통해 사용자 임베딩을 학습한다. query 상품의 임베딩과 가까운 N개의 상품을 추출한 뒤, 사용자 임베딩과 유사도를 계산해서 이를 재정렬한다.

디테일

Non-personalized complementary product recommendation

Graph Attention Network (GAT)를 활용한다. 이때 상품은 노드, co-purchase된 상품들은 에지로 연결된다.

  • 각 상품 i의 제목과 리뷰 피쳐를 input으로 받아서 projection을 통해 상품 임베딩 𝛉_i을 초기화한다. (text 임베딩에 pretrained BERT 사용)
  • 식 (1) 에서 얻게된 상품 임베딩들은 GAT 레이어에 인풋으로 주어진다.
  • GAT 레이어에서는 각 노드를 이웃 노드들과 어텐션을 계산하고, 이를 취합하여 새로운 임베딩을 계산한다.
  • 1개 이상의 GAT 레이어를 통과한 뒤 얻어지는 상품 임베딩은 아래 loss를 최소화하는 방향으로 학습된다.
    (co-purchase 된 상품과는 가깝게, negative sample와는 멀게)
λ 와 𝝐 는 하이퍼 파라미터

ps. 더 자세한 내용은 “P-Companion: A principled framework for diversified complementary product recommendation” 참고

User Behavior Modeling

  1. 사용자의 구매이력에 있는 각 상품을 상품의 제목 feature를 사용해서 임베딩한다.
  2. 임베딩된 사용자 구매이력을 Transformer encoder에 통과시켜 사용자 임베딩 u를 얻는다. (encoder output의 첫번째 벡터)
  3. u는 아래 loss를 최소화하는 방향으로 학습된다.
λ 와 𝝐 는 (3)과 같은 값 사용
  • 식 (5)는 식 (3)과 유사하지만, positive sample은 같은 사용자가 co-purchase한 상품이 되고, 임베딩 각 차원의 값은 u에 의해 weight가 부여된다. 즉 weight가 높은 차원의 값은 오차에 대해 더 큰 패널티를 받는다.

Contrastive Learning

User behavior modeling은 사용자 구매 이력을 사용하기 때문에, 매우 sparse한데, 이는 양질의 사용자 임베딩을 얻는데 어려움을 준다.

저자들은 이 문제를 완화하기 위해 사용자 구매이력 P가 있을 때, 이를 임의로 자르거나 재정렬해서 variation P1, P2를 만든다.

이 두 variation은 P와 같이 Transformer encoder를 통과하여 u의 variation u1, u2가 된다. 이 둘은 positive pair가 되고 같은 미니배치내에 다른 사용자 임베딩인 s와는 negative pair가 되어 contrasive learing에 사용된다.

Contrasive learning loss function는 아래와 같다.

최종 손실 함수

λ1, λ2 는 하이퍼 파라미터

추론 방법

  1. GAT로 학습한 상품 임베딩에서 query 상품의 임베딩과 query 상품을 제외한 나머지 상품들의 임베딩 중 가장 가까운 N개 상품 추출
  2. N개 상품을 Transformer encoder로 추출한 사용자 임베딩 u와 dot product해서, 그 값이 큰 순서대로 재정렬해서 최종 추천 결과 반환

실험

데이터셋

  • 6월부터 11월 사이에 co-purchase 세션을 보유한 10000명의 유저 샘플링.
  • 구매 이력은 5월 부터 사용, 8천명/1천명/1천명을 학습/검증/테스트로 분리

추천 정확도 비교

  • User behavior modeling 과 contrastive learning이 효과가 있음을 알 수 있음

재정렬하는 상품군의 크기에 따른 추천 정확도 변화

  • 상품군의 크기에 크게 영향을 받지 않는다. 이는 GAT 모델이 충분히 훌륭하다는 뜻이 아닐까?

메타 정보의 효과

  • 상품 임베딩 학습에는 제목 임베딩을 사용하는 것이 효과가 좋았다.
  • 사용자 임베딩에는 구매이력과 함께 demographic 정보를 사용하는게 효과가 좋았다.

느낀점

  • candidate-generation과 re-ranking 으로 이루어진 2-phase 추천이 하나의 프레임워크 안에서 학습되고 사용될 수 있는 것이 흥미로웠다.
  • workshop 논문이라서 구체적인 하이퍼 파라미터 값이 없어서 아쉬웠다.
  • 1만명의 사용자면 많은 수가 아닌데도 불구하고 꽤 복잡한 구조의 프레임워크에서도 잘 학습되는 것이 신기했다.
  • 상품군의 크기에 따른 정확도 변화를 보여주는 ablation study에서 25 이하일 때의 값도 보여주면 좋았을 거 같다.
  • 논문에서 case study 결과도 보여줬는데, 납득이 어려웠다. (모델이 알아서 이전에 구매했던 상품에 적은 점수를 부여했는데, 모델 구조 중에 이런 역할을 할 수 있는 부분이 잘 보이지 않았다.)

--

--