추천 시스템_2

ilysm96·2023년 5월 16일
0

컨텐츠 기반 추천 시스템 (1)

  • 컨텐츠가 비슷한 아이템을 추천한다
  • 사용자가 과거에 경험했던 아이템 중 비슷한 아이템을 현재 시점에 추천한다.

장점

  • 다른 유저의 데이터가 필요하지 않다.
  • 추천할 수 있는 아이템의 범위가 넓다 (Unique, New, Unpopular 아이템 모두 가능)
  • 추천하는 이유를 제시할 수 있다
    - 아이템의 features로 컨텐츠 분석 가능
    - 특정 feature가 추천의 이유가 됐다고 설명가능

단점

  • 적잘한 features를 찾기가 어렵다
    - 영화, 사진, 음악, 뉴스(텍스트) 등
  • 새로운 유저를 위한 추천이 어렵다 (cold start 문제)
    - User Porfile이 존재하지 않거나 데이터가 매우 부족하다
  • 선호하는 특성을 가진 항목을 반복 추천한다
    - Overspecialization
    - 유저의 다양한 취향 반영 어려움
    - 유저 프로필외 추천 불가

    컨텐츠 기반 추천시스템 Architecture

정보(유저, 아이템)제공 → 컨텐츠 분석 → 유저 프로필 파악 → 유사 아이템 선택 → 추천 리스트 생성

컨텐츠 기반 추천시스템에서 가장 중요한 것

  • 컨텐츠의 내용을 분석하는 아이템 분석 알고리즘
    - Clustering, Machine Learning, TF-IDF 등 활용
  • 추천시스템의 성능을 높일 수 있는 적절한 컨텐츠를 사용하는 것!
    - 영화 추천을 위해 영화 정보를 활용하고, 뉴스 추천을 위해 뉴스 내용을 확인하는 것

Item 과 User Profile

Item Representation

  • Item을 set of features로 표현한다
  • Item의 여러 특성을 attributes, features 라고 한다.
  • Item Profile은 분석된 여러 특성들을 나타내며, 이를 정량화해서 사용
    - 구성된 목록 등을 바탕으로 가중치 부여 가능
  • Item 설명은 text features이므로, text preprocessing 등을 통해 features를 얻을 수 있음
    - 설명 등 문서가 포함하는 키워드 활용
    - TF-IDF 등으로 가중치 부여
  • Item-Item간의 유사도는 코사인 유사도 활용

유사한 컨텐츠를 찾는 방법

유클리드 거리

  • 두 점 사이의 거리를 계산할 때 사용, 거리 기반 유사도 측정, 가까운 거리

코사인 유사도

  • 벡터 사이의 각도 계산, 두 벡터간 유사한 정도를 코사인 값으로 표현

코사인 유사도를 봤을 때 New1은 movie3과 더 유사하므로 싫어한다고 볼 수 있다.

유클리드 거리와 코사인 유사도 비교

  • 유클리드 : 점과 점사이 단순 거리
  • 코사인 유사도 : 원점에서의 방향 고려해서 비슷한거 찾기, 무게나 크기 고려 x

K-Nearest-Neighbor

  • 데이터로부터 거리가 가까운 거리를 묶음 (유클리드 거리계산 메트릭스 사용)

  • lazy model : 모델을 필요로 하지 않음

  • 회귀 : 주위에 있는 데이터 평균 사용 (데이터 들의 평균을 찍어 선 잇기 )

  • 분류 : k 값에 따라 주위 데이터를 보고 분류

과도한 정규화 x

과도하게 정규화가 되면 다 비슷한 분포를 이루어서 거리를 측정하는 알고리즘에서 도움이 되지 않음

k-nn 장단점

  • k는 홀수
  • 장점 : 훈련 필요 x 빠르게 예측 가능, 수치 기반 데이터 우수한 성능, 단순 효율
  • 단점 : 명목(남,녀의 경우 1,0으로 거리 계산하기 어려움), 더미 데이터 어렵, 변수가 많은 데이터 처리 속도 느리고 정확도 떨어짐, 적절한 k 선택 어렵, 변수 특징 이해하는 알고리즘이 아님

TF-IDF


IDF 가 1에 가까운 경우 0 즉 흔하게 등장한다.
즉, 중요하지 않은 단어다.

유사도로 평점 예측하기


9000x9000행렬은 TF-IDF를 통해 얻어진 메트릭스

word2vec

  • 단어가 갖는 의미를 벡터화, 즉 임베딩을 하기 위한 방법론
  • 입력이 비슷한 단어는 출력도 비슷할 것이다.
  • 주변단어가 비슷하면 중심단어도 비슷할 것이다.
  • 중심단어로 부터 주변단어를 임베딩
profile
안녕하세요 반갑습니다!

0개의 댓글