TL;DR

  • Latent factor와 neighborhood 기반 CF를 딥러닝으로 결합한 Collaborative Memory Network (CMN) 논문(arXiv, 코드)
  • external memory와 neural attention으로 이웃 정보의 nonlinear weight를 adaptive하게 학습하는 구조 제시
  • CMN과 대표적인 latent factor·neighborhood 기반 CF 모델 두 가지의 관련성 규명

Memory Augmented Neural Networks

  • 정의 : 일반적인 신경망에 외부 메모리 컴포넌트 추가해서 모델의 능력 향상시킨 구조
  • 주요 구성 요소
    • 외부 메모리 : 행렬 형태로 지식 저장하는 역할
    • 컨트롤러 : 일반적으로 NN을 이용해 메모리에 대한 연산 수행
  • Associative Addressing 메모리 접근 방식 : 주어진 쿼리와 메모리에 저장된 내용 간의 유사성을 계산해서 메모리 위치 찾는 방식
    • inner product + softmax 를 통해 계산
    • attention 메커니즘과 유사해서 중요하다고 생각되는 메모리 위치에 더 높은 가중치 부여

Collaborative Memory Network (CMN)

세 가지의 메모리 (Input)
  • User specific memory : 각 사용자의 고유한 선호도 저장
    • 명의 User가 있을 때, 각 User에 대한 임베딩 행렬
  • Item specific memory : 각 아이템의 고유한 속성 저장
    • 개의 Item이 있을 때, 각 Item 대한 임베딩 행렬
  • collective neighborhood state : 특정 아이템에 대해 피드백을 제공한 사용자들(이웃)의 집합적인 선호도 저장
    • row : 사용자 v가 과거에 소비한 아이템·컨텍스트를 요약한 representation
    • attention 수행할 때, value로 가져와서 neighborhood 집합 정보 전달
Neighborhood Attention

그래서 여기서는 어떻게 이웃에 대한 정보를 활용하는거지?

  • 특정 User와 Item 조합 에 대해서 먼저 item 와 상호작용한 user 리스트 확인 (본인 포함)
  • 크기의 user preference vector 생성
    • 각 차원의 의미 : User 와 이웃인 와의 관계, 상대적 중요도
  • 의 각 차원에 softmax 씌워서 를 weighted sum해서 최종 neighborhood representation 생성

CMN은 유저들 간의 유사점을 잡아내고 target item에 기반해서 각 이웃들의 기여도를 동적으로 할당

  • : ‘현재 의 관점에서 어떤 이웃이 중요할까’를 찾는 Key
  • : ‘각 이웃이 오랜 기간 축적해온 특성’을 담은 Value
  • : 과거 행동이 농축된 장기 패턴 반영
Output Module

그래서 최종적으로 예측을 어떻게 하는거지?

  • 왼쪽 부분에서는 neighborhood attention 진행해서 최종적으로 나옴
  • 오른쪽 부분에서는 내적 + MLP
  • 최종적으로 concat하고 MLP, ReLU 태워서 예측
  • 장점
    • 특정 user에 대한 feedback이 sparse할 때, 이웃도 활용하기 때문에 유리
    • neural attention 메커니즘이 알아서 특정 item에 대한 각 user의 기여도를 조정
    • local neighborhood와 global latent factor 간의 nonlinear 상호작용 학습

Neighborhood attention으로 얻은 이웃 기반 정보 + User, Item의 임베딩을 이용한 Latent factor 기반 정보 nonlinear하게 결합

Loss : BPR optimization criterion 사용1
  • 사용자가 실제로 상호작용한 아이템은 보지 않은 아이템보다 선호된다”라는 pairwise 순위 가정을 최대로 만족하도록 파라미터 Θ를 학습
  • 이고 기본값으로 L2 regularization
  • 특징
    • AUC(Area Under ROC Curve) 와 밀접: 위 목적식은 기대 AUC를 직접 최대화하는 log likelihood
    • Smooth & Differentiable: sigmoid 기반이라 hinge·ranking loss 대비 부드럽고 미분 가능
    • Implicit feedback 친화적: explicit feedback이 없어도 학습 가능
    • Pairwise Sampling 필요: 학습 미니배치마다 삼중쌍을 무작위로 샘플링하여 SGD 업데이트
Multiple Hops

좀 더 memory network 성능 개선을 위해 여러 번 반복

  • 첫번째 attention의 결과인 을 MLP로 결합해서 다음 hop의 input 생성
다른 모델과의 관계
  1. Latent Factor Model

    • rating 행렬을 저 차원 행렬의 곱으로 표현해서 숨겨진 관계 발견
    • CMN에서 이웃 정보 처리하는 부분과 MLP, activation function 단순화 하면 GMF와 동일
  2. Neighborhood-based Similarity Model

    • 목적 : user-user similarity 행렬 추정
    • memory module이 similarity 행렬 역할 수행
  3. Hybrid Model

    • SVD ++ 는 1, 2를 합친 방식으로 동작
    • MLP랑 activation function만 잘 처리하면 동일

Footnotes

  1. https://velog.io/@zxxzx1515/논문-리뷰-BPR-Bayesian-Personalized-Ranking-from-Implicit-Feedback