[추천시스템] contents-based filtering, collaborative filtering

Woong·2024년 10월 5일
0

추천 시스템

목록 보기
4/4

내용 기반 필터링 (contents-based filtering)

  • 사용자가 선호하는 정보 기반 유사한 아이템을 계산하여 추천

아이템 특징 획득

  • 내용 기반 필터링에 사용할 아이템 특징을 획득하는 방법은 아이템의 성질에 따라 다름
  • 책: 제목, 장르등..
  • 음악: 음성데이터, 작곡가, 연도, 음색 등
  • 사진: 이미지 해석, 색체, 피사체 특징 등

사용자 프로필 획득

  • 간접 지정형

    • 사용자 과거 행동 이력에 기반해 프로필 작성
    • 예) 구입 이력중 가장 많이 나타난 아이템 특징.
  • 직접 지정형

    • 사용자 자신이 선호하는 아이템 특징을 명시적으로 지정
    • 서비스 가입 직후 온보딩, 마이 페이지 등

협조 필터링 (collaborative filtering)

  • 서비스 내 다른 사용자의 과거 행동 등을 통해 얻어진 기호 경향을 활용한 추천
  • ex) 사용자1과 사용자2가 같은 상품을 구매 -> 사용자2가 구입한 다른 상품을 사용자 1에게 추천
  • 메모리 기반 방법
    • 시스템에 사용자 데이터를 축적
    • 예측을 위한 계산을 수행하지 않음
    • 예측을 수행하는 시점에 예측 생성하여 응답
  • 모델 기반 방법
    • 시스템 내 축적된 데이터의 규칙성을 모델에 학습
    • 예측시 모델을 이용하여 예측 응답

메모리 기반 방법 알고리즘

  • 사용자-사용자 메모리 기반 방법

    • 추천받을 사용자와 선호도가 비슷한 사용자에 착안하여 추천 수행
  • 아이템-아이템 메모리 기반 방법

    • 추천받을 사용자가 선호하는 아이템과 비슷한 아이템에 착안하여 추천 수행
  • 사용자-사용자 메모리 기반 방법

    • 사용자1에게 아이템A, 아이템B 중 하나를 추천하는 경우
        1. 서비스내 다른 사용자 중 사용자1과 아이템 선호가 비슷한 사용자 찾기
          사용자의 구매 이력에서 아이템 선호도를 추측해 선호도 경향이 비슷한 사용자를 찾아냄
          예) 과거에 구입한 아이템은 선호, 구입하지 않은 아이템은 비선호로 분류.
          * 아이템의 구체적 속성 정보 등을 사용하지 않는 것이 협조 필터링의 특징
        1. 사용자1과 선호가 비슷한 사용자 그룹이 선호하는 아이템 찾기
          * 사용자1이 구매한 아이템을 구매한 사용자 그룹은 선호도 경향이 같다고 봄
        1. 추천

기호 데이터 획득과 평갓값 행렬

  • 기호 데이터 : 서비스 내 사용자의 행동 이력으로 추정한 선호도 경향

  • 명시적 피드백

    • 사용자가 직접 답변한 호불호를 기호 데이터로 획득
  • 암묵적 피드백

    • 사용자 행동 이력으로부터 아이템 관심을 추정해 기호 데이터로 획득
    • 구매 이력, 찜, 열람 등
  • 평갓값 : 수집한 기호 데이터 등에 기반해 사용자가 아이템의 선호도 정도를 정량적으로 나타낸 것

  • 평갓값 행렬

    • 평갓값을 성분으로 하는 사용자X아이템 행렬
    • 대상 사용자의 특정 아이템에 대한 미지의 평갓값을 예측해 계산함
    • 숫자가 클수록 좋은 평가, 평가하지 않은 것은 -
o아이템A아이템B아이템C아이템D아이템E아이템F
사용자1*344**
사용자2*2***3
사용자33**5**
사용자4***4**
사용자52*12**

모델 기반 방법 알고리즘

  • 이미 알고 있는 데이터의 규칙성을 학습한 모델을 미리 만들어서 평갓값을 예측, 추천하는 방법
  • 과거 사용자로부터 얻은 아이템의 평갓값 데이터를 훈련 데이터로 모델을 학습, 모르는 아이템에 대한 평갓값을 예측

