ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [주간학습 정리] Week 12
    Naver AI Tech 2024. 11. 7. 14:09

     

    3줄 요약
    추천 프로젝트를 했다
    시간이 너무 부족했다
    선택 과 집중!

     

     

    사용자의 책 평점 데이터를 바탕으로 사용자가 어떤 책을 더 선호할지 예측하는 프로젝트를 했다.

    프로젝트 이외의 일로 인하여 실제 개발하는 시간이 매우 적었다(3일 정도?)

    제한된 시간에 하고싶은것을 다 할수 없어서 선택과 집중을 하기로 했다.

    내가 선택한것은 Graph가 적용된 추천 모델 중 하나인 NGCF(Neural Graph Collaborative Filtering)을 사용해보는 것이다.

    논문을 읽고 이해하고 공부하고 코드를 짜고 할 시간은 없어서 최대한 빠르게 NGCF를 사용해보는것에 초점을 맞췄다.

     

    아래는 NGCF에 대한 포인트 만 작성한 것으로 자세한것은 참고자료를 보고 추후 추가 공부를 하는게 좋을것 같다.

     

    NGCF(Neural Graph Collaborative Filtering)

    NGCF가 나오게된 배경

    • Neural graph collaborative filtering
      • Latent Factor Model 중 하나인 Matrix Factorization
        • Matrix Factorization은 유저-아이템 상호작용에는 유저의 행동, 아이템 평점에 영향을 주는 잠재된 요인(latent factor)이 있을 텐데 그 잠재된 요인을 고려하여 유저에게 적합한 아이템을 추천하는 방법이다
        • 문제점: Latent factors 간의 곱셉을 선형으로 결합하는 내적(inner product)은 유저-아이템 상호작용 데이터의 복잡한 구조를 알아내기 어렵다

     

    • Neural graph collaborative filtering
      • Deep Neural Network를 사용하여 유저-아이템 상호작용을 학습
      • 문제점: 기존 임베딩 방식은 유저-아이템간의 상호작용을 잘 나타내기에는 부족함이 있다

     

    • Neural graph collaborative filtering
      • 이러한 문제점들을 해결하고자 나온게 NGCF이다

     

     

    논문에서 나오는 고차원 그래프 형태

    • High order connectivity는 경로 길이가 1보다 큰 노드에서 u1에 도달하는 경로를 의미한다.

    • 그래프로 알수있는 점
      • 유저 u1과 유저 u2가 아이템 i2와 상호작용하는것을 알 수 있고 유저 u1과 유저 u2간 행동 유사성이 존재함을 알 수 있다
      • 유저 u1과 유사한 유저 u2가 과거 아이템 i4를 소비했다. 이를 통해 유저 u1이 아이템 i4를 선택할 가능성을 알 수 있다
      • 레이머 l3을 보면 유저 u1의 경우 아이템 i5 보다 아이템 i4를 더 선택할 확률이 높은것을 알 수 있다(이유: i4는 2개, i5는 1개)

     

    NGCF model 아키텍쳐

    • Embeddings Layer
      • 일반적인 CF 모델 처럼 각각의 유저와 아이템에 대해 임베딩하는 레이어
      • 전체 모델에서 유저와 아이템의 임베딩 값은 end-to-end 방식으로 학습된다

     

    • Embedding Propagation Layer
      • 그래프 구조를 따라 협업 시그널을 캡처하고 유저 및 아이템 임베딩을 개선하기 위해 GNN의 메시지 전달 아키텍처를 구축한다
        • 협업 시그널: 유저(또는 아이템)간 행동의 유사성을 나타내기 위해 유저-아이템 상호작용에 잠재된 요인
      • 유저가 아이템을 소비할때 아이템 정보가 유저에게 전달된다. 특정 유저가 아이템을 소비한 정보가 아이템 피처로 사용될수 있다. 이를 토대로 아이템 또는 유저의 유사성을 측정할 수 있게 된다
      • Embedding Propagation Layer는 연결된 유저-아이템 간의 임베딩 전파를 수행하며 Message Construction과 Message Aggregation 두 가지 주요 작업으로 구성된다
        • Message Construction
          • 아이템(유저) 정보가 유저(아이템)에게 전달되는 메시지를 구성한다
        • Message Aggregation
          • 생성된 메시지들을 모아서 새로운 임베딩을 생성한다
      • 라플라스 메트릭스
        • 모든 유저와 아이템에 대한 표현을 효율적으로 동시에 업데이트 할 수 있고, 노드 샘플링 절차를 생략 할 수 있다

     

    • Prediction Layer
      • 서로 다른 레이어에서 나온 표현은 각기 다른 메시지를 강조하기 때문에 유저 선호도 반영에 서로 다른 기여를 한다. 따라서 이들을 concatenate하여 유저(아이템)을 위한 최종 임베딩을 구성한다
      • 내적을 사용하여 타겟 아이템에 대한 유저의 선호도를 예측할 수 있다

     

     

     

    참고자료

     

     

     

     

    'Naver AI Tech' 카테고리의 다른 글

    [주간학습 정리] Week 13  (2) 2024.11.15
    [주간학습 정리] Week 11  (0) 2024.11.07
    [주간학습 정리] Week10  (0) 2024.10.25
    [주간학습 정리] Week 9  (1) 2024.10.18
    [주간학습 정리] Week 8  (3) 2024.10.11

    댓글

© 2019 All rights reserved.