Computer Engineering/Algorithm

추천 알고리즘 (Recommendation Algorithm)

kstar2 2022. 8. 23. 14:30

사용자가 선호할만한 아이템을 추측함으로써 여러 가지 항목 중

사용자에게 적합한 특정 항목을 추천하여 제공하는 알고리즘

1. 추천의 종류

사용자의 행동 로그(behavior log) 데이터로 사용자의 호감을 조사하고 좋아할만한 아이템 추천

  • 전체 추천 : 불특정 다수에 대한 무작위 추천 ex) TV 광고, 네이버 광고배너 등
  • 그룹 추천 : 사용자를 특정 분야로 나눠 그에 특화된 추천을 제공 ex) 대학생 인기검색어 등
  • 개념 추천
    • 사용자의 이력을 바탕으로 관심사를 추축해 맞는 아이템을 보여줌
    • 일반적으로 협업 필터링(Collaborative Filtering)이 사용되며 추천 알고리즘의 기반이 됨
  • 아이템 기반 추천
    • 아이템 기반의 추천 ex) 쇼핑몰의 유사 상품 추천, 넷플리스나 유튜브 추천 영화나 동영상
    • 단일 알고리즘으로 쓰이지 않고 개인 추천과 하이브리드 형태로 결합하거나 메타 데이터를 이용해 재가공

선호도 조사 방법

사용자 레이팅(User Rating)

협업 필터링을 위한 기본 데이터이다. 사용자의 선호도 조사 방법은 아래와 같다

  • 명시적 레이팅(explicit rating)
    • 사용자의 분명한 피드백을 받는 방법
    • 단점
      • 데이터 반약도(data sparsity)가 크다 ex) 물건을 구매후 정성적인 평점과 리뷰를 남기는 경우가 적음
      • 점수 편향이 존재 ex) 상품에 부정적인 경험을 한 사람이 피드백을 남길 가능성이 더 낮다
      • 점수 범위(scope)가 사용자 마다 다르다 ex) A는 2~4점 사이, B는 3~5점 사이 점수만 준다면 평균의 의미가 없어짐
  • 암묵적 점수(implicit feedback)
    • 조회여부와 구매여부에 따라 선호도를 추정하는 방식
    • 명시적 레이팅에 비해 편향이 적다
    • 목록에 노출되었으나 조회하지 않으면 -1점, 목록에 노출되지 않았다면 0점, 조회되면 1점, 구매나 특정 액션을 했다면 3점 등으로 점수를 부여함

메타 데이터와 소셜 관계 데이터

콘텐츠 기반 필터링(Content-based filtering)을 위한 데이터는 메타 데이터와 소셜 관계 데이터

  • 메타 데이터 :
  • 소셜 관계 데이터 :

알고리즘 종류

개인 추천 알고리즘

  • 행렬 분해(Matrix factorization, MF)
    • 특정한 행렬에서 속성을 추출하기 위해 사용되는 방법
    • 맞춤형 개인 추천을 위한 개념으로 특정 사용자 간의, 혹은 특정 아이템 소비군의 유사도를 분석하는데 큰 도움 된다행렬 분해(Matrix factorization, MF)

  • 유클리드 거리, 코사인 유사도, 피어슨 상관계수를 이용한 유사도 측정

개념 추천 알고리즘

  • 협업 필터링(Collaborative Filtering, CF)
    • 모델 기반의 협업 필터링과 메모리 기반 협업 필터링이 존재
  • 모델기반 협업 필털이 : 나이브 베이지안(Naive Bayesian)이나 뉴럴 네트워크(Neural Network) 등 다양한 머신러닝 기법을 통해서 추천
  • 메모리기반 협업 필터링 :
    • 유저와 아이템에 대한 레이팅을 모두 메모리 위에 올려두고 유저/아이템 간의 관계를 계산
    • 장점 : 간단하지만 의외로 추천의 성능이 매우 좋음
    • 단점 : 커버리지 자체가 낮은편
    • 최소 한 번 이상의 조회가 일어난 상품이 아니면 추천 리스트에 올라갈 수 없고, 새로운 유저나 아이템에 대해 레이팅 자체가 존재하지 않아 품질 저하 문제가 발생
    • 또, 기본적으로 인기도에 의한 추천이기 때문에 인기 있는 사움들이 계속 추천될 확률이 높음
    • 행렬 분해와 유사성 측정을 통해 개인 추천을 하더라도 해당 상품의 인기에 크게 의존하여 만족도가 떨어질 수 있음

랭킹과 필터링

  • 이미 유저가 충분히 알고 있는 아이템은 제거한다.
  • 자주 노출되거나 사용자가 이미 조회/구매한 아이템은 필터링하고, 유사한 아이템이나 다른 새로운 아이템의 순위를 더 높여 사용자의 피로도를 최소화하고 만족도를 높이는 것이 중요

REF

http://wiki.hash.kr/index.php/%EC%B6%94%EC%B2%9C_%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98