Recommender System
-
Learning to Rank와 nDCGRecommender System/추천 시스템 2019. 8. 13. 18:48
최근 검색 모델에도 관심을 가지게 되면서, 랭킹모델과 IR에 대해 다시 공부중이다. 기존에 관심있었던 커머스 분야의 추천 랭킹 시스템에서는, ‘유저가 실제로 살 것 같은 하나의 아이템’을 잘 추천해주는 것이 중요했기 때문에, MRR이나 nDCG 같은 순위 기준의 랭킹 평가 방법을 굳이 사용하지는 않았었다. cost function도 단순히 binary classification 문제를 해결하는 형태로 구성된다. 상품단위의 구매 AUC를 줄세우기만 해도 구매에 대한 측정은 충분히 가능했기 때문. 어떤 순위로 등장했는지를 평가하는 것은 중요하지 않았다. 하지만 일반적인 서비스에서의 검색, 추천 시스템은 노출되는 아이템의 Ranking을 얼마나 리스트 단위로 잘 정리하는지가 중요하다. 물론 “도메인에 따라”,..
-
[Recommender System] - 개인화 추천 시스템의 최신 동향Recommender System/추천 시스템 2019. 6. 17. 18:17
[Recommender System] - 추천 시스템의 전반적인 내용 (1) [Recommender System] - 추천 시스템의 전반적인 내용 (2) [Recommender System] - 추천 시스템에 사용되는 알고리즘들 추천 시스템의 전반적인 내용을 정리한 기존 블로깅에서는 최신 동향과 시스템에 대해서는 아주 간략한 정도로만 소개했었다. 이번 포스팅에서는 추천 시스템의 최신 기술적 동향을 살펴보도록 하자. 본 포스팅에서 기술하는 내용은 완전히 'general'한 추천시스템에 대한 내용이라기보다는, e-commerce에 어느정도는 초점이 맞춰져 있다고 볼 수 있다. 또한 최근 추천 시스템의 거의 절대적인 트렌드인 '개인화 추천'에도 초점이 맞춰져 있다. Recent Personalized Reco..
-
[Recommender System] - Autoencoder를 이용한 차원 축소 기법Recommender System/추천 시스템 2019. 5. 20. 14:56
차원축소에 흔히 사용되는 방법은 SVD와 같은 Matrix Factorization, Eigen value 등의 개념을 활용한 것이다. 특히나 추천시스템에서는 유저나 아이템 단위의 profile에 이러한 차원축소를 유용하게 사용하곤 한다. 유저의 행동정보를 flat하게 펼쳐놓은 vector라던지, 비정형 정보의 embedding을 예로 들 수 있다. 기본적인 차원축소는 원래의 고차원 데이터를 중간 단계의 vector로 표현하고, 이를 다시 원래의 모형대로 완성하는 학습을 거치면 중간 단계의 vector가 축소된 정보를 잘 담고있다는 아이디어에서 출발한다. 가장 널리 알려진 PCA는 원래의 모형대로 학습하는 과정 없이, 선형적인 성질만을 이용하여 데이터의 분산을 최대화하는 차원으로 데이터를 투영시킨다. P..
-
[Recommender System] - 3D CNN for Session-based Recommendation 번역 & 리뷰Recommender System/논문 및 블로그 리뷰 2019. 3. 25. 18:28
업무 차 해외출장을 갔던 도중, 운이 좋게도 논문의 저자를 만날 기회가 있었다. 그래서 급하게 질문거리를 만들기 위해 논문 리뷰를 했는데, 워낙에 글쓰기적으로 잘 쓴 논문이라 반나절만에 빠른 논문 리뷰가 가능했다. 그래서 이번 포스팅은 번갯불에 콩 구워먹듯 읽어본 논문을 다시 한 번 소화시키기 위해 정리하는 포스팅이다. 이 논문은 Recommender System 관련 paper에서 꽤나 인지도가 있었던 논문이다. criteo, RecSys 등의 영향력 있는 추천 미디어에 선정된 논문이기도 하며, 아이디어 자체가 굉장히 재미있어서 주목받았던 아티클이다. 보통 추천 시스템에 적용되는 알고리즘은 feature 관점에서 cross-feature 를 찾아내거나, implicit feedback을 활용하는 방법에..
-
[Image Object Detection] Faster R-CNN 리뷰Recommender System/논문 및 블로그 리뷰 2019. 2. 14. 16:47
이전 포스팅 [Image Object Detection] R-CNN 리뷰 에 이어서, Faster R-CNN 까지 리뷰해 보았다. 그리고 중간 단계인 Fast R-CNN에 대한 리뷰도 포함되어 있다. 사실 논문은 겉핥기 정도로 중요한 부분만 들여다봤다. 아직 봐야할 next work가 산더미이기 때문에, 직관적인 이해와 loss function 정도를 이해한 내용을 바탕으로 작성하였다. 직관적인 이해는 쉽지만, 내부 구조를 자세히 들여다보면 꽤나 복잡한 모델임을 알 수 있다. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Fast R-CNN R-CNN의 메인 아이디어는 기존의 descriptor를 이용한 Ima..
-
[Image Object Detection] R-CNN 리뷰Recommender System/논문 및 블로그 리뷰 2018. 12. 12. 22:02
Contents based한 추천 알고리즘 설계 방법에는 크게 정형 데이터와 비정형 데이터를 이용하는 방법이 있다. 최근 관심있게 보고 있는 것이 비정형 데이터인데, 비정형 데이터의 대표격인 Image feature를 이용한 CB 방식을 공부중이다. 이미지 쪽은 학생 시절 Image Search를 가라(?)로 구현해 본 이후 한번도 들여다 본 적이 없기에 이번 기회에 제대로 공부해야 할 필요성을 느꼈다. 그 중에서도 Object detection에 대해 천천히 논문 리뷰를 진행하면서 이미지에 대한 공부를 진행할 요량이다. 개인적으로 빠른 공부에 가장 좋은 것은 SOTA 방식의 접근법을 역추적하며 히스토리에 대해 공부하는 방법이라고 생각한다. 그래서 첫 번째 리뷰할 논문은 R-CNN에 관한 논문으로 선정하..
-
[Recommender System] - Factorization Machine 리뷰 + codeRecommender System/논문 및 블로그 리뷰 2018. 11. 1. 16:47
본 포스팅은 링크의 글을 번역한 것이다. 글을 옮기면서 부족한 설명이나 내용은 Factorization Machine 원 논문의 내용을 추가하여 살을 붙여 두었다. 원 블로그의 글은 FM을 이용하여 추천 영역에서의 cold-start 문제를 해결하는 방법에 대한 짧은 설명과 코드를 함께 기술한 글이다. 블로그에서는 tffm을 이용하여 예제를 만들었지만, 현재 사용중인 라이브러리가 xlearn인 관계로, 본 포스팅에서는 xlearn을 이용한 tutorial 코드를 작성하였다. 내용은 생략하고, 코드만 궁금한 사람은 링크로 가면 된다. 데이터 분석가가 개인화 추천을 잘 수행하기 위해선, 최신 머신 러닝을 잘 적용하는 것도 중요하다. 추천 시스템에서의 가장 잘 알려진 알고리즘들이 대부분은 잘 동작한다. 하지만..
-
[Recommender System] - Wide & Deep Learning for Recommender Systems 리뷰Recommender System/논문 및 블로그 리뷰 2018. 8. 24. 13:34
추천시스템에서의 SOTA(State of the Art)는 Matrix Completion 계열의 FM, SVD 등의 알고리즘이다. 최신 추천 알고리즘들의 핵심은 변수들의 의미를 나타내는 latent vector를 만들어 내거나, 변수간의 cross-product를 자동화하는 것이다. 구글이 2016년 발표한 Wide & Deep Learning for Recommender Systems는 이러한 알고리즘들의 핵심을 Deep Learning의 관점에서 새롭게 해석한 것이다. 여기에 사람의 기억과 일반화에 대한 모티브를 기술적 아이디어로 추가하여 발표하였다. 이 알고리즘은 선형대수에 대한 깊은 이해가 없어도 일반적인 Deep Learning의 관점에서 쉽게 구현에 접근할 수 있고, 추천 시스템에 한정되어 ..
-
[Recommender System] - Python으로 Matrix Factorization 구현하기Recommender System/추천 시스템 2018. 8. 1. 01:43
Matrix Factorization 혹은 Matrix Complementation과 관련된 수많은 변형 알고리즘들이 존재한다. 하지만 본질적으로는 행렬을 분해하고 분해한 행렬을 변수로써 학습하는 것이다. 업데이트 방법에 따라 NNMF, ALS 등으로 나뉘고, cost를 정의하는 방식에 따라 Implicit, explicit data를 처리하는 다른 알고리즘이 된다. 그래서 본질을 제대로 이해하고 있다면, 최근 Kaggle 등에서 유행하고 있는 여러 Matrix Factorization의 최신 알고리즘도 크게 다르지 않다는 것을 알 수 있다. 본 포스팅에서는 Python 코드를 이용하여 banila-MF를 구현할 것이다. (Matrix Factorization에 대한 이론적 설명 참고) 1. Basic ..
-
[Recommender System] - MF(Matrix Factorization) 모델과 ALS(Alternating Least Squares)Recommender System/추천 시스템 2018. 7. 16. 20:06
추천 알고리즘 중에 가장 널리 사용되는 알고리즘은 단연 CF이다. 그중에서도 단일 알고리즘으로써 가장 성능이 높은 것은 단연 Model Based CF인 Matrix Factorization 계열의 알고리즘이다. (CF 기반 모델링에 관한 내용 참고) 이번 포스팅에서는 MF와 ALS에 대해 공부해보고, Implicit feedback 상황에서 ALS를 적용하는 방법을 살펴볼 것이다. 포스팅의 내용은 [추천 엔진을 구축하기 위한 기본서 - Suresh K.Gorakala]와 논문 그리고 이곳을 참고하였다. 1. Matrix Factorization 우선 MF 모델은 user-item 의 matrix에서 이미 rating이 부여되어 있는 상황을 가정한다. (당연히 sparse한 matrix를 가정한다) MF..