추천 시스템(Recommend System)
이번에 진행할 것은 추천 시스템이다. 추천 시스템의 경우 몇 가지 방법이 있다. 간략하게 설명하면 비슷한 유저를 찾아서 그 유저가 좋아했던 콘텐츠를 추천해 주거나 어느 한 유저가 어떤 콘텐츠를 봤을 때 각 콘텐츠의 유사도를 분석하고 비슷한 콘텐츠를 추천해주는 방식이 있다. 이번에는 후자의 방식을 코드와 함께 소개하고자 한다. 1. 추천 시스템의 설명 위의 그림이 매우 간단하게 추천 시스템을 표현하는 그림이다. 유저B는 유저 A와 유사하다고 할 수 있고 따라서 유저 B에게 콜라를 추천해 줄 수 있는 것이다. 또한 반대로 라면을 먹은 유저들 대부분은 삼각김밥을 먹었기 때문에 유저D에게 삼각김밥을 추천해 줄 수 있는 것이다. 2. 추천 시스템의 알고리즘 및 Task 그럼 추천 시스템에서 머신러닝이 하는 역할은 무엇일까? 바로 위의 표에서 빈 공간을 채우거나 새로운 무언가가 들어왔을 때 하는 것이 바로 추천 시스템에서 인공지능의 역할이다. 위처럼 비어있는 공간이나 아니면 전혀 새로운 유저나 콘텐츠가 들어왔을 경우 아무런 정보 없이 그 선호도를 파악하기 위해 행렬 분해를 사용하고 각각을 채운다. 이는 나중에 논문과 코드를 리뷰해보면서 더욱 자세히 알아보도록 하겠다. 3. 기본적인 협업 필터링 구현 코드 본격적인 인공지능을 이용한 추천 시스템을 하기 전에 기본적인 협업 필터링을 통한 추천 시스템을 구현해 보도록 하겠다. 가장 먼저 데이터를 구비한다. 데이터는 다음과 같이 movie, rating 두가지 파일이 있고 각각은 다음과 같은 형태를 띈다. movie.csv 파일 rating.csv 파일 보다 싶이 나누어서 영화 이름, 아이디, 장르와 관객 정보, 점수 등이 표시되어 있다. 이제 우리는 이 자료를 가지고 한 사용자에게 다른 영화를 추천해주는 알고리즘을 짜볼 것이다. 일단 사용할 기본적인 라이브러리들과 데이터를 불러왔다. import pandas as pd from sklearn....