-
Neural Collaborative Filtering 논문 리뷰Archive/통계&코딩이것저것 2021. 9. 14. 11:24
Neural Collaborative Filtering(2017) : 논문 제목
협업 필터링 테크닉 중 하나가 MF인데, 여기서 interaction 을 추정할 때 inner product를 사용하는 건 모델을 약하게 할 수 있음. 그래서 이 논문의 아이디어: 추정에 DNN을 써보자!
워밍업 지식!
Implcit feedback: 증거는 없고, 정량적으로 측정할 수는 없지만 관심이 있다고 믿어 볼 수 있는것 ( 클릭을 했다거나, 검색을 해봤다거나, 장바구니에 담았다거나...등등) 좋아한다는 확실한 증거는 아님! "관심이 있다"
관심이 있으면 1, 아니면 0으로 표현 한 것: Y matrix
모델링 과정에서 모수를 추정하기 위해서는 두가지 방법이 있는데, pairwise와 pointwise loss가 있다. pointwise는 LSE처럼 정답과 추정간의 거리를 최대한 가깝게 하는 방향으로 학습하는 방법이고, pairwise 는 확실히 관심을 표한 것을 추정한 것과 unobserved를 추정한 것 사이의 거리를 최대한 멀게 하는 방향으로 학습하는 방법이다.
워밍업 지식2!
MF는 모두 알것이니 패스.
내적(선형 결합)은 MF모델을 고도화하기에는 문제가 있다. 이를 해결하기 위해 잠재 요소 차원을 높이면 과적합의 문제가 있음. 그래서 dnn을 쓰기로 한다.
일반적인 형태를 알아보자.
제일 밑은.. 각각의 사용자(아이템)에 대해서 원 핫 인코딩을 한 형태이다. 여기에 잠재-사용자(아이템) 행렬을 곱해주면 임베딩 벡터가 된다. 이를 concat하여 Neural CF Layers에 통과시키면 Output이 나온다.
그렇다면, MF의 일반화된 버전인 GMF를 살펴보자. MLP와 양대 축으로 쓰일 테크닉이다.
p_u를 임베딩 벡터라 한다면, hat_y는 노란색 칠한 식과 같이 설명할 수 있다. 여기서 a가 identity function 이고, h가 가중치 1인 벡터이면 이는 그냥 inner product 이다. 굉장히 쉽다.
그래서 어떻게 이 둘을 혼합할 수 있을까?
MLP, MF에 각각 유저, 아이템의 원 핫 벡터를 넣고 임베딩 벡터를 만든다. MF는 elementwise product로 곱하고, MLP는 concat 하여 NeuCF layer에 통과시킨다. 이때 활성화 함수로는 relu를 사용한다.
마지막으로 이 둘을 concat하여 최종 output을 만든다.
'Archive > 통계&코딩이것저것' 카테고리의 다른 글
네거티브 샘플링을 이용한 Word2Vec 구현(w. TensorFlow) (0) 2021.11.16 Ordinal Regression (0) 2021.10.13 기업명 표준화(클리닝) (0) 2021.09.06 n-gram을 이용해서 철자를 교정해보자 (0) 2021.09.02 잠재요인 협업필터링 추천시스템 구축 (0) 2021.08.23