728x90
반응형

협업필터링 15

추천시스템 - (4) 추천 알고리즘

추천시스템 추천 알고리즘의 종류 기본적인 모델 추천 모델에는 다음과 같은 원소들이 있다. 사용자 시스템을 사용하는 사용자들 아이템에 대한 선호도를 가지고있다 아이템 추천을 시행할 대상이다. 평점 사용자가 아이템에 대해 표현하는 선호도이다. (커뮤니티) 사용자들이 표현하는 의견들이 통용되는 공간(커뮤니티) 이다. 사용자는 개개인의 속성(특성)을 가지고 있고, 그 속성에 기반해 사용자모델이 만들어진다. 사용자 모델은 선호하는 영화 장르, 좋아하는 샐깔과 같은 사용자의 정보들의 집합이다. 각 아이템에도 속성이 있다 - 영화의 감독은 누구인가, 책의 저자는 누구인가와 같은 속성을 가지고있다. 그리고 사용자는 아이템에 대한 평점을 매길 수 있다 - 평점은 수적인 점수일 수도 있고, 구입한 이력일 수도 있다. 비개..

추천시스템 - (3) 추천의 분류

추천시스템 추천의 분류 추천시스템을 고안할 때는 다음 8가지 분류를 고려해 고안한다: 추천의 도메인 추천의 목적 추천의 맥락 추천의 제안자 개인화의 정도 개인정보와 신뢰도 인터페이스 추천 알고리즘 추천의 도메인 무엇이 추천이 되고있는가? 기사인가, 물건인가, 상품인가? 사람을 추천하는 중인가? 연속적인 무언가 (음악 플레이리스트) 인가? 오래된 아이템을 대하는 방법 어떤 도메인에서는 새로운 아이템을 추천하는데에 관심이 있고 (영화나 책 등), 어떤 도메인에서는 오래된 아이템을 추천하는데에 관심이 있다 (음악, 상품 등) 추천의 목적 상품을 사거나 무언가를 소비하게 하는것 사용자/고객을 교육하는 것 상품이나 컨텐트의 커뮤니티를 형성하기 위한 것 추천의 맥락(Context) 추천이 이루어질 때 사용자는 무엇..

추천시스템 - (1) 개요

추천시스템 추천시스템의 역사 정보검색 정보검색 분야는 방대한 양의 문서들에 대해 질문할 수 있는 시스템이 필요해서 만들어졌다. 초반에 이 분야가 발전하게 된것은 컴퓨터 회사들의 많은 소송때문이었다. 같은 기술이 도서관의 카탈로그와, WWW의 페이지들의 색인을 만드는데 쓰인다. 사람들은 다이나믹하게 카탈로그를 조회할 수 있기를 원하기 때문에 실시간으로 조회하는 기능이 필요했다. 많이 쓰이는 방식중 하나는, 문서들의 단어들의 빈도수를 사용해 랭킹을 매겨주는 TFIDF라고 하는 방법이다. 정보 필터링 정보검색의 반대되는 추정에서 시작 사람들은 기사를 검색할 때, 주제에 맞는 모든 기사를 원하는 것이 아니라 나와 연관있는 것 또는 내가 관심있는 것만 원한다. 정보의 필요는 정적이지만, 컨텐트 베이스는 동적이다...

추천시스템 18 - 경사하강법

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems SVD의 문제점 SVD는 좋은 테크닉이지만 아래와 같은 문제가 있다: SVD를 계산하는것은 매우 느리다. SVD는 채워지지 않은 데이터에 대해 어떠한 조치를 취해주어야 한다. 따라서 이러한 문제들을 해결하기 위해 경사하강법을 적용해보고자 한다. 접근법 경사하강법을 적용하고자 하는 인사이트는, SVD를 사용해 추천을 계산할때의 에러를 직시하는것이다. 선형대수적으로는 SVD를 구한 다음, k만큼의 값을 자르는것이, ra..

