본문 바로가기
728x90
반응형

전체 글190

Using Content-Based Filtering for Recommendation -> 하고자 하는 것: 콘텐츠 기반 필터링의 개념과 문제점에 대한 설명을 한다. 콘텐츠 기반의 필터링 방법을 통한 추천시스템의 구현을 보여준다. -> 문제를 해결하기 위한 방법: CF가 가진 explicit한 사용자의 데이터(좋아요! 구독! 시청시간! 등..)는 항상 사용자가 행동을 어떻게서든 표시를 해줘야하는데 이는 사실상 믿고 더블로 가기 힘들다. 그렇기 때문에 implicit한 데이터라고 할 수 있는 사용자의 행동패턴을 통해서 피드백을 확보한다. 그래서 사용자 모델은 역동적이고 긍정적인 상황속에서 학습이 되야한다고 한다. 구현. 구현을 위한 데이터는 아래의 그림3에서 보이는 데이터 베이스에 속한 유저 프로필, 페이지 인덱스가 있다. 웹 페이지에 대한 정보는 오프라인으로 수집이 된다. 콘텐츠를 위한 .. 2020. 1. 21.
MovieLens 데이터를 활용한 Collaborative Filtering 구현 MovieLens 데이터를 가지고 CF 의 기법인 사용자 기반, 아이템 기반 필터링을 구현해보도록 한다. 추천시스템 연구 분야의 경우 성능을 평가하거나 다른 알고리즘의 변형을 공식적인 데이터들을 통해서 비교하고, 기준 등을 명확히 한다. 이 MovieLens 데이터는 많은 논문에서 공식적으로 사용되어 성능 평가 등을 측정하는데 사용되곤 하였다. 데이터의 출처는 다음과 같다. https://grouplens.org/datasets/movielens/ 압축을 풀고 그 안에 있는 ratings.csv 파일과 movies.csv 파일을 활용하였으며, 파이썬을 사용하였다. 불러온 데이터는 아래와 같다. 데이터 불러오기 movies.csv 데이터(케이스 수 62424) movies=[] with open('movi.. 2020. 1. 15.
콘텐츠 기반 필터링 추천 예제 추천시스템을 구축하기 위해서 사용하는 필터링 방법중에 하나인 콘텐츠 기반 필터링을 작은 예제를 통해서 기본적인 구현 방법을 예제를 통해 실습해본다. reference에 나와있는 예제 데이터를 참고 하였으며, 추천이 이루어지는 과정을 한번 살펴본다. 콘텐츠 기반 필터링에 사용될 데이터는 우선 이름에 나와있는 것 처럼 콘텐츠가 필요하다. 이 예제는 영화와 관련된 예제이다. 사용할 아이템 콘텐츠 데이터는 영화가 어떤 장르를 포함하고 있는지를 나타내주는 데이터이다. 또 사용할 데이터인 사용자 프로필 데이터는 사용자가 봤던 영화인지 아닌지를 나타내는 데이터이다. 사용자 프로필 데이터는 협업필터링과 다르게 예컨데 특정 사이트에서 돌아다니기만해도 그정보를 콘텐츠와 연결시켜서 추천을 해줄 수가 있다. 기존의 콘텐츠(장.. 2020. 1. 14.
Recommender systems survey(1) Recommender systems survey.(2013) author: J.Bobadilla, F.Ortega, A.Hernando, A.Gutierrez 이번에 볼 논문은 추천시스템에 대한 서베이를 한 논문이다. 추천 시스템에 대한 전반적인 내용들로 협업필터링, 유사도 측정, 예측, 콜드스타트 문제 등에 대한 설명을 한다. Abstract 추천 시스템은 웹과 병행되어 개발이 되었다. 초기에는 demo-graphic, content-based, collaborative filtering을 기반이었다. 현재 이러한 시스템은 사회적 정보화 시스템을 통합하고 있다. 미래에는 사물인터넷에서 암시적, 지역적, 개인 정보를 사용하게 될 것이다. 추천시스템 뿐만아니라 협업필터링, 알고리즘에 대한 개요를 설명한다... 2020. 1. 12.
The YouTube Video Recommendation System 구글에 연구원들이 쓴 구글의 유투브 추천시스템에 관한 논문이다. 오역과 다소 약한 설명이 있을 수 있으니 참고 바란다. ABSTRACT We discuss the video recommendation system in use at YouTube, the world’s most popular online video community. The system recommends personalized sets of videos to users based on their activity on the site. We discuss some of the unique challenges that the system faces and how we address them. In addition, we provide det.. 2020. 1. 10.
연구주제를 위한 논문 리뷰 연구 주제를 정하기 위해서 우선적으로 해야할 것. 1. 내가 최대한 하고자 하는 것인지를 고려하자. 현재 추천시스템은 대부분의 광고, 영업, 판매, 전략 등의 부서에서 이를 활용한 서비스를 구축하여 원하는 결과를 얻고 있다. 나는 이러한 추세에 녹아들어 향후 속하게될 도메인에서 사업에 대한 이해를 바탕으로 그 사업을 위해 최적화된 추천시스템을 구현하고 유지 보수 하는 일을 하고 싶다. 그렇기 때문에 추천시스템에 관련한 기초적인 이론과 구현은 물론 나만의 생각과 가설을 세워보면서 더 나은 방법을 생각해보며 실력을 키우고 있는 중이다. 그렇기 때문에 나는 추천시스템 관련 논문을 석사졸업 전에 완성할 것이다. 해야 하는 일과 배우고 싶고 실력을 쌓고 싶은 분야이다. 내가 하고자 하는 것이 맞다. 2. 이전 연.. 2020. 1. 10.
교차검증 교차검증(cross-validation)은 데이터를 학습 데이터셋과 테스트 데이터셋으로 나누는 기법들을 총칭하는 이름이다. 학습셋은 검증용 알고리즘에 올바른 답으로 주어지는 것이고, 예측을 하는데 사용된다. 그런다음 테스트 셋에 있는 각 물품들에 대해 예측하고 정답과 비교해서 이 알고리즘이 얼마나 잘 동작했는지를 나타내는 전체 점수를 계산한다. 대체도 95대 5정도로 하는데, 아래의 함수도 95%를 학습데이터로 사용하고, 5%를 검증용데이터로 사용하기위해 데이터를 나누는 함수를 작성한다. def dividedata(data, test=0.05): trainset=[] testset=[] for row in data: if random() < test: testset.append(row) else: tra.. 2020. 1. 8.
공배수 level1 문제 10미만의 자연수에서 3과 5의 배수를 구하면 3,5,6,9이다. 이들의 총합은 23이다. 1000미만의 자연수에서 3,5의 배수의 총합을 구하라. gongbaesoo = [i for i in range(1,1000) if i % 3 ==0 or i % 5 == 0] sum(gongbaesoo) #결과: 233168 리스트 컴프리핸션을 사용해서 1~1000까지 한번씩 돌면서 3이랑 5로 나눠서 나머지가 0인 경우의 자연수를 받는다. 이 후 sum함수로 총합을 구해준다. 출처: 코딩도장 2020. 1. 7.
kNN + 가중치 물품 가중치: 알고리즘이 다소 멀리 떨어진 이웃 물품들을 사용하는 경우를 보상하는 한 가지 방법은 거리에 따라 가중치를 두는 것이다. 추천시스템 장에서 선호도에 따라서 가중치를 주어 유사도를 구했던 것과 유사하다. 물품들이 더 비슷할수록 그들 간의 거리가 더 가까워지므로, 거리를 가중치로 변경할 방법이 있어야 한다. 몇 가지 방법이 있지만 각각 장단점이 있다. 1. 역 함수 거리를 가중치로 바꿀 때 역함수를 사용한다. 그냥 역함수를 써버리면 아주 가깝거나 아주 먼 경우에 그 값이 너무 높거나 무한대 가중치를 낼 수 있지 때문에 작은 수를 (여기선 0.1) 살짝 더해서 역수를 취해준다. def inverseweight(dist, num=1.0, const=0.1): return num/(dist+const.. 2020. 1. 7.
728x90
반응형