Recommender System/추천 시스템
-
[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] - 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..
-
[Recommender System] - Spark로 연관 규칙(Association Rule) 구현하기Recommender System/추천 시스템 2018. 6. 25. 19:30
딥 러닝, 하이브리드 CF, FM 등의 최신 추천 알고리즘이 유행이지만, 여전히 적지 않은 곳에서는 가장 기초적인 알고리즘을 잘 활용하고 있다. 그 중 하나가 바로 연관 규칙(Association Rule)이다. 이번 글에서는 추천 시스템에서 사용되는 가장 기초적이면서도 활용성이 높은 알고리즘인 Association Rule에 대해 설명하고, 이를 두 가지 버전의 Spark (PySpark, Scala) 언어로 구현하는 예제를 설명하도록 하겠다. 1. 연관 규칙의 개념 연관 규칙, 혹은 연관성 규칙(Association Rules)은 어떤 항목이 어떤 항목을 동반하여 등장하는 지에 대한 연구이다. 주로 유통 거래 데이터 구매항목들 사이의 연관성에 대해 규칙을 추론하였기 때문에, 장바구니 분석이라고 불리기..
-
[Recommender System] - 추천 시스템에 사용되는 알고리즘들Recommender System/추천 시스템 2018. 5. 12. 23:55
이전 포스팅에 이어 계속하여 추천 시스템에 대해 살펴보자. [Recommender System] - 추천 시스템의 전반적인 내용 (1)[Recommender System] - 추천 시스템의 전반적인 내용 (2) 1. 통계 기반 모델링에서 사용되는 알고리즘 지난 포스팅에서 카이제곱 분포를 이용한 검정방법에 대해 잠시 언급했었다. 설명했던 대로 추천 시스템에서 통계 기반 모델링이라는 것은 '이상' 징후를 보이는 아이템을 추출해내는 작업이라고 볼 수도 있겠다. 카이제곱 검정의 경우 구현하기도 어렵지 않고, 데이터를 전문적으로 하는 사람이라면 알고 넘어가야 하는 이론이기 때문에 조금 더 얘기해보자. 카이제곱을 통계적 모델링에 활용하는 방법은, χ2 = Σ (관측값 - 기댓값)2 / 기댓값 의 수식을 가지는 카이..
-
[Recommender System] - 추천 시스템의 전반적인 내용 (2)Recommender System/추천 시스템 2018. 5. 12. 23:44
이전 포스팅에 이어 계속하여 추천 시스템에 대해 살펴보자. 본 포스팅에서부터는 e-commerce에 다소 초점이 맞춰진 내용들로 구성되어 있다. [Recommender System] - 추천 시스템의 전반적인 내용 (1) 4. 과거 추천 시스템의 동향 추천 시스템 중에서도, 가장 역사가 오래되었으면서도 필자의 관심사가 집중된 e-commerce를 기반으로 추천 시스템의 전반적인 내용을 설명하겠다. 우선 e-commerce의 경우 크게 3가지 분류의 데이터인 Implicit Score, Explicit Score, Contents를 시스템 구축에 활용할 수 있다. 이 중 Contents는 아이템 자체에 대한 정보를 의미한다. 영화의 경우 감독명, 출연진 리스트 등이 있을 수 있고 커머스의 경우 상품의 색상..
-
[Recommender System] - 추천 시스템의 전반적인 내용 (1)Recommender System/추천 시스템 2018. 5. 12. 20:48
새 직장에서 본격적으로 일을 시작한 뒤 나의 메인 업무는 Recommender System이 되었다. 사실 이전부터 이 쪽 분야에 큰 흥미가 있었던지라, 어떻게 보면 운이 좋았다고 할 수도 있겠다. 원래 집에서는 잘 듣지도 않던 노래를 인공지능 스피커까지 구매하여 듣고, 각종 쇼핑몰 앱을 설치했으며 동영상 콘텐츠 스트리밍 유료결제까지 고민하고 있다. 문화생활도 할 겸, 추천 시스템과 친해지기 위한 노력의 일환이랄까. 하지만 학문적 베이스가 없는 나의 얕고 넓은 지식이, 추천 시스템을 만들고 고도화 하는 일을 하기에는 걸림돌이 될 수 있겠다는 생각이 들었다. 물론 데이터 과학을 통해 비즈니스를 창출할 수 있는 영역 중에 가장 넓은 폭의 지식과 다양한 경험이 필요한 분야라고는 생각하지만, 비즈니스맨이 아닌 ..