협조 필터링 메모리 기반 방법 vs 모델 기반 방법

  • 추천 소요 시간

    • 메모리 기반: 추천시 소요시간이 길다
      • 매번 모든 데이터에 기반해 생성
    • 모델 기반: 미리 학습된 모델로 즉시 추천
  • 운용성

    • 메모리기반: 항상 최신 데이터를 반영해 추천 가능
      • 사용자나 아이템이 변경되어도 매 추천시 반영
    • 모델기반: 사용자나 아이템이 변경사항 즉시 반영 불가
      • 모델 업데이트 비용
      • 운용이 비교적 어려움

내용 기반 필터링 vs 협조 필터링

다양성 향상

  • 다양성: 추천 결과에 포함된 아이템이 서로 비슷하지 않은 것.
    • 다양성을 높이려면 내용 기반 필터링보다 협조 필터링 효과가 좋다.
  • 협조 필터링: 서비스내 다른 사용자가 평가하면 이 정보를 기반으로 추천할 수 있음
  • 내용 기반 필터링: 추천받을 사용자의 프로필에 없는 정보를 반영할 수 없다.

도메인 지식 취급 비용

  • 도메인 지식을 다루고 관리하는데 드는 비용은 협조 필터링의 비용이 더 낮다.
  • 협조 필터링은 추천받은 사용자의 기호와 비슷한 사용자의 아이템 정보를 기반으로 추천하기에 아이템 or 사용자 자체 속성 정보가 필요하지 않다.
  • 내용 기반 필터링은 아이템 특징이나 사용자 프로필 작성 시 도메인 지식을 사용해야 좋은 추천을 할 수 있다.
    • 예) 책을 추천할때 장르 정보만 사용하면 실제 관심 가질 아이템을 선택하기 어려워짐

콜드 스타트 문제

  • 사용자, 아이템 정보가 적은 경우 적절한 것을 추천하기 어려운 문제
  • 내용 기반 필터링 content-based filtering 이 보다 유리
    • 협조 필터링 collaborative filtering 은 사용자 과거 기호 데이터가 없으면 추천할 수 없다.
    • 내용 기반 필터링 content-based filtering은 사용자 프로필만 있으면 추천 가능하다.

사용자 수가 적은 서비스에서의 추천

  • 내용 기반 필터링이 보다 유리
    • 협조 필터링은 사용자 수가 적으면 비슷한 사용자을 얻거나 관심 아이템을 특정하는 것이 어려움
      • 다른 사용자의 행동 이력이 부족
  • 내용 기반 필터링은 아이템 특징이나 사용자 프로필만 있으면 사용자 수와 상관없이 추천 가능

커버리지 향상

  • 서비스의 모든 아이템중 추천할 수 있는 아이템의 비율
  • 커버리지가 낮다 -> 일부 아이템에 치우쳐 추천
  • 커버리지 향상 측면에서는 내용 기반 필터링이 유리
    • 협조 필터링은 추천받을 사용자와 비슷한 사용자가 평가 하지 않은 아이템은 추천할 수 없다. 추천할 아이템이 제한 됨
    • 내용 기반 필터링은 사용자 프로필과 연관된 아이템 특징을 가진 아이템이 있으면 추천 가능
      • 지속적인 아이템 특징 관리 및 프로필 반영 필요

아이템 특징 활용

  • 아이템 특징을 활용하는 관점에서는 내용 기반 필터링이 유리
  • 협조 필터링은 아이템 속성 정보를 고려 불가
    • 도메인 지식없이 기호 데이터를 바탕으로 추천하므로
    • 예) 검은 옷이 싫다고해도 선호도가 비슷한 다른 사용자가 검색옷을 좋아하면 추천될 수 있음
  • 내용 기반 필터링은 사용자 프로필에 명시된 아이템 특징을 고려하여 추천

예측 정확도

  • 서비스 적극 이용하며 일반적인 선호 경향을 가진 사용자에 대한 추천시, 협조 필터링 쪽이 높은 정확도로 예측
  • 다양한 사용자의 행동 이력을 추천 결과에 반영해야 복잡한 사용자의 기호 고려 가능
  • 사용자가 서비스를 계속 사용할수록 활용할 데이터가 늘어나 예측 정확도도 향상

