Deep Learning

Deep Learning - Netflix 연관 컨텐츠 파악하기 Part3

electronicprogrammer 2020. 10. 6. 11:09

데이터 출처 : www.kaggle.com/shivamb/netflix-shows

 

Netflix Movies and TV Shows

Movies and TV Shows listings on Netflix

www.kaggle.com

 

ipynb file : github.com/sangHa0411/DataScience/blob/main/Netflix_Analysis.ipynb

 

sangHa0411/DataScience

Contribute to sangHa0411/DataScience development by creating an account on GitHub.

github.com

Part2 에서는 콘텐츠들의 장르 , 유형 , 등급 , 텍스트들의 정보를 인코딩함으로써 하나의 벡터로 만드는 과정을 정리하였습니다.

 

이를 이용해서 Part3 에서는 Part2에서 말씀드린 대로 True Data, False Data를 만들고 이를 이용해서 Deep Learning Model을 만들고 이를 이용해서 콘텐츠들의 연관 콘텐츠를 파악하는 방법을 정리하고자 합니다.

 

기존 데이터는 그대로 사용하며 True Data라고 합니다.

이제 False Data를 만드는 데 어떻게 만들 것이면 기존의 장르 , 유형, 제작 일자, 등급 등등을 원래 기존의 값 이외의 값을 무작위로 선정해서 벡터를 만듭니다.이러한 방법으로 하나의 콘텐츠당 False 데이터를 4개를 만들었습니다.

 

저희는 Deep Learning을 훈련시키는 것이기 때문에 저희는 훈련 및 테스트 데이터를 분할할 필요가 없으므로 True Data , False Data 모두를 훈련 데이터에 저장합니다. 

이제 저희는 Deep Learning 을 훈련 시킬 준비를 마쳤습니다.

 

필요한 라이브러리를 모두 불러옵니다.

 

사용할 Deep Learning 모델을 만듭니다.

위 과정을 통해서 저희는 연관 컨텐츠 파악할 시스템을 만드기 위해서 Target Model을 만듭니다.

입력으로 콘텐츠 정보 길이가 74인 벡터가 가면 이 벡터는 Word Embedding을 거쳐서 최종적으로 길이가 256인 벡터를 구할 수 있게 됩니다.

이와 더불어서 저희는 모델을 학습시키기 위한 기존 모델을 만듭니다.

 

학습을 다 마치고 나면 저희는 앞서 말씀드린 대로 Target Model을 이용함으로써 길이가 256인 벡터를 구할 수 있게 됩니다. 이제 Netflix 콘텐츠 모두를 Tatget Model에 입력시킴으로써 각 콘텐츠들의 벡터를 구합니다.

 

이제 저희는 이 벡터를 이용해서 코사인 유사도를 이용해서 얼마나 유사한가를 측정하고자 합니다.

 

하나의 콘텐츠가 들어가면 해당 콘텐츠 들의 벡터와 데이터에 있는 모든 벡터들과 코사인 유사도를 계산하고 저장합니다.

 

이 중에서 가장 유사한 5개 벡터를 구합니다,

여기서 벡터들의 인덱스를 이용해서 기존 콘텐츠 정보를 파악하고 반환합니다.

위에 보시면 예시로써 Transformer Prime 콘텐츠에 대한 유사한 콘텐츠를 파악한 것을 확인할 수 있습니다.

 

아래는 Transformer Prime과 유사한 컨텐츠들을 구한 결과입니다.

모두 TV Show인 것을 확인할 수 있고 개시 일자 또한 2018 , 2016년도로 비슷한 것을 확인할 수 있습니다. 또한 장르 또한 Kid's TV로 모두 동일한 것을 확인할 수 있습니다.

 

이제 유사한 콘텐츠들의 Description 들을 살펴보겠습니다.

각 컨텐츠들의 설명이 주로 사람을 지키고 악을 물리친다는 듯의 방향으로 설명이 되어 있음을 확인할 수 있습니다.

 

참고 자료 : towardsdatascience.com/building-a-recommendation-system-using-neural-network-embeddings-1ef92e5c80c9

 

Building a Recommendation System Using Neural Network Embeddings

How to use deep learning and Wikipedia to create a book recommendation system

towardsdatascience.com