본문 바로가기

추천시스템16

추천 알고리즘 - Factorization Machines ◈ Factorization Machine 이란 MF나 SVD++를 일반화한 모델이다. CF 계열 알고리즘의 끝판왕이라고 볼 수 있다. MF의 경우유저와 아이템 두 가지 입력변수가 rating에 미치는 공통의 K 개의 feature를 P,Q 매트릭스 형태로 추출해서 사용한다. SVD++는 P, Q 매트릭스외에 또다른 K 개의 리처를 추가적으로 뽑아낸다. 만약 n개의 다수의 입력 변수를 사용하는 것을 일반화 한 모델이 Factorization Machine 이다. 즉, n개의 변수가 있을 때, 모든 2개의 변수 짝의 interaction에 대해서 피쳐를 뽑아내서 factorize 하는 방식이다. n=2이라면 구조상 MF와 동일하다. ✅ FM의 장점 • 변수의 독립적인 영향 뿐만 아니라, 변수 간의 상호작용.. 2022. 1. 23.
추천시스템에서 Binary Data의 사용 ◈ 추천시스템에서 Binary Data 다루기 클릭, 좋아요, 읽기, 머무르기 등의 행동 데이터를 의미하며 implicit data에 해당된다. Binary 데이터는 크게 두 가지 방향으로 사용될 수 있다. 1. Binary Data로 순서 예측 Markov Model을 기반으로 해서 이진 데이터가 나타내는 행동으로부터 사용자가 다음으로 할 행동을 예측한다. A,B,C 페이지를 차례대로 방문한 사용자가 다음에 어떤 페이지를 방문할 지 예측할 수 있다. 하지만 클릭 로그가 굉장히 많아질 경우, 동일한 경로로 클릭을 한 다른 사용자가 존재하지 않을 수도 있다. 이러한 경우 가장 초기 기록부터(A부터) 없애가면서 동일한 사용자들을 비교한다. 하지만 이 방식은 많이 사용되지 않는다. 이진 데이터로 예측을 할 경.. 2022. 1. 22.
Surprise 라이브러리 ◈ surprise 라이브러리 사용 ✅ 라이브러리 소개 http://surpriselib.com/ ✔ 주요 제공 알고리즘 추천시스템 개발을 위한 패키지로 사이킷런의 일부이다. 주어진 데이터에 대해서 빠른 시간내에 결과를 확인하기 위해서 사용할 수 있다. 주어진 데이터에 대해서 surprise 패키지로 여러 알고리즘 중에 어떤 것이 성능이 좋은지 확인을 해보고, 직접 코드를 짜면서 최적화하는 방식으로 알고리즘을 정교화 할 수 있다. 여러 알고리즘을 자체적으로 제공하기 때문에 선택이 가능하다. ◈ 실습 : CF + KNN # movielens 데이터 불러오기 r_cols = ['user_id', 'movie_id', 'rating', 'timestamp'] ratings = pd.read_csv('C:/Us.. 2022. 1. 21.
추천 알고리즘 - Matrix Factorization ✅ 협업필터링의 두 가지 방식 ① Memory-based Approach 추천할 때 마다 Raw 데이터를 활용해서 계산하고 추천에 사용하는 방식 • 이전 포스팅에서 다룬 기본적인 협업필터링 알고리즘은 모두 메모리 기반 알고리즘이라고 볼 수 있다. • 계산량이 많기 때문에 현실의 빅데이터를 사용한 모델에는 적합하지 않음 ② Model-based Approach raw데이터로 미리 학습한 모델을 만들어두고, 추천할 때는 미리 학습한 모델로 예측하는 방식 • 모델 기반 접근은 주기적으로 업데이트할 필요가 있다. • Weak Signal 을 파악할 수 있다. 여러 사용자들 사이에서 나타나는 약한 패턴도 파악할 수 있다. 여러 개의 데이터를 동시에 고려해서 공통된 피쳐를 추출할 수 있다. 이를 바탕으로 메모리 기.. 2022. 1. 14.
컨텐츠 기반 추천(Content Based Filtering) 📚Content Based Filtering 개념 ✅ 기본 개념 IBCF는 특정 컨텐츠에 대해서 다른 유저들이 남긴 평점을 기반으로 유사도를 계산해서 추천을 진행하지만, 내용 기반 추천은 해당 컨텐츠의 내용 자체의 유사도로 추천하는 방식이다. 일반적인 단계는 다음과 같다. 1. 아이템 간의 유사도를 계산한다. 2. 추천 대상이 되는 사용자가 선호하는 아이템을 선정 3. 2번 단계에서 선정된 아이템과 가장 유사도가 높은 N개의 아이템을 찾는다. 4. 찾은 N개의 아이템을 사용자에게 추천한다. 위 과정에서 몇 가지 유의해야 할 부분들이 있다. 1.에서 아이템 간의 유사도를 사용하는 지표는 여러가지가 존재한다. 텍스트 데이터의 경우 TF-IDF와 같은 방법을 사용할 수 있다. 또한 2.에서 사용자가 좋게 평가.. 2022. 1. 10.
협업필터링 - 사용자의 평가 경향 고려 ◈ 참고자료 출처 • "Python을 이용한 개인화 추천시스템", 임일, 청람 ◈ 개념 ✅ 사용자의 평가 경향 고려 : Bias-From-Mean Average • 일반적으로 사용자마다 평점을 부여하는 기준이 다르기 때문에, 해당 평점이 가지는 의미도 다르게 된다. 같은 평점 3점을 부여했더라도 평균이 2점인 사용자와 평균이 4점인 사용자의 의미가 다르다. 즉, 평점을 계산할 때 해당 사용자의 평가 경향을 고려할 필요가 있다. • 이러한 단점을 보완하기 위해서 원래 평점에서 해당 사용자의 평균 평점을 빼서, 다른 유저와의 유사도로 가중평균해서 예상 평점 계산한다. 평가 경향 반영한 평균 계산 식 → 의미 : 해당 아이템의 평점이 해당 유저의 평균에서 얼마나 떨어져 있는지를 계산하는 식임 # moviele.. 2021. 12. 27.