추천 알고리즘 선택

  • 적절한 추천 알고리즘을 선택하기 위한 방침
    • 2가지 알고리즘 중 어느 한쪽만 선택하는 것이 아니라 적절하게 조합한 하이브리드 방법을 선택하는 경우도 있음.
    • 사용자나 아이템의 상황에 따라 여러 알고리즘을 구분해서 사용하거나 바꾸는등 대처도 필요
  • 서비스 내 데이터 양에 맞춰 선택
    • 신규 서비스는 사용자 수가 적어 데이터가 적다. 콜트 스타트 문제도 있음
    • 신규 사용자에게 추천하거나 신규 아이템을 추천할때 내용기반 필터링을 선택
    • 어느 정도 규모가 커지면 사용자 기호를 표현할 수 있는 협조 필터링으로 교체
  • 추천 시스템 제공 형태에 맞춰 선택
    • 개요 추천. 서비스 전체 사용자 행동 이력을 통계하여 특정 속성 등으로 필터링하는 직접 지정형 내용 기반 필터링
    • 연관 아이템 추천. 협조 필터링 or 단순하게 아이템 특징을 찾아서 추천
    • 개인화 추천. 축적된 데이터로 사용자-사용자 협조 필터링 or 간접 지정형 내용 기반 필터링
  • 댜양성 관점에 따라 알고리즘 선택
    • 원하는 것이 명확한 아이템에 관해서는 정확하게 추천할 수 있는 직접 지정형 내용 기반 필터링
    • 명확하지 않으면 구입 이력을 통해 추축한 새로운 아이템을 추천하는 협조 필터링

기호 데이터 특징

명시적/암묵적 획득

  • 데이터양

    • 암묵적 획득 : 사용자의 임의 행동으로부터 기호 데이터를 계속 획득
    • 명시적 획득 : 설문, 리뷰에 적극적으로 대답, 특정 아이템에 대한 관심 명시
      • 작업 강요시 부정적 경험이 되어 서비스 이탈 가능성
  • 데이터 정확성

    • 명시적 획득 : 사용자가 직접 선호도 입력 -> 높은 정확도
    • 암묵적 획득 : 사용자 선호도가 사용자 행동에 그대로 나타나지 않는 등 정확도가 떨어짐
      • 데이터 특성을 파악, 사용자 행동 정의할 적절한 조건 설정
      • ex) 페이지 거주 시간 등
  • 평가하지 않음과 기대하지 않음의 구별

    • 평가 하지 않음 : 아이템에 대해 사용자의 기호 데이터가 없는 상태
    • 기대하지 않음: 어떤 아이템에 대해 사용자가 싫어함 및 관심없음 등 부정적인 기호 데이터를 나타낸 경우
  • 사용자 인지 : 자신의 기호 데이터가 언제 어떻게 시스템에 반영되었는지 인지하는 것

    • 추천을 받아들이기 쉬우며 서비스에 대해 좋은 인상
    • 명시적 획득은 사용자가 직접 질문에 대답하기에 긍정적인 인상
    • 암묵적 획득은 시스템이 개인정보가 침해되었다는 부정적 인상을 갖게 되므로 주의

기호 데이터 유의사항

  • 데이터의 희소함 sparse

    • 평갓값 행렬의 성분 대부분이 0인 상태
    • 전체 아이템 대비 사용자가 평가할 수 있는 아이템은 적다.
  • 서비스 성질 고려

    • 음악 스트리밍은 짧은 시간에 계속해서 아이템 소비 -> 많은 기호 데이터 획득
    • 부동산 서비스는 구입 여부만으로 기호 데이터 획득 어려움
  • 평갓값의 변동, 편향

    • 평가에 절대적인 기준이 없어 같은 아이템이라도 다른 평가 발생
  • 평갓값 변동: 과거와 현재 평가가 다를 수 있다

    • 어떤 기간의 기호 데이터를 기반으로 구했는지도 주요 요소
  • 평갓값 편향

    • 사용자가 선호하는 것만 평가
    • 인기 있는 상품만 평가
    • 사용자 성향에 따라 평점이 평점이 후하거나 박할 수 있다.

0개의 댓글