Top 10 영화 추천 알고리즘 Top Answer Update

You are looking for information, articles, knowledge about the topic nail salons open on sunday near me 영화 추천 알고리즘 on Google, you do not find the information you need! Here are the best content compiled and compiled by the https://toplist.pilgrimjournalist.com team, along with other related topics such as: 영화 추천 알고리즘 영화 추천 알고리즘 오픈소스, 파이썬 영화 추천 알고리즘, 영화 추천 시스템, 왓챠 영화 추천 알고리즘, 영화 추천 머신러닝, 딥러닝 영화 추천, Django 영화 추천, 추천 시스템 오픈소스

영화 타이틀을 기준으로 배우, 장르, 국가, 시대, 연령대 등 수백 개의 영화 특성을 분석해 영화 프로파일을 생성하고, 타깃 사용자가 좋아한 영화를 바탕으로 사용자 프로파일을 도출합니다. 그리고 영화 프로파일과 사용자 프로파일을 비교해서 사용자 선호 영화추천하는 방식입니다.


Movie Recommendation Engine – Python
Movie Recommendation Engine – Python


넷플릭스의 영화 추천 알고리즘

  • Article author: brunch.co.kr
  • Reviews from users: 18381 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 넷플릭스의 영화 추천 알고리즘 Updating …
  • Most searched keywords: Whether you are looking for 넷플릭스의 영화 추천 알고리즘 Updating 다양한 알고리즘을 복합적으로 사용합니다. | <넷플릭스 인사이트>에 소개된 내용을 바탕으로 정리했습니다. 넷플릭스 회원은 10~20개 타이틀 검토 후 영화를 결정하지 못하면 60~90초 후에 흥미를 잃는다. OTT 서비스 경쟁이 치열해지면서 양질의 콘텐츠를 확보하는 것과 더불어 고객을 자주 방문하게 만들고 최대한 오래 붙잡아 두는 게 OTT 플랫폼 성공의 핵심 요소입니다. 콘텐츠 보유 정도가 플랫
  • Table of Contents:
넷플릭스의 영화 추천 알고리즘
넷플릭스의 영화 추천 알고리즘

Read More

영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기

  • Article author: dkswnkk.tistory.com
  • Reviews from users: 44381 ⭐ Ratings
  • Top rated: 3.4 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기 구현 방식. 콘텐츠 기반 필터링(content based filtering): 사용자가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천 … …
  • Most searched keywords: Whether you are looking for 영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기 구현 방식. 콘텐츠 기반 필터링(content based filtering): 사용자가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천 … 참고한 블로그: https://lsjsj92.tistory.com/563 추천 시스템(Recommendation system)이란? – content based filtering, collaborative filtering 포스팅 개요 이번 포스팅은 추천 시스템(recommedation system)..
  • Table of Contents:

추천 알고리즘의 종류와 의미에 대해 알고 싶다면

목차

구현 방식

소스 로직

소스

태그

관련글

댓글0

전체 방문자

최근글

인기글

티스토리툴바

영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기
영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기

Read More

딥 러닝 – 영화 추천 시스템(1)

  • Article author: velog.io
  • Reviews from users: 7630 ⭐ Ratings
  • Top rated: 4.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 딥 러닝 – 영화 추천 시스템(1) 추천 시스템 : 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것현재는 많은 분야에 적용되어 있다. …
  • Most searched keywords: Whether you are looking for 딥 러닝 – 영화 추천 시스템(1) 추천 시스템 : 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것현재는 많은 분야에 적용되어 있다. 추천 시스템 : 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것현재는 많은 분야에 적용되어 있다. 특히 온라인 쇼핑몰 콘텐츠 등에서는 꽤 중요한 부분을 차지한다.예시) 유튜브, 쇼핑몰, 광고 등콘텐츠 기반 필터링
  • Table of Contents:

딥 러닝

◾추천 시스템

◾영화 추천 시스템

딥 러닝 - 영화 추천 시스템(1)
딥 러닝 – 영화 추천 시스템(1)

Read More

