글쟁이, 코딩한다

0215 / k_digital 45일차 / 파이널프로젝트 본문

나는 코딩도 한다/TIL

0215 / k_digital 45일차 / 파이널프로젝트

Algori 2021. 2. 15. 23:54

0. 

 설 쇠고 왔다. 오늘부터 마지막 프로젝트에 들어간다.

 

 마지막 프로젝트는 자율 주제&팀이다. 누군가 주제를 발의하면 이를 보고 팀에 참여한다.

 

 그간 관심사를 살려 영화 추천 사이트 구성 팀으로 들어갔다. 이미지 캡셔닝, 수화 번역 등 주제들도 있었지만, 나는 늘 추천에 관심을 기울여왔다. 영화 추천은 사용할만한 데이터도 존재하고 기본 예제가 많다. 

 

 기본적으로 추천 시스템은 누군가의 취향을 파악해야한다는 점에서 흥미롭다.

 

 취향은 독특한 영역이다. 회사 입장에서는 소비자의 취향을 온전히 아는 것보다 강력한 무기는 없다. 가치 소비 경향이 커지고 편향이 커질 수록 그럴테다. 물건이 너무 많으니 내가 아는 인플루언서가 사는 물건, 내가 보는 유튜브에서 나온 물건을 사는 일이다. 

 

 콘텐츠는 특히 그런 경향이 강하다. 요즘처럼 콘텐츠가 범람하며 누구나 콘텐츠를 즐기는 시점에서 취향은 자기 자신을 설명하는 가장 강력한 도구다. 콘텐츠는 상품처럼 어떤 일을 처리하는 성과 정도-이를테면 가위가 물건을 잘 자른다던가 하는 기준-이 없기에 더 그렇다. 취향이 콘텐츠의 질을 결정한다. 다수의 취향에 맞으면 좋은 콘텐츠가 된다. 많이 보면 좋은 콘텐츠가 될 확률이 높다. 그리고 이 취향은 보통 글로벌 콘텐츠 기업의 추천 시스템으로부터 영향을 받는다.

 

 정말 쉽게 만나는 넷플릭스, 유튜브, 스포티파이의 추천 알고리즘이 그렇다. 세 영역은 각자 조금씩 다른 방식으로 보이기는 하지만. 아무튼 콘텐츠 추천에 관해서는 위 세가지에 더해 왓챠, 네이버웹툰, 알라딘, 예스24 등을 포함해 나중에 포스팅을 해보기로 하자. 취향을 알아가기 위해 활용하는 추천 시스템이 오히려 취향을 형성해가고 가두는 일은 단순 비즈니스 영역뿐에서만 아니라 콘텐츠 만들기에 쭉 시간을 써온 나로써는 흥미로운 일이다. 

 

1.

 어쨌든 방향은 이렇다.

 

 큰 틀은 영화 추천이다.

 

기본 레퍼런스로 활용할 왓챠피디아 사이트다. 대부분 알고 있는 사이트라 생각했는데 모르는 팀원들도 있어서 놀랐다. 내가 매긴 영화 별점을 바탕으로 영화를 추천해준다. TV프로그램과 책도 추천한다.

 

 집중하는 것은 효과적으로 이용자의 취향-인풋을 받아들이는 것이다. 넷플릭스나 왓챠는 관심 영화, 별점 등으로 이를 수행한다. 나중에 클릭이 쌓이면 추천은 정확해진다. 우리는 콘텐츠와 연결해줄 수 없으므로 기초 데이터베이스를 잘 쌓아야 한다.