추천시스템 17 - 행렬 분해

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems 잠재 의미 분석 (Latent Semantic Analysis) 정보검색 분야에서도 비슷한 고민을 먼저 시작했다. 문서의 키워드벡터와 쿼리의 키워드벡터 들의 조합은 간단하지만 좋은 표현법은 아니다. - 의미를 내포하기가 힘들다 이것을 해결하기 위해 특이값분해 (Singular Value Decomposition, SVD)라는 테크닉을 사용한다. SVD는 행렬을 사용자-아이템 행렬에서 선호도 기반의 작은 행렬로 감소시..

PyTorch 5 - 딥러닝 기반 협업필터링

딥러닝 기반 협업필터링¶ 이번 포스팅에서는 신경망을 기반으로 한 협업필터링을 구현해본다. 신경망 기반 협업필터링은, 기존의 MF기반 협업필터링과는 조금 다르다. MF기반은 벡터끼리의 내적곱을 활용하지만, 신경망 기반은 비선형 활성함수(relu)를 사용하게 된다. In [43]: # 패키지 import from pathlib import Path import pandas as pd import numpy as np In [44]: data = pd.read_csv('./ml-latest-small/ratings.csv') data.head() Out[44]: userId movieId rating timestamp 0 1 1 4.0 964982703 1 1 3 4.0 964981247 2 1 6 4.0 9..

PyTorch 4 - 협업필터링

PyTorch를 활용한 협업필터링¶ 이번 포스팅에서는 행렬분해를 사용한 추천시스템 문제를 풀어보려 한다. 그리고 더 일반적인 산경망 모델을 사용해 해당문제를 풀어보겠다. MovieLens 데이터셋은 영화 추천에 자주 활용되는 유명한 데이터셋이다. 이 데이터셋에는 영화 추천 시스템 내의 별점 5점 만점의 평점데이터와 자유 텍스트 태깅 정보가 들어있다. 총 9125개의 영화에 대한 100004개의 평점과 1296개의 태그가 기록되어 있다. 영화 데이터는 https://grouplens.org/datasets/movielens/ 에서 내려받을 수 있다. In [3]: # wget을 사용해 데이터를 내려받는다 !wget http://files.grouplens.org/datasets/movielens/ml-la..

추천시스템 16 - 사용자-사용자 협업필터링 코드예제

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems 원본 코드 예제에서는 Excel로 코딩하게 되어있지만, 파이썬으로 코딩한 예제입니다. 사용자-사용자 협업필터링¶ 정규화 없는 협업필터링¶ 사용자-사용자 연관성 행렬을 완성하시오. 체크를 위해서, 사용자 1648과 사용자 5136의 연관성은 0.40298, 그리고 사용자 918과 사용자 2824의 연관성은 -0.31706이다. 사용자들 사이의 연관성은 -1에서 1사이이다. 사용자 3867과 사용자 89의 이웃을 각각 ..

추천시스템 15 - 단항의 아이템 추천

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems 단항의 아이템 데이터 단항의 아이템 데이터는 곧 간접적 선호도 정보를 말한다. 아이템의 클릭 수 음악의 플레이 수 구매 이력 등 이런 데이터를 사용하려면 조금의 조정이 필요하다. 다른말로 표현하면, 위와같은 데이터를 평점과 같이 수치화 할 수 있어야 한다. 0/1의 값으로 구매했는지 안했는지 사용 몇번 구매/플레이를 했는지 정보의 수치화 그렇다면 이 정보를 어떻게 수치화하고 정규화할 수 있을까? 평균중심화는 별로 의..

추천시스템 14 - 아이템-아이템 협업필터링

추천시스템 본 포스팅은 Minnesota대학교의 Intro to Recommender Systems코세라 강좌를 정리한 내용입니다. https://www.coursera.org/learn/collaborative-filtering?specialization=recommender-systems 서론 기본적으로 사용자-사용자 필터링은 잘 동작 한다. 하지만 데이터가 부족할때는 예측값을 만들어내기 힘들다. 큰 시스템에서 사용자가 많다 해도, 공통점을 찾을 수 없는 사용자가 있다면 추천을 만들어내기 힘들다. 또한 평점을 잘 매기지 않는 사용자들에게도 추천을 만들기 힘들다. 이런 단점을 극복하기 위해 아이템-아이템 필터링이 고안되었다. 사용자보다는 여러 사람들이 평점을 매기는 아이템에 데이터가 더 많을 수 있다...

728x90
반응형