[추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드

  • Article author: diane-space.tistory.com
  • Reviews from users: 26752 ⭐ Ratings
  • Top rated: 4.3 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드 Kdd 유사도 기반 영화 추천 알고리즘. 출처: 멀티캠퍼스_빅데이터AI설계 박길식 강사님 PPT. #kdd 유사도 함수 from math import sqrt def … …
  • Most searched keywords: Whether you are looking for [추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드 Kdd 유사도 기반 영화 추천 알고리즘. 출처: 멀티캠퍼스_빅데이터AI설계 박길식 강사님 PPT. #kdd 유사도 함수 from math import sqrt def … 데이터 필요한 데이터만 첨부 코드 import pandas as pd import numpy as np # 데이터 읽어오기 movies=pd.read_csv(“movies.csv”) ratings=pd.read_csv(“ratings.csv”) # 아이템 기반 협업 필터링 data=pd.merg..creative collage portfolio : Analysis & skills
  • Table of Contents:
[추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드
[추천시스템] 넷플릭스 영화 추천 시스템 구현 파이썬 코드

Read More

넷플릭스와 왓챠 영화추천 알고리즘 :: 알아야 산다

  • Article author: bumi1004.tistory.com
  • Reviews from users: 21012 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 넷플릭스와 왓챠 영화추천 알고리즘 :: 알아야 산다 영화 추천 알고리즘은 협업 필터링(Collaborative Filtering)과 콘텐츠 기반 필터링(Content-based Filtering)의 두 가지 방법으로 나눌 수 있습니다. …
  • Most searched keywords: Whether you are looking for 넷플릭스와 왓챠 영화추천 알고리즘 :: 알아야 산다 영화 추천 알고리즘은 협업 필터링(Collaborative Filtering)과 콘텐츠 기반 필터링(Content-based Filtering)의 두 가지 방법으로 나눌 수 있습니다. 넷플릭스와 왓챠 영화 추천 알고리즘 이해하기 넷플릭스와 왓챠와 같은 OTT 서비스를 이용하다 보면 내게 맞는 유형의 영화 추천이 이뤄지는 것을 알 수 있습니다. 각 개인에게 맞는 영화 추천 알고리즘은 어떤..주식,부동산,생활 ,영어회화공부 등 정보제공
  • Table of Contents:

넷플릭스와 왓챠 영화추천 알고리즘

티스토리툴바

넷플릭스와 왓챠 영화추천 알고리즘 :: 알아야 산다
넷플릭스와 왓챠 영화추천 알고리즘 :: 알아야 산다

Read More

[python] 영화 추천 시스템

  • Article author: ddongwon.tistory.com
  • Reviews from users: 37699 ⭐ Ratings
  • Top rated: 4.6 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [python] 영화 추천 시스템 이후 K-means Clustering 알고리즘을 통해 사용자가 입력한 선호 영화들의 cluster들을 결정한다. 앞서 A-priori 알고리즘을 통해 추천된 영화들 중, 입력 … …
  • Most searched keywords: Whether you are looking for [python] 영화 추천 시스템 이후 K-means Clustering 알고리즘을 통해 사용자가 입력한 선호 영화들의 cluster들을 결정한다. 앞서 A-priori 알고리즘을 통해 추천된 영화들 중, 입력 … 1. 개요 사용자로부터 특정 개수 (5개 정도)의 선호하는 영화를 선택받으면, 해당 사용자가 좋아할만한 영화를 추천해주는 영화 추천 시스템을 만들었다. 영화를 추천해주는 방법은 아래와 같이 2가지가 있다.  1..
  • Table of Contents:

Shine’s dev log

[python] 영화 추천 시스템 본문

[python] 영화 추천 시스템
[python] 영화 추천 시스템

Read More

영화 추천 알고리즘

  • Article author: www.koreascience.or.kr
  • Reviews from users: 8243 ⭐ Ratings
  • Top rated: 3.5 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 영화 추천 알고리즘 본 논문에서는 협업 필터링 기법과 내용 기반의 필터. 링 기법을 혼합하여 Cold-Start 문제를 해결하고 추천. 시스템에 영향이 될 수 있는 주요 알고리즘을 비교하여. …
  • Most searched keywords: Whether you are looking for 영화 추천 알고리즘 본 논문에서는 협업 필터링 기법과 내용 기반의 필터. 링 기법을 혼합하여 Cold-Start 문제를 해결하고 추천. 시스템에 영향이 될 수 있는 주요 알고리즘을 비교하여.
  • Table of Contents:
영화 추천 알고리즘
영화 추천 알고리즘

Read More

[movie recomendation] 알고리즘에 따른 영화 추천 시스템 구현 — 나무늘보의 개발 블로그

  • Article author: continuous-development.tistory.com
  • Reviews from users: 37270 ⭐ Ratings
  • Top rated: 4.0 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [movie recomendation] 알고리즘에 따른 영화 추천 시스템 구현 — 나무늘보의 개발 블로그 power bi 설명. – 1 page. Collaborative Filtering(사용자가 본 영화에 따라 알고리즘을 사용하여 영화 추천)의 추천 … …
  • Most searched keywords: Whether you are looking for [movie recomendation] 알고리즘에 따른 영화 추천 시스템 구현 — 나무늘보의 개발 블로그 power bi 설명. – 1 page. Collaborative Filtering(사용자가 본 영화에 따라 알고리즘을 사용하여 영화 추천)의 추천 … – 해당 Power bi link app.powerbi.com/view?r=eyJrIjoiMDFmNjk5YTgtYmYzMy00YWM3LTgzNjctNDRhNjBjNWY0ZDdhIiwidCI6IjcxNzYzNWIxLTFjNzUtNDViOC05NmEzLWQzYzM0MTk5MWUwNyJ9 Power BI Report Report powered by Pow..
  • Table of Contents:

power bi 설명

티스토리툴바

[movie recomendation]  알고리즘에 따른 영화 추천 시스템 구현 — 나무늘보의 개발 블로그
[movie recomendation] 알고리즘에 따른 영화 추천 시스템 구현 — 나무늘보의 개발 블로그

Read More

[논문]필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구

  • Article author: scienceon.kisti.re.kr
  • Reviews from users: 16738 ⭐ Ratings
  • Top rated: 3.2 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about [논문]필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구 영화 추천시스템의 새로운 알고리즘을 제안하기 위해 기존의 알고리즘과 변형된 알고리즘에 의해 추정된 추정값들의 분포 특징을 분석과 응답자별로 분류해서 응답자별 … …
  • Most searched keywords: Whether you are looking for [논문]필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구 영화 추천시스템의 새로운 알고리즘을 제안하기 위해 기존의 알고리즘과 변형된 알고리즘에 의해 추정된 추정값들의 분포 특징을 분석과 응답자별로 분류해서 응답자별 … 상품추천, 전자상거래, 추천시스템, 협력적 필터링전자상거래에서 상품의 구입은 오프라인에서 구매하는 방식과는 차이가 있다. 오프라인에서 상품추천은 판매원의 추천에 의해 이루어지지만 온라인에서 상품 추천은 판매원이 상품 추천을 할 수가 없기 때문에 오프라인과는 다른 형태의 상품을 추천하게 된다. 추천시스템은 온라인 상거래에서 상품을 추천하는 방법으로 기존 상품을 구입한 고객의 선호도를 기반으로 상품을 구입하려는 고객의 선호도를 예측하여 추정된 선호도가 높은 상품을 고객에게 추천하는 방법이다. 협력적 필터링 알고리즘은 전자상거래의 상품추천 추천시스템에 사용되며 추정된 값들로 추천 상품 목록을 만들고 그 목록을 고객에게 추천을 하는 것이다. 이 논문에서 사용된 데이터집합은 Movielens 데이터집합인 100k 데이터집합과 1 million 데이터집합이며 일반화를 위해 2개의 데이터집합에서 유사한 결과를 도출하여 일반화시키고자 한다. 영화 추천시스템의 새로운 알고리즘을 제안하기 위해 기존의 알고리즘과 변형된 알고리즘에 의해 추정된 추정값들의 분포 특징을 분석과 응답자별로 분류해서 응답자별 분포의 특징을 분석하였다. 이 논문에서는 이웃기반 추천시스템 협력적 필터링 알고리즘을 개선하기 위해 기존의 알고리즘과 변형된 알고리즘을 바탕으로 새로운 알고리즘을 제안하였다.
  • Table of Contents:

필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구

원문보기
인용

A study of development for movie recommendation system algorithm using filtering

상세정보조회

원문조회

[논문]필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구
[논문]필터링기법을 이용한 영화 추천시스템 알고리즘 개발에 관한 연구

Read More

장르 상관관계를 사용한 영화추천 알고리즘

  • Article author: www.kci.go.kr
  • Reviews from users: 46092 ⭐ Ratings
  • Top rated: 3.7 ⭐
  • Lowest rated: 1 ⭐
  • Summary of article content: Articles about 장르 상관관계를 사용한 영화추천 알고리즘 Movie Recommendation Algorithm using Genre Correlation – bias-based analysis;genre correlation;rating prediction;genre-based recommendation;recommendation … …
  • Most searched keywords: Whether you are looking for 장르 상관관계를 사용한 영화추천 알고리즘 Movie Recommendation Algorithm using Genre Correlation – bias-based analysis;genre correlation;rating prediction;genre-based recommendation;recommendation … Movie Recommendation Algorithm using Genre Correlation – bias-based analysis;genre correlation;rating prediction;genre-based recommendation;recommendation algorithm
  • Table of Contents:

초록
열기닫기 버튼

키워드열기닫기 버튼

인용현황

KCI에서 이 논문을 인용한 논문의 수는 1건입니다

열기닫기 버튼

참고문헌(10)
열기닫기 버튼

2020년 이후 발행 논문의 참고문헌은 현재 구축 중입니다

장르 상관관계를 사용한 영화추천 알고리즘
장르 상관관계를 사용한 영화추천 알고리즘

Read More


See more articles in the same category here: https://toplist.pilgrimjournalist.com/blog/.

넷플릭스의 영화 추천 알고리즘

다양한 알고리즘을 복합적으로 사용합니다.

<넷플릭스 인사이트>에 소개된 내용을 바탕으로 정리했습니다.

넷플릭스 회원은 10~20개 타이틀 검토 후

영화를 결정하지 못하면 60~90초 후에 흥미를 잃는다.

OTT 서비스 경쟁이 치열해지면서 양질의 콘텐츠를 확보하는 것과 더불어 고객을 자주 방문하게 만들고 최대한 오래 붙잡아 두는 게 OTT 플랫폼 성공의 핵심 요소입니다. 콘텐츠 보유 정도가 플랫폼별로 비슷하다고 했을 때 보유 타이틀을 얼마나 잘 활용하는지가 핵심 경쟁력이 될 수 있는데요. 넷플릭스는 DVD 대여 사업을 했을 때부터 축적된 노하우를 바탕으로 고객이 선호하는 타이틀을 기가 막히게 찾아줍니다.

넷플릭스는 고객의 70~80%가 추천 콘텐츠를 시청한다고 합니다. 이번 글에서는 넷플릭스의 추천 알고리즘을 간단히 소개해보겠습니다. 전문적으로 들어가면 너무 깊어서 딱 읽기 좋은 정도로 정리했습니다.

1. 유사 사용자 기반 알고리즘

위 이미지를 보면 A, B, C 유저가 있습니다. 우리가 영화를 추천해야 할 타깃 유저는 C인데요.

사용자 기반 알고리즘은 C와 취향이 비슷한 유사 사용자를 찾아내 영화를 추천해주는 방식입니다.

A는 킹덤, 실미도, 설국열차, 국제시장을 시청했고.

B는 실미도만 시청했고

C는 실미도, 국제시장을 시청했습니다.

C와 중복되는 영화를 시청한 유저는 A입니다.

그래서 A와 C를 유사 사용자로 묶고, A는 시청했는데 C는 시청하지 않은 킹덤과 설국열차를 추천합니다.

2. 유사 아이템 기반 알고리즘

아이템 기반 알고리즘은 영화와 영화 간의 시청기록을 파악해서 유사한 아이템을 추천해주는 방식입니다.

위 이미지에서 타깃 사용자 C의 시청기록을 제외하고, A와 B의 시청기록을 보겠습니다.

A는 킹덤, 설국열차, 국제시장을 시청했고,

B는 킹덤, 국제시장을 시청했습니다.

A와 B의 시청기록을 바탕으로 킹덤과 국제시장을 유사 아이템으로 묶을 수 있고,

국제시장을 시청한 타깃 유저 C에게는 아직 시청하지 않은 킹덤을 추천합니다.

지금 소개한 사용자&아이템 기반 알고리즘은 이미 많은 플랫폼에서 사용하고 있습니다. 유사도 계산이 간단하고 예측 평점을 구하기 쉽다는 장점이 있지만 몇 가지 문제점도 있습니다.

– 콜드 스타트 : 새로운 유저나, 새로운 아이템이 추가되었을 때 유사도를 계산할 수 있는 데이터가 부족해 정확한 추천을 하기가 어렵습니다.

– 계산량 : 사용자와 유저가 추가될 때마다 계산량이 많아져서 부하가 증가됩니다. 넷플릭스 유저는 4억 명 정도라고 하는데요. 유저 1명, 타이틀 1개 추가될 때마다 계산량은 어마어마하게 늘어나게 됩니다.

– 롱테일 : 일반 사용자들은 소수의 인기 항목에만 관심을 보이기 때문에 관심이 적은 비인기 항목에는 추천 정보가 부족합니다.

그래서 넷플릭스는 위 2가지 방식 외에 2가지 방식을 더 사용합니다.

3. 잠재 모델 기반 알고리즘

잠재 모델 기반 알고리즘은 항목 간 유사성을 단순하게 비교하는 방식이 아니라 사용자와 아이템에 내재된 잠재 모델의 패턴을 이용하는 방법입니다. 예를 들어 킹덤을 좋아하는 사용자는 배우 주지훈을 좋아해서 일수도 있고, 좀비물을 좋아해서일 수도 있고, OST를 좋아해서 일수도 있습니다.

그래서 특정 기준을 바탕으로 행과 열을 분해해서 예측 평점을 구합니다.

위 이미지는 <장르>를 기준으로 행과 열을 분해한 예시입니다.

킹덤, 이태원 클라쓰, 설국열차의 장르 비중은 넷플릭스가 신규 콘텐츠를 생성할 때 콘텐츠 전문가가 직접 시청하고 메타 데이터에 등록합니다. 킹덤의 경우 로맨스 1점, 액션이 3점이다라고 미리 지표화를 해놓는 거죠.

그리고 사용자의 시청 데이터를 바탕으로 사용자별 장르 선호도를 값으로 산출합니다. B의 경우 로맨스 선호도와 액션 선호도가 각각 1점입니다. 이 데이터를 바탕으로 아직 시청하지 않은 이태원 클라쓰와 설국열차의 예측 평점을 4점, 4점으로 쉽게 구할 수 있습니다.

잠재 모델 기반 알고리즘은 차원이나 사이즈가 매우 작아서 스토리지도 크게 차지하지 않는 장점이 있습니다.

4. 콘텐츠 기반 알고리즘

위에서 소개한 사용자 기반, 아이템 기반, 잠재 모델 기반 알고리즘은 사용자와 아이템 사이의 연관성 파악이 분석 대상이지만 콘텐츠 기반 알고리즘은 사용자와 아이템간의 정보가 필요하지 않습니다.

영화 타이틀을 기준으로 배우, 장르, 국가, 시대, 연령대 등 수백 개의 영화 특성을 분석해 영화 프로파일을 생성하고, 타깃 사용자가 좋아한 영화를 바탕으로 사용자 프로파일을 도출합니다. 그리고 영화 프로파일과 사용자 프로파일을 비교해서 사용자 선호 영화를 추천하는 방식입니다.

네, 여기까지 ①사용자 기반 알고리즘 ②아이템 기반 알고리즘 ③잠재 모델 기반 알고리즘 ④콘텐츠 기반 알고리즘을 살펴봤는데요.

①②번은 유사도 계산이 간단하고 예측 평점을 구하기 쉬운 반면에 콜드 스타트, 계산량, 롱테일 이슈가 있습니다. 그래서 데이터가 적어도 추천이 가능한 ③④번 알고리즘이 등장했고 넷플릭스는 ①②③④번을 포함한 다양한 알고리즘을 mix 한 하이브리드 추천 시스템을 적용하고 있습니다.

현재 넷플릭스에는 2,000여 개의 취향 그룹이 있고 이 취향 그룹은 계속해서 업데이트된다고 합니다.

또한 넷플릭스가 영화를 추천하면서 알게된 사실은 2016년 이전까지는 사용자의 국가/지역에 따라 선호하는 영화가 다를 것이라고 예상하고 국가별 사용자별 다른 콘텐츠를 추천했지만 실제 연구 결과 그렇지 않다는 사실을 발견했고 130개 국가로 진출한 이후부터는 국가/지역에 따른 추천 시스템은 폐지하고 취향 그룹에 따른 추천 시스템을 사용하고 있습니다.

1점~5점으로 영화를 평가하는 별점 평가 시스템도 폐지했습니다. 배경은 유명 평론가나 지인이 높은 점수를 주었을 때 내가 생각하는 별점을 주지 않고 제삼자의 관점에서 객관적으로 영화 품질을 평가해 오차가 발생한다는 점을 문제점으로 인식했고 이를 대체하기 위해 좋아요, 싫어요 두 가지 기준으로 평가제도를 개편했습니다. 평가제도 개편 후 평가 활동은 두 배 이상 늘었고 현재는 고객 시청기록과 좋아요, 싫어요 평가를 바탕으로 영화를 추천하고 사용자가 얼마나 좋아할지 예측하는 매치 지수를 숫자로 보여주고 있습니다.

네, 여기까지 <넷플릭스 인사이트> 도서에 소개된 내용을 바탕으로 추천 알고리즘을 간단히 정리해봤습니다.

책에는 훨씬 더 방대한 내용이 있으니 관심 있는 분들은 꼭 한 번 읽어보시길 추천합니다.

저는 요즘 넷플릭스 CEO가 출간한 <규칙 없음>이라는 책을 읽고 있는데요. 이 책도 흥미롭고 재밌습니다. 스타트업 경영진, HR팀에서 보시기를 추천드립니다 ^^

넷플릭스 관련 도서 링크

넷플릭스 인사이트

규칙 없음

파워풀

영화추천 알고리즘(Movie-Recommender) 파이썬으로 구현해보기

참고한 블로그: https://lsjsj92.tistory.com/563

추천 알고리즘의 종류와 의미에 대해 알고 싶다면?

목차

구현 방식

콘텐츠 기반 필터링(content based filtering): 사용자가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천해주는 단순한 방식을 이용하여 구현하였다.

ex) 한 사용자가 영화 A에 높은 점수를 주었는데, 그 영화가 판타지 영화이고 B라는 감독이면 B감독의 다른 판타지 영화를 추천

소스 로직

movieData에 존재하는 영화의 제목 하나를 정확히 입력한다.

영화 제목을 입력받으면 그 제목의 index를 뽑아낸다.

코사인 유사도 중 영화 제목 인덱스에 해당하는 값에서 추천 개수만큼 뽑아낸다. (위 코드에서는 10)

imdb weighted rating을 적용한 추천점수 기반으로 정렬한다. (해당 방식은 소스코드에 주석으로 기재하였다.)

추천 점수를 기반으로 추천하는 영화를 출력한다.

movieData는 아래의 경로에서 얻을 수 있다.

소스

”’ #참고: https://lsjsj92.tistory.com/563, https://github.com/lsjsj92/recommender_system_with_Python 추천 시스템에는 콘텐츠 기반 필터링(content based filtering)과 협력 필터링(collaborative filtering)이 있다. 콘텐츠 기반 필터링: 사용자가 특정 아이템을 선호하는 경우 그 아이템과 비슷한 콘텐츠를 가진 다른 아이템을 추천해주는 단순한 방식. ex) 사용자 A가 영화1 에 높은 점수를 주었는데 그 영화1이 판타지영화이며 ‘안주형’ 이라는 감독이라면 ‘안주형’ 감독의 다른 판타지 영화를 추천해주는 방식 협력 필터링: 최근접 이웃 기반(nearest neighbor based collaborative filtering)과 잠재요인(latent factor based collaborative filtering) 방식이 있다 협력 필터링은 사용자가 아이템에 매긴 평점, 상품구매 이력 등의 사용자 행동양식(user behavior)를 기반으로 추천 해주는 것이다. 1.이 중 최근접 이웃 기반은 사용자-아이템 행렬에서 사용자가 아직 평가하지 않은 아이템을 예측하는 것이 목표이다. 2. 잠재요인 기반은 아직도 많이 사용되는 방법으로써 행렬분해(matrix factorization)을 기반하여 사용한다. 사용자-아이템 행렬을 ‘사용자-잠재요인’, ‘아이템-잠재요인’ 행렬로 분해하여 사용하며, 이 행렬테이터를 이용해 ‘잠재 요인’을 찾아내는데 ‘저장 공간 절약’이 우수 하기 때문에 공간을 매우 효율적으로 사용할 수 있다. 아래 코드는 “콘텐츠 기반 필터링(content based filtering)” 으로 구현한 코드이다. ”’ import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from numpy import array from ast import literal_eval from sklearn.feature_extraction.text import TfidfVectorizer from sklearn.feature_extraction.text import CountVectorizer from sklearn.metrics.pairwise import cosine_similarity pd.set_option(‘display.max_rows’, 100) # 행을 최대 100개까지 출력 pd.set_option(‘display.max_columns’, 100) # 열을 최대 100개 까지 출력 pd.set_option(‘display.width’, 1000) #출력 창 넓이 설정 data=pd.read_csv(‘tmdb_5000_movies.csv’,encoding=’euc-kr’) #영화 정보가 담긴 엑셀파일을 불러온다 #데이터 전처리 data=data[[‘영화번호’,’제목’,’장르’,’평점’,’평점투표 수’,’인기도’,’키워드’]] #사용할 데이터를 뽑아온다 ”’ 투표수가 많을 수록 많은 사람들이 평가를 했기 때문에 투표 수가 낮을 수 밖에 없다. 이러한 불공정을 처리하기 위해 weighed rating 방법을 이용한다. 참고: https://www.quora.com/How-does-IMDbs-rating-system-work R: 개별 영화 평점 v: 개별 영화에 평점을 투표한 횟수 m: 순위안에 들어야 하는 최소 투표 (정하기 나름) c: 전체 영화에 대한 평균 평점 투표수의 상위 90프로 이상이면 500위 안으로 들어오게 된다. 이 코드에서는 m=500이라고 가정했다 ”’ m=data[‘평점투표 수’].quantile(0.9) data=data.loc[data[‘평점투표 수’]>=m] C=data[‘평점’].mean() #평점의 평균을 구한다 def weighted_rating(x,m=m,C=C): v=x[‘평점투표 수’] R=x[‘평점’] return (v/(v+m)*R)+(m/(m+v)*C) data[‘추천점수’]=data.apply(weighted_rating,axis=1) data[‘장르’]=data[‘장르’].apply(literal_eval) #list와와 dictionary 형태로 변경 data[‘키워드’]=data[‘키워드’].apply(literal_eval) data[‘장르’]=data[‘장르’].apply(lambda x : [d[‘name’] for d in x]).apply(lambda x: ” “.join(x)) # dict 형태 -> list 형태 -> 띄어쓰기로 이루어진 str로 변경 data[‘키워드’]=data[‘키워드’].apply(lambda x : [d[‘name’] for d in x]).apply(lambda x: ” “.join(x)) count_vector=CountVectorizer(ngram_range=(1,3)) c_vector_genres=count_vector.fit_transform(data[‘장르’]) gerne_c_sim=cosine_similarity(c_vector_genres,c_vector_genres).argsort()[:,::-1] #코사인 유사도를 구한 벡터를 미리 저장 def get_recommed_movie_list(df,movie_title,top=30): #특정영화와 비슷한 영화를 추천해주는 함수 target_movie_index=df[df[‘제목’]==movie_title].index.values #특정 영화와 비슷한 영화를 추천해야 하기 때문에 ‘특정 영화’ 정보를 뽑아내는 함수 sim_index=gerne_c_sim[target_movie_index,:top].reshape(-1) # 코사인 유사도 중 비슷한 코사인 유사도를 가진 정보를 뽑아낸다 sim_index=sim_index[sim_index!=target_movie_index] # 본인은 제외 result=df.iloc[sim_index].sort_values(‘추천점수’,ascending=False)[:10] #data frame 으로 만든 뒤 추천점수로 정렬 한 뒤 return return result print(“마음에 들었던 영화를 조건에 맞게 입력하세요:”) movie=input() temp=get_recommed_movie_list(data,movie_title=movie) ans=[] ans=temp.values.tolist() ans=array(ans) for i in range(10): if i==0: print(‘%50s %40s %35s %20s %14s %20s’ % (‘제목’,’장르’,’평점’,’평점투표 수’,’인기도’,’추천 점수’)) else: print(‘%60s %50s %20s %20s %20.4s %20.4s’ % (ans[i][1],ans[i][2],ans[i][3],ans[i][4],ans[i][5],ans[i][7])) #ans[0]=영화번호, [1]=제목,[2]=장르,[3]=평점,[4]=평점투표 수,[5]=인기도,[6]=키워드,[7]=추천 점수

딥 러닝 – 영화 추천 시스템(1)

◾추천 시스템

추천 시스템 : 특정 사용자가 관심을 가질만한 정보 (영화, 음악, 책, 뉴스, 이미지, 웹 페이지 등)를 추천하는 것 현재는 많은 분야에 적용되어 있다. 특히 온라인 쇼핑몰 콘텐츠 등에서는 꽤 중요한 부분을 차지한다. 예시) 유튜브, 쇼핑몰, 광고 등

콘텐츠 기반 필터링 추천 시스템 : 사용자가 특정한 아이템을 선호하는 경우, 그 아이템과 비슷한 아이템을 추천하는 방식

: 사용자가 특정한 아이템을 선호하는 경우, 그 아이템과 비슷한 아이템을 추천하는 방식 최근접 이웃 협업 필터링 추천 시스템 : 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가하는 방식 사용자 기반 : 각 사용자와 비슷한 고객들의 행동 참고 아이템 기반 : 해당 아이템을 선택한 다른 고객들의 행동 참고 일반적으로는 사용자 기반보다 아이템 기반 협업 필터링이 정확도가 높다. 비슷한 영화를 좋아한다고 취향이 비슷하다고 판단하기 어렵거나 매우 유명한 영화의 경우 취향과 관계없이 관람하는 경우가 많고 평점을 매기지 않는 경우가 많기 때문이다.

: 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가하는 방식 잠재 요인 협업 필터링 추천 시스템 : 사용자-아이템 평점 행렬 데이터를 이용해 “잠재요인”을 도출하는 방식 주요인과 아이템에 대한 잠재요인에 대해 행렬 분해를 진행하고 다시 행렬곱을 통해 아직 평점을 부여하지 않은 아이템에 대한 예측 평점 생성

: 사용자-아이템 평점 행렬 데이터를 이용해 “잠재요인”을 도출하는 방식

◾영화 추천 시스템

0. 데이터

TMDB5000 영화 데이터 : Kaggle

MoviesLens 평점 데이터(1MB) : MovieLens

1. 콘텐츠 기반 필터링(TMDB5000)

import pandas as pd import numpy as np import warnings ; warnings . filterwarnings ( ‘ignore’ ) movies = pd . read_csv ( ‘./data/01/tmdb_5000_movies.csv’ ) print ( movies . shape ) movies . head ( 2 )

– 데이터 정리

컬럼 정보 id : 영화 아이디 title : 영화명 genres : 영화 장르 vote_average : 영화 평균 평점 vote_count : 영화 투표수 popularity : 영화 인기 keywords : 영화 키워드 overview : 영화 개요

genres, keywords는 컬럼안에 dict형으로 보이지만 str형으로 저장되어있다.

movies_df = movies [ [ ‘id’ , ‘title’ , ‘genres’ , ‘vote_average’ , ‘vote_count’ , ‘popularity’ , ‘keywords’ , ‘overview’ ] ] movies_df . head ( 2 )

문자열로 된 데이터를 literal_eval로 변경해준다. genres와 keywords의 내용을 list와 dict로 복구

movies_df [ ‘genres’ ] = movies_df [ ‘genres’ ] . apply ( literal_eval ) movies_df [ ‘keywords’ ] = movies_df [ ‘keywords’ ] . apply ( literal_eval ) movies_df . head ( 2 )

dict형의 value 값을 특성으로 사용하도록 변경

movies_df [ ‘genres’ ] = movies_df [ ‘genres’ ] . apply ( lambda x : [ y [ ‘name’ ] for y in x ] ) movies_df [ ‘keywords’ ] = movies_df [ ‘keywords’ ] . apply ( lambda x : [ y [ ‘name’ ] for y in x ] ) movies_df . head ( 2 )

– genres 기준 CountVectorize

genres의 각 단어들을 하나의 문장으로 변환

movies_df [ ‘genres_literal’ ] = movies_df [ ‘genres’ ] . apply ( lambda x : ( ‘ ‘ ) . join ( x ) ) movies_df . head ( 2 )

genres_literal CountVectorize 수행

from sklearn . feature_extraction . text import CountVectorizer count_vect = CountVectorizer ( min_df = 0 , ngram_range = ( 1 , 2 ) ) genre_mat = count_vect . fit_transform ( movies_df [ ‘genres_literal’ ] ) print ( genre_mat . shape )

코사인 유사도 : 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미 문장의 유사도를 측정하는 방법 중 하나이다. s i m i l a r i t y = c o s ( θ ) = A B ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ = ∑ i = 1 n A i × B i ∑ i = 1 n ( A i ) 2 × ∑ i = 1 n ( B i ) 2 similarity = cos(\theta) = {AB \over ||A||~||B||} = {\sum_{i=1}^{n}{A_{i}\times B_{i}} \over \sqrt{\sum_{i=1}^{n}({A_{i})^{2}}}\times \sqrt{\sum_{i=1}^{n}({B_{i})^{2}}}} s i m i l a r i t y = c o s ( θ ) = ∣ ∣ A ∣ ∣ ∣ ∣ B ∣ ∣ A B ​ = ∑ i = 1 n ​ ( A i ​ ) 2 ​ × ∑ i = 1 n ​ ( B i ​ ) 2 ​ ∑ i = 1 n ​ A i ​ × B i ​ ​

: 두 벡터 간의 코사인 각도를 이용하여 구할 수 있는 두 벡터의 유사도를 의미

from sklearn . metrics . pairwise import cosine_similarity genre_sim = cosine_similarity ( genre_mat , genre_mat ) print ( genre_sim . shape ) print ( genre_sim [ : 2 ] )

genre_sim 객체에서 높은 값 순으로 정렬할 수 있다.

argsort : Series 데이터를 정렬한 index 반환

genre_sim_sorted_ind = genre_sim . argsort ( ) [ : , : : – 1 ] print ( genre_sim_sorted_ind [ : 1 ] )

– 추천 영화 DataFrame 반환 함수

def find_sim_movie ( df , sorted_ind , title_name , top_n = 10 ) : title_movie = df [ df [ ‘title’ ] == title_name ] title_index = title_movie . index . values similar_indexes = sorted_ind [ title_index , : ( top_n ) ] print ( similar_indexes ) similar_indexes = similar_indexes . reshape ( – 1 ) return df . iloc [ similar_indexes ] similar_movies = find_sim_movie ( movies_df , genre_sim_sorted_ind , “The Godfather” , 10 ) similar_movies [ [ ‘title’ , ‘vote_average’ ] ]

2. + 가중치 평점(TMDB5000)

– 데이터 재탐색

평점과 평점을 매긴 사람을 살펴보면 적은 사람만 투표한 경우 정말로 그 수치만큼인지 판단하기 어렵다.

movies_df [ [ ‘title’ , ‘vote_average’ , ‘vote_count’ ] ] . sort_values ( ‘vote_average’ , ascending = False ) [ : 10 ]

영화 선정을 위한 가중치 선정 ( v v + m ) R + ( m v + m ) C ({v\over v+m})R + ({m\over v+m})C ( v + m v ​ ) R + ( v + m m ​ ) C v : 개별 영화에 평점을 투표한 횟수 m : 평점을 부여하기 위한 최소 투표 횟수 R : 개별 영화에 대한 평균 평점 C : 전체 영화에 대한 평균 평점

영화 전체 평균 평점과 최소 투가 횟수를 60% 지점으로 지정

가중치가 부여된 평점 계산하기 위한 함수

C = movies_df [ ‘vote_average’ ] . mean ( ) m = movies_df [ ‘vote_count’ ] . quantile ( 0.6 ) def weighted_vote_average ( record ) : v = record [ ‘vote_count’ ] R = record [ ‘vote_average’ ] return ( ( v / ( v + m ) ) * R ) + ( ( m / ( v + m ) ) * C ) movies_df [ ‘weighted_vote’ ] = movies_df . apply ( weighted_vote_average , axis = 1 ) movies_df . head ( 2 )

– 가중치 평점을 활용한 추천 영화 DataFrame 반환 함수

def find_sim_movie ( df , sorted_ind , title_name , top_n = 10 ) : title_movie = df [ df [ ‘title’ ] == title_name ] title_index = title_movie . index . values similar_indexes = sorted_ind [ title_index , : ( top_n * 2 ) ] similar_indexes = similar_indexes . reshape ( – 1 ) similar_indexes = similar_indexes [ similar_indexes != title_index ] return df . iloc [ similar_indexes ] . sort_values ( ‘weighted_vote’ , ascending = False ) [ : top_n ] similar_movies = find_sim_movie ( movies_df , genre_sim_sorted_ind , ‘The Godfather’ , 10 ) similar_movies [ [ ‘title’ , ‘vote_average’ , ‘weighted_vote’ ] ]

3. 아이템 기반 최근접 이웃 협업 필터링(MoviesLens)

– 데이터 읽기

import pandas as pd import numpy as np import warnings ; warnings . filterwarnings ( ‘ignore’ ) movies = pd . read_csv ( ‘./data/01/ml-latest-small/movies.csv’ ) ratings = pd . read_csv ( ‘./data/01/ml-latest-small/ratings.csv’ ) movies . shape , ratings . shape

movie : 영화 제목과 장르

ratings : 사용자별 각 영화의 평점

movies . head ( 2 )

ratings . head ( 2 )

– 데이터 정리

ratings와 movie를 movieId 기준으로 결합

rating_movies = pd . merge ( ratings , movies , on = ‘movieId’ ) rating_movies . head ( 2 )

ratings 데이터를 각 사용자의 평점을 보기 쉽게 pivot_table로 변경 nan은 0으로 변환

ratings_matrix = rating_movies . pivot_table ( ‘rating’ , index = ‘userId’ , columns = ‘title’ ) ratings_matrix . fillna ( 0 , inplace = True ) ratings_matrix . head ( 2 )

– 유사도 측정

유사도 측정을 위해 행렬 transpose(행, 열 전환)

ratings_matrix_T = ratings_matrix . transpose ( ) ratings_matrix_T . head ( 2 )

코사인 유사도 측정

from sklearn . metrics . pairwise import cosine_similarity item_sim = cosine_similarity ( ratings_matrix_T , ratings_matrix_T ) item_sim_df = pd . DataFrame ( data = item_sim , index = ratings_matrix . columns , columns = ratings_matrix . columns ) print ( item_sim_df . shape ) item_sim_df . head ( 2 )

– 추천 영화 DataFrame 반환 함수

def find_sim_movie_item ( df , title_name , top_n = 10 ) : title_movie_sim = df [ [ title_name ] ] . drop ( title_name , axis = 0 ) return title_movie_sim . sort_values ( title_name , ascending = False ) [ : top_n ]

대부 -> 추천

find_sim_movie_item ( item_sim_df , ‘Godfather, The (1972)’ )

인셉션 -> 추천

So you have finished reading the 영화 추천 알고리즘 topic article, if you find this article useful, please share it. Thank you very much. See more: 영화 추천 알고리즘 오픈소스, 파이썬 영화 추천 알고리즘, 영화 추천 시스템, 왓챠 영화 추천 알고리즘, 영화 추천 머신러닝, 딥러닝 영화 추천, Django 영화 추천, 추천 시스템 오픈소스

See also  Top 41 몸매 영어 로 The 61 Correct Answer

Leave a Comment