제로베이스_Machine Learning (13)

KulangK·2023년 9월 12일

Machine Learning

목록 보기
13/13
post-thumbnail

📄 목차

  1. Recommender System (추천 시스템)
    • 영화 추천 (컨텐츠 기반 필터링)
    • 영화 추천 (아이템 기반 최근접 이웃 협업 필터링)
    • 책 추천

1. Recommender System

  • 유튜브, 음악 어플, 온라인 쇼핑몰 컨텐츠 등에서 중요한 부분을 차지함

  • 컨텐츠 기반 필터링 추천 시스템
    • 사용자가 특정 아이템을 선호하는 경우, 비슷한 아이템을 추천

  • 최근접 이웃 협업 필터링
    • 축적된 사용자 행동 데이터를 기반으로 사용자가 아직 평가하지 않은 아이템을 예측 평가
    • 사용자 기반 (비슷한 고객 확인하여 상품 추천)
    • 아이템 기반 (상품 구매에 따른 다음 상품 추천)
  • 아이템 기반 협업 필터링이 사용자 기반보다 정확도가 더 높음
    • 영화를 예로 들면
      • 비슷한 영화를 좋아해도 취향이 비슷하다고 판단 어려움
      • 매우 유명한 영화는 취향과 관계 없이 관람하는 경우 많음
      • 사용자들이 평점을 매기지 않는 경우가 많음

  • 잠재 요인 협업 필터링
    • 사용자-아이템 평점 행렬 데이터를 이용하여 잠재요인 도출
    • 주요인과 아이템에 대한 잠재요인을 행렬 분해 후 다시 행렬 곱을 통해 아직 평점을 부여하지 않은 아이템에 대한 예측 평점 생성

영화 추천 (컨텐츠 기반 필터링)

  • 데이터: TMDB 5000 Movie Dataset

  • 흐름:
    전처리 >> 단어 조합 유사성 찾고 함수 작성하여 유사 영화 추천 >> 문제 되는 부분 확인 후 함수 재작성

  1. 전처리

  2. 단어조합 유사성 찾기 (CountVectorizer 사용), 영화 추천 함수 작성 후 테스트

  3. 영화 평점 가중치 선정 및 함수 재작성 후 테스트


영화 추천 (아이템 기반 최근접 이웃 협업 필터링)

  • 컨텐츠 기반과의 차이점
    • 위에서 다뤘던 컨텐츠 기반 필터링은 영화의 장르를 단어별 조합을 생성 (vectorize), 이에 대해 유사도를 코사인 유사도를 이용하여 비슷한 장르의 영화를 선정하도록 함
    • 반면 아이템 기반 최근접 이웃 협업 필터링은 유저의 점수가 vector 역할을 하여 그대로 코사인 유사도를 이용해 비슷하게 점수가 매겨진 영화들을 가져오게 됨.
      • 처음에는 영화의 제목이 vectorize 되는 것으로 착각하였으나, 다른 영화를 테스트 하였을 때 이름이 전혀 비슷하지 않은 항목들이 나와서 이해가 갔음.

책 추천 (tfidf를 활용한 컨텐츠 기반 필터링)

  • 데이터: Goodbooks-10k Kaggle data

  • 흐름:
    데이터 읽고 분할된 데이터 확인 >> merge 활용하여 저자 / tag / 저자+tag 통해 유사 책 추천

profile
새싹 데이터 분석가 https://github.com/KulangK

0개의 댓글