ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [16주차 - Day1] Recommendation system이란
    교육/프로그래머스 인공지능 데브코스 2021. 8. 18. 08:20
    728x90

    ML기반 추천 엔진 : 추천 엔진이란?

    1. 추천 엔진 정의

    추천 엔진은 왜 생겨나게 되었는가?

    • 사용자 : 서비스를 사용하는 사람
    • 아이템 : 서비스에서 판매하는 물품

    서비스가 성장하면 사용자/아이템의 수도 같이 성장하지만 아이템의 수가 커지면서 아이템 발견 문제가 대두

    모든 사용자가 검색(능동)을 하지 않으며 사람들이 점점 더 추천(수동)을 원함

     

    추천 엔진의 정의

    • 사용자가 관심있어 할만한 아이템을 제공해주는 자동화된 시스템
    • 비즈니스 장기적인 목표를 개선하기 위해 사용자게엑 알맞은 아이템을 자동으로 보여주는 시스템

    추천 엔진이 필요한 이유?

    • 조금의 노력으로 사용자가 관심있어 할만한 아이템을 찾아줌
    • 회사 관점에서 추천 엔진을 기반으로 다양한 기능 추가 가능
    • 아이템의 수가 많아서 원하는 것을 찾기 쉽지 않은 경우 수고를 덜어줌
    • 추천을 통해 마케팅
    • 인기 아이템뿐만 아니라 다양한 아이템의 노출 가능

    매칭이 잘 되려면 사용자와 아이템에 대한 부가 정보들이 필요해짐

    2. 추천 엔진 알고리즘 종류

    1. 컨텐츠 기반 추천

    아이템 기반, 아이템 간의 유사도를 측정하여 추천

    개인화된 추천이 아님(모든 이에게 동일한 아이템 추천), 비슷한 아이템 기반 추천

    구현이 상대적으로 간단

    2. 협업 필터링(collaborative Filtering)기반

    다른 사용자의 정보를 이용하여 내 취향을 예측, 행렬 계산

    사용자 기반 협업 필터링(User-to-User Collaborative Filtering)

    나와 비슷한 평점 패턴을 보이는 사람들을 찾아서 그 사람들이 높게 평가한 아이템 추천

    사용자 프로파일 정보 구축, 프로파일 정보간 유사도 계산

    아이템 기반 협업 필터링(Item-to-Item)

    평점의 패턴이 비슷한 아이템들을 찾아서 추천

    아이템들간의 유사도를 비교하는 것으로 시작

    사용자 기반 협업 필터링과 비교해 더 안정적이며 좋은 성능

    더보기

    유사도 측정 방법?

    두 개의 비교대상(사용자-사용자/아이템-아이템)을 N차원 좌표로 표현 

    코사인 유사도 or 피어스 상관관계 이용

    1. 코사인 유사도
      • 두 벡터의 방향성이 비슷할수록 1에 가까운 값이 계산
      • 두 벡터가 방향성이 반대일수록 -1에 가까운 값이 계산
    2. 피어슨 유사도
      • 코사인 유사도의 개선 버전
      • 각 벡터를 중앙으로 중심으로 재조정

    협업 필터링의 문제점

    1. Cold Start 문제
      • 새로운 사용자, 아이템이 추가되었을 때 평점, 리뷰가 없는 경우
      • 보통 컨텐츠 기반, 사용자 행동 기반 추천과 병행하여 해결
    2. 리뷰 정보의 부족(sparsity)
      • 리뷰했다는 사실 자체도 관심이 있다는 것??
    3. 업데이트 시점
      • 사용자, 아이템이 추가될 때마다 다시 계산
    4. 확장성 이슈
      • 사용자와 아이템 수가 늘어나면서 행렬 계산이 오래 걸림
      • Spark같은 인프라로 해결

    협업 필터링(Collaborative Filtering)구현 방법

    1. 메모리 기반
      • 사용자 기반과 아이템 기반
      • 사용자/아이템 간 유사도를 미리 계산
      • 추천 요청이 오면 유사한 사용자 or 아이템을 k개 뽑아서 이를 바탕으로 아이템 추천
      • 구현과 이해가 상대적으로 쉽지만 스케일하지 않음(평점 데이터 부족)
    2. 모델 기반
      • 사용자 아이템 행렬에서 비어있는 평점들을 SGD를 사용해서 채우는 방식
      • 보통 SVD(Singular Vector Decomposition)을 사용해서 구현
      • 평점을 포함한 다른 사용자 행동을 예측하는 방식으로 진화

    3. 사용자 행동 기반

    사용자의 행동(주로 암시적 정보 : 클릭, 구매, 소비)을 보고 그에 맞춰 아이템을 추천

    모델링을 통해 사용자와 아이템 쌍에 대한 클릭 확률 등의 점수 계산이 가능

    사용자 행동 기반 추천 엔진의 종류

    1. 사용자 행동 기반 간단한 추천 유닛 구성
      • 사용자가 관심보인 카테고리의 새로운 아이템, 인기 아이템 등
    2. 사용자 행동을 예측하는 추천(클릭 혹은 구매)
      • 지도 학습 문제로 접근가능
      • 무엇을 학습/예측하는 모델인지 먼저 생각
      • 어떤 기준으로 추천을 하느냐가 가장 중요->머신러닝의 레이블 정보 : 명시적 힌트 ex)리뷰점수, 좋아요/암시적 힌트 ex)클릭, 구매, 소비

     

     

    댓글

Designed by Tistory.