ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [논문리뷰] Neural Graph Collaborative Filtering
    Data miner/Information Retrieval 2020. 8. 4. 11:32
    728x90

     

     

     

    Wang, X., He, X., Wang, M., Feng, F., & Chua, T. S. (2019, July). Neural graph collaborative filtering. In Proceedings of the 42nd international ACM SIGIR conference on Research and development in Information Retrieval (pp. 165-174).

        논문에서 주목하는 문제점은 다음과 같다. User와 Item을 각각 임베딩하여 전통적으로 협업필터링하는 방식은 추천 시그널을 반영하기에 충분하지 않다는 점이다. 위의 왼쪽 그래프처럼 유저가 왼쪽 오른쪽에 아이템들을 나열해놓고, 사용자가 선택해서 관계가 생긴 것은 하나의 에지로 표현하는 방식은 유저가 아이템을 선택하면서 발생하는 다양한 시그널들을 반영하지 못한다. 또한, 다양한 시그널을 모델에 반영하기 위해서 목적함수를 만드는 것 또한 어려운 일이다. 실제 현장에서 유저들의 로그 기록과 관련한 여러가지 관계는 수백만개 혹은 그 이상 발생하기 때문에 이러한 데이터로부터 적절하게 관계성(추천 시그널)을 추출하는 것 또한 어려운 일이다. 

    이 논문에서는 뉴럴 그래프 협업 필터링 방식을 통해서 이를 해소할 방법을 제안한다. 위의 오른쪽 그래프처럼 아이템과 유저를 하나의 노드로 만들고, 이들의 거리를 통해서 High-order-connectivity (우선순위 연결성?이라고 번역하면 좋으려나) 를 구한다. 예를 들어, u1와 u2의 유저 행동의 유사성은 i2로 연결되어 있다. 따라서, u1의 경우, u2가 과거에 소비한 i4를 미래에 소비할 가능성이 높다. 아이템의 관점에서는 i4가 i5보다 u1에게 선호도가 높을 수 있다. 왜냐하면, 아이템들로 연결된 u2와 u3이 i4를 모두 소비했기 때문이다. i5의 경우에는 u2만 소비하였다. 아이템과 유저와의 관계를 살펴보기 위해서 그래프 구조를 사용하였다.  

    CF를 계산시에 참고하는 주변의 범위를 1 hop이 아니라 2,3 hop으로 늘릴 때, 각각의 거리 정보를 포함하는 layer를 쌓는 식으로 학습한다. (By stacking multiple embedding propagation layers, we can enforce the embeddings to capture the collaborative signal in high-order connectivities) 예를 들어 위의 그림에서, 3 hop의 이웃 거리를 보면, u1에게 item4를 추천해야 할 지, item5를 추천해야 할 지를 알 수 있다. 

     

        제안한 방법론의 아키텍처는 다음과 같다. 1) 임베딩 레이어 2) 임베딩 전파 레이어로 구성되어 있다. 임베딩 전파 레이어(?) 는 다소 생소한 개념이었다. 이것의 아이디어는 시작점은 유저가 어떤 아이템을 소비할 때, 아이템의 정보가 유저에게 전달 혹은 전파된다는 점이다. 아이템의 입장에서는, 특정 유저가 아이템을 소비했다는 정보가 아이템의 특징으로 사용될 수 있다. 이를 활용하여 아이템의 유사성도 구할 수 있다. 임베딩 레이어는 전통적인 CF모델처럼 각각의 user의 전체 수와 item 전체 수에 대해서 각각 임베딩하는 레이어다. 전체 모델에서 각각의 아이템과 유저의 임베딩 값은 end-to-end방식으로 임베딩 값이 학습된다. 본 논문이 기존의 논문들과 가장 차별되는 부분은 '2) 임베딩 전파 레이어'가 있다는 점이다. 임베딩 전파 레이어에서 유저와 아이템들이 연결되어 있는 graph의 다양한 정보들을 포착한다. 

    임베딩 전파 레이어Message construction메시지 구성Message aggregation메세지 추합으로 구성되어 있다. 논문에서는 메세지를 어떤 정보가 이동하는 흐름을 표현하기 위해서 사용한다. 유저가 아이템을 소비했다면, 아이템의 어떤 정보가 유저에게로 흐르는 것이기 때문에 이를 '메세지'로 표현한 듯하다. 아래의 논문에서 Mi->u는 메세지가 i에서 u로 흐르는 것을 의미한다. user로 전달되는 정보는 크게 item에서 순수하게 전달되는 정보값item과 user의 연관성을 고려하여 전달되는 값으로 구성된다. 이 두 가지 값을 더해, 각각의 유저와 아이템의 1번째 이웃들의 수로 정규화해서 나눈 값이 Mi->u값이 된다. 

     

    Message construction과정이 끝나면, 1 hop의 이웃노드 정보들을 모두 합산하며, 또한 user자체의 정보도 포함하는 부분도 더한다. 이와 같이, 임베딩 전파 레이어의 이점은 주변의 유저와 아이템의 1차 연결 정보를 명시적으로 이용한다.

     

    High-order-connectivity 1-hop의 주변 이웃들의 정보를 이용하는 것과 같이 2-hop, 3-hop정보를 활용하는 방법은 이전 레이어의 정보를 활용해서 계산하는 방식이다. 

     

Designed by Tistory.