Giter Site home page Giter Site logo

machine-learning-paper-review-and-implementation's Introduction

Machine Learning Paper Review and Implementation

이 리포지토리는 주요한 머신러닝 논문 및 MLOps 등 머신러닝 엔지니어링과 관련된 논문들을 리뷰하고 구현한 내용들을 정리하고 있습니다.
자세한 논문 리뷰글은 블로그를 참조해주세요.
논문리딩 과정에서 rough한 분석은 issue에 정리중입니다. 😃

Computer Vision (CV)

Natural Language Process (NLP)

waiting list...
Efficient Estimation of Word Representations in Vector Space (2013)

Recommender System (RecSys)

waiting list...
Deep Variational Autoencoder with Shallow Parallel Path for Top-N Recommendation (VASP)
[IEEE] Collaborative Filtering for Implicit Feedback Datasets (2008)
[UAI] BPR: Bayseian Personalized Ranking from Implicit Feedback (2009)

MLOps & Data Engineering

machine-learning-paper-review-and-implementation's People

Contributors

cow-coding avatar

Watchers

 avatar

Forkers

peternara

machine-learning-paper-review-and-implementation's Issues

Questions - NGCF

Neural Graph Collaborative Filtering

2.1 Embedding Layer

Q1.

  • NGCF가 explicit인 것은 이해함
  • 그렇다면 기존의 CF방식은 latent로 제공되어서 explicit이 아닌것인가?

2.3 Model Prediction

Q1.

  • 위의 식에서 L개의 임베딩이 존재하는 것은 user 1명단 connection에 여러 개 path가 있기 때문?

Q2.

  • controlling the ragne라는 의미가 layer별로 message가 기록되므로 controlling이 가능하다는 의미인가?

1. Introduction

Neural Graph Collaborative Filtering

서두

  • 기존 CF는 user와 item 정보를 활용하여 historical interaction을 생성하여 학습하는 방식
  • 이 과정에서 파라미터에 기반한 user preference를 예측

문제제기

  • 기존 CF 방식에는 대표적으로 3가지(MF, NCF, translation-based CF)를 언급
  • 기존 CF는 embedding function이 user(item)의 행동 유사성(behavioral similarity) 을 위한 명시적인 표현이 부족함
    • 기존 CF는 user나 item의 ID나 attribute를 활용한 descriptive features를 사용
  • 이런 경우 기존 방법들은 CF를 포착하는 과정에서 추가 정보의 부족으로 전적으로 interaction function에 의존하는 문제가 발생
  • 하지만 현실에서 user-item interaction을 사용하기엔 데이터의 방대함으로 collaborative signal 추출의 어려움이 발생함

문제의 해결책

  • interaction graph 구조를 활용한 High-order Connectivity를 활용함
  • user-item-user 관계로 선호 강도를 표현
  • tree구조보다 확장성을 위해 그래프 구조로 표현

2. Methodology

Neural Graph Collaborative Filtering

NGCF 구성

  1. Embedding Layer
  2. Embedding Propagation Layer
  3. Prediction Layer

Embedding layer

  • user-item interaction graph를 사용해 embedding layer를 update
  • embedding은 MF와 동일하게 진행하지만 전달방식이 다름
  • NGCF는 임베딩 벡터를 interaction graph로 우선 학습하여 적용함
    • interaction graph는 explicit collaborative signal을 전달하는 효과

Embedding Propagation Layer

First-order

Message Construction

  • e_i와 e_u의 element-wise 연산은 user-item의 embedding이 유사할수록 유지되는 정보(표현되는 정보)의 양이 많음

Message Aggregation

  • user u의 주변 message들을 모아서 u의 representation을 update
  • LeackyReLU를 사용하면 positive, negative signal을 모두 살릴 수 있음
  • 정보손실을 방지하고자 u <- u term도 함께 추가해줌 (original)

High-order

  • 1개의 layer는 1개의 order를 처리함
  • 여러단계 order의 connectivity를 처리하려면 여러 layer가 필요
  • multiple embedding propagation layer를 쌓아서 representation process에 collaborative signal을 주입함

Model Prediction

  • user u에 대해 각각 다른 layer에서 전달된 message는 서로 다른 user의 선호는 의미함
  • item도 동일하게 진행하고 두 결과를 각각 concatenate함

  • 최종 연산식은 위와 같음 (*표시 항은 각각 concatenate한 input)

Optimization

  • BPR loss를 최적화하는 방향으로 학습 진행
  • BPR loss 특성상 관측 데이터, 비관측 데이터를 쌍으로 처리하는 방식을 사용함
  • activation function은 sigmoid
  • optimizer는 Adam으로 설정
  • Batch process 진행시 배치에 대한 layer propagation을 통한 임베딩을 미리 생성하고 모델 파라미터를 업데이트함

Model Size

  • 각 레이어에 대해 embedding matrix 생성하지만 parameter 수가 그렇게 크지 않음
  • 기존 MF보다 아주 약간 많은데, 이는 무시해도 될 정도 차이

Message and Node Dropout

  • Message Dropout : layer 내의 message 일부를 drop함 - user와 item의 단일 연결의 존재나 부재에 robust하게 해줌
  • Node Dropout : 특정 node를 차단하여 해당 node 출력을 차단 - 특정한 user나 item에 영향을 받는 것을 막아줌

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.