왓챠피디아에서 별점을 받는 페이지다. 회원가입 직후에 나오며 화면을 빠져나와도 언제든 다시 돌아갈 수 있다. 왓챠플레이에서도 영화 감상 후 쉽게 활용 가능하다. 

 이를 위해 '이상형 월드컵' 형식을 활용한다. 기본은 vs다. A랑 B중 누가 나은지 묻는다. A와 B는 각각 한 분야를 대표한다. 파고들수록 비슷한 영화들이 나올 수 있도록 이상형 월드컵 알고리즘을 만든다. 각 선택지는 사이트 내에서 이용자의 취향-별점-으로 대체한다. 

 

 이상형 월드컵은 한 번으로 끝이 아니다. 선택지에 따라 다른 질문 베이스들을 구현한다. 진지한 영화 월드컵, 가벼운 영화 월드컵, 애니 영화 월드컵, 소설 원작 영화 월드컵... 등등을 만들 수 있을 테다. (이용자가 직접 더할 수 있어도 좋겠다.) 이는 모두 데이터베이스로 활용된다.

이상형 월드컵 방식이다. PIKU 이상형 월드컵 사이트가 기본 레퍼런스다. 이 사이트는 누구나 쉽게 이상형 월드컵을 만들 수 있도록 했다. 사진뿐 아니라 유튜브 링크도 활용 가능한 듯하다.

 내가 제안한 방식이다. 나는 추천 시스템을 이해하려고 하며 기본적으로 결국 초기 데이터의 정확도를 고민하게 됐다. 이를 정확하게 받으면 받을수록 추천은 좋아질텐데, 이용자들은 귀찮아서 잘 안 한다. 별점 매기는 것조차도 귀찮다. 나는 이상형 월드컵 역시 귀찮지 않을까? 고민했으나 실제 이 방식은 많이들 이용한다. 기본적으로 대결 구도라 그런가. 질 좋은 데이터를 받아들이는 것은 뭐 어디서든 중요하겠지만.

 

 이상형 월드컵을 거쳐 최애 영화를 선정하면, 이에 맞춰 추천한다. 최애 영화는 이미 본 영화다. 추천은 이용자가 안 본 영화가 대상이어야 한다. 최애 영화와 장르-이상형 월드컵으로 세분화를 마친 장르-가 같은 영화, 감독이 같은 영화, 배우가 같은 영화를 추천한다. 이 역시 이상형 월드컵을 여러차례 거칠 수록 정확해진다.

 

 과정은 2주다. 이 가운데 어디까지 구현해낼 수 있을지는 미지수다. 기본 베이스가 될 첫 이상형 월드컵, 이에 기반한 추천 시스템 확립, 추천 화면 띄우기, 영화 세부 정보 화면 이동 까지가 가능할 듯하다. 

 

 

  2. 

  오늘 한 일

  

 1. 사실 위의 사이트 내용을 설계하는 데 시간은 거의 다 썼다. 사이트 설계도도 대강 그렸다.

 

 2. 데이터 베이스 확보&정돈

  Movielens에서 제공하는 IMDB와 TMDB 영화 데이터가 기본이다. (한국 영화가 중심이 아니라는 것이 한계다. 하지만 데이터 확보에 그리 많은 시간을 쏟을 수는 없었다.)

 

  2-1. 필요한 정보들 정리 -> 소규모 영화(약 1만개)의 장르, 감독, 배우, 평균평점을 모은 데이터베이스 파일과 추천을 위한 이용자별 레이팅 데이터베이스 파일 확보. 데이터가 여러개인데다가 열마다 다소 복잡한 방식으로 들어가 있어 이를 추리는데 시간이 많이 든다.

 

  2-2. 영화 포스터 확보를 위한 크롤링 -> 네이버 API 활용 : 영화 포스터도 데이터베이스 과정에서 확보하려고 했다. 찾다보니 네이버 API에 영화 검색 기능이 있어 이를 활용하면 충분해보였다. 적용도 간단해서 좋다. 하루 25000건까지 무료로 쓸 수 있다. 나중에 사이트 구축에 있어서도 기본이 될 듯하다.

아주 간단한 코드로 네이버 영화 검색 정보를 받아 데이터프레임으로 바꿔낼 수 있다.

 

 

진행과정은 프로젝트 전체 포스팅을 위해서라도 나날이 업데이트하겠다.

Comments