Chapter 4

김동하·2023년 7월 14일

rec_sys

목록 보기
4/8
  • 추천 시스템 알고리즘은 머신러닝을 사용하는 고도의방법, 규칙에 기반한 방법까지 매우 다양하다.
  • '여러 후보 가운데 가치 있는 것을 선정'

추천 알고리즘 분류

  • 내용 기반 필터링(content-based filtering)과 협조필터링(collaborate filtering) 2가지로 나눌 수 있다.

  • 내용 기반 필터링은 책의 제목, 저자, 장르 등과 같이 아이템의 내용을 나타내는 정보를 사용

  • 사용자가 선호하는 정보를 기반으로 내용이 비슷한 아이템을 계산함으로써 추천을 수행하는 알고리즘

  • 협조 필터링의 경우 자신과 선호도가 비슷한 지인이 재미있게 읽은 책을 알려주며 '입소문'을 내는 과정처럼 서비스 내에 있는 다르 낫용자의 과거 행동 등을 통해 얻어진 기호 경향을 활용하여 추천하는 알고리즘

  • 협조 필터링은 예측을 실행하는 방법 관점에서 메모리 기반 방법, 모델 기반 방법으로 나뉜다.


내용 기반 필터링

개요

  • 내용 기반 필터링은 사용자가 어떤 내용의 아이템을 좋아하는지 나타내는 사용자 프로필(user profile)과 아이템의 다양한 성질을 나타내는 특징을 추출한 아이템 특징(item feature)과의 일치도, 즉 유사도를 계산함으로써 좋아할 만한 아이템을 사용자에게 추천하는 알고리즘

아이템 특징 획득

  • 내용 기반 필터링에서 사용할 아이템의 특징을 획득하는 방법은 아이템의 성질에 따라 다양
  • 책과 같은 상품이라면 제목이나 장르, 문자 수, 작가, 출판일 등 다양한 속성 정보를 얻을 수 있다
  • 아이템이 음악 등 음성 데이터의 경우 작곡자, 작곡 연도등 아이템의 속성 정보를 얻을 수 있고 속성 정보가 없을 경우도 음성 분석을 통해 음의 높이, 음색, 음량 등의 정보를 파악하여 아이템 특징으로 사용할 수 있다
  • 이미지 데이터의 경우 찍힌 물체, 촬영된 장소, 시간등의 속성 정보와 함께 이미지 분석등의 기술을 사용해 색채 정보나 피사체 형태 특징 등의 정보를 추가로 얻을 수 있다.

사용자 프로필 획득

  1. 간접 지정형
  • 사용자의 구입 이력 중 가장 많이 나타난 아이템의 특징을 해당 사용자가 선호하는 것으로 하여 사용자 프로필을 만들 수 있다
  1. 직접 지정형
  • 사용자에게 자신이 선호하는 아이템의 특징을 명시적으로 지정하도록 하는 직접 지정형
  • 명시적인 선호도 지정은 서비스 가입 직후 온보딩이나 마이 페이지 등에서 수행할 때가 많다

협조 필터링

  • 협조 필터링의 경우 메모리 기반 방법과 모델 기반 방법 2가지로 나뉜다
  • 메모리 기반 방법은 추천받을 사용자와 선호도가 비슷한 사용자에 착안하여 추천을 수행하는 사용자-사용자 메모리 기반방법(user-user memory-based method)과 추천 받을 상요자가 선호아는 아이템과 비슷한 아이템에 착안하여 추천하는 아이템-아이템 메모리 기반 방법(item-item memory-based method)로 나눌 수 있다.

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

  • 협조 필터링에서는 서비스 내 다른 사용자의 과거 행동 이력 등으로 부터 선호도 경향을 추정하여 추천에 사용

  • 이렇게 사용자로부터 얻은 아이템에 대한 선호도 정보를 기호 데이터라 부른다.

  • 기호 데이터를 획득하는 방법은 크게 명시적 피드백(explicit feedback)과 암묵적 피드백(preference data)으로 나눌 수 있다.

  • 명시적 피드백은 사용자에게 5단계 평가로 아이템을 리뷰하도록 하거나 선호하는 아이템의 장르 등을 물어서 대답하도록 하는 등 사용자에게 아이템의 좋고 싫음이나 관심 여부에 관해 질문하고 답변을 받아 기호 데이터를 획득하는 방법

  • 암묵적 피드백은 사용자가 아이템을 구입하거나 찜으로 등록하고 열람하는 등 서비스 내 사용자의 행동 이력으로 부터 아이템에 대한 관심을 추정해 기호 데이터로 간주하는 방법

  • 수집한 기호 데이터 등에 기반해 사용자가 해당 아이템의 선호도 정도를 정량적으로 나타낸 것을 평가값(rating)이라고 한다.

  • 그 평가값을 성분으로 하는 사용자 x 아이템 행렬을 평가값 행렬 (rating matrix)라고 한다.

  • 전형적인 추천 시스템 문제 설정에서는 평가값 행렬이 주어진 상태에서 대상 사용자의 특정 아이템에 대한 미지의 평갓값ㅇ르 예측해 계산한다.

아이템A아이템B아이템C아이템D아이템E아이템F
사용자1-344--
사용자2-2---3
사용자33--5--
사용자4---4--
사용자52-12--
  • 위의 표에서 평가값은 1부터 5까지이며, 숫자가 클 수록 좋은 평가라고 가정
  • 예를 들어 사용자 1의 아이템 c에 대한 평가값은 4, 아이템 B에 대한 평가값은 3이다.
  • 사용자 1은 아이템B 보다 아이템 C를 선호하는 것을 알 수 있음

모델 기반 방법 알고리즘 개요

  • 협조 필터링 중에서도 모델 기반 방법은 이미 알고 있는 데이터의 규칙성을 학습한 모델을 미리 만들어둠으로써 모르는 아이템의 평갓값을 예측하여 추천하는 방법
  • 클러스터링을 사용하는 모델, 회귀 문제 및 분류 문제로 평가값을 직접 예측하는 모델, 토픽 모델을 사용한 모델, 행렬 분해를 사용한 모델등 다양한 모델이 존재

메모리 기반 방법과 모델 기반 방법의 협조 필터링 비교

  • '추천에 걸리는 시간' 관점 : 메모리 기반 방법에서는 추천 시 매번 모든 데이터에서 비슷한 사용자나 아이템을 찾은 뒤 예측하므로 시간이 걸린다. 모델 기반 방법은 데이터의 규칙성을 바탕으로 모델을 미리 만들어두고 만들어진 모델만 사용하여 예측하기에 곧바로 추천을 수행할 수 있어 시간이 걸리지 않는다
  • '운용성' : 메모리 기반 방법은 사용자나 아이템 데이터가 변경돼도 추천할 때마다 모든 데이터를 사용하므로 항상 최신 데이터를 반영해 추천할 수 있다. 모델 기반 방법에서 사용자나 아이템 데이터가 변경되고 그 변경을 반영해 추천하려면 모델을 새로 만들어야 하므로 모델 업데이트 시점이나 재학습에 걸리는 계산 비용 등을 고려해야 하기 때문에 운용이 비교적 어렵다고 할 수 있다.

내용 기반 필터링과 협조 필터링 비교

다양성 향상

  • 추천 결과의 다양성을 높이려는 경우 내용 기반 필터링보다 협조 필터링의 효과가 좋다고 말할 수 있다.

  • 협조 필터링에서는 설령 추천받은 사용자 자신이 모르더라도 서비스 내의 다른 사용자가 알고 평가하면 그 정보를 기반으로 추천할 수 있다.

  • 예를 들어 추천을 받는 사용자가 읽어본 적 없는 장르의 책이나 모르는 신인 작가의 책이라도 추천 대상이 될 수 있다.

  • 내용 기반 필터링에서 추천받을 사용자의 사용자 프로필은 해당 사용자가 모르는 작가나 장르 정보를 반영할 수 없다

  • 미지의 아이템이므로 서비스 내 과거의 기호 정보에도 없으며 직접 기호를 지정하는 것도 불가능 하기 때문

  • 추천받을 사용자가 모르는 정보를 아이템 특징으로 가진 아이템과 사용자 프로필의 유사도는 높아지기 어려우며 추천 역시 어려워진다.

  • 추천 받을 사용자가 모르는 정보를 사용해 추천할 수 있다는 점 때문에 내용 기반 필터링보다 협조 필터링 쪽이 추천 결과의 다양성을 높이기 쉽다

도메인 지식 취급

  • 협조 필터링과 내용 기반 필터링을 비용 측면에서 비교해볼 때, 서비스 운영자가 추천 시스템을 구축할 때 책의 장르나 출판사, 사용자 성별, 나이와 같은 서비스 내 아이템이나 사용자 고유의 지식 및 콘텍스트라는 도메인 지식을 적절하게 다루고 관리하는 데 드는 비용을 비교해 보면 협조 필터링 쪽의 비용이 낮다고 할 수 있다.

  • 협조 필터링은 추천 받은 사용자와 과거의 기호 데이터에 기반해 비슷하다고 판단되 사용자가 선호하는 아이템 정보를 기반으로 추천하므로 아이템 자체에 관한 정보나 사용자 자체의 속성 정보 등은 기본적으로 필요하지 않음

  • 내용 기반 필터링은 아이템 특징이나 사용자 프로필 작성 시 도메인 지식을 적절하게 사용해야 좋은 추천을 할 수 있다.

  • 내용 기반 필터링으로 도메인 지식 없이 추천하게 되면 실제 관심을 가진 아이템을 선택하기 어렵다

  • 적절하게 도메인 지식을 사용해 가급적 사용자가 선호할 만한 아이템을 추천하는 것이 바람직하지만 다양한 도메인 지식을 관리하는 데이터 베이스를 유지 및 관리하는 데는 비용이 많이 든다.

  • 해당 도메인 지식을 잘 다뤄야 좋은 아이템을 추천할 수 있다는 것 자체에도 큰 비용이 필요

콜드 스타트 문제에 대한 대응

  • 콜드 스타트 문제는 서비스에 사용자나 아이템에 관한 정보가 적은 경우 특히 신규 사용자나 신규 아이템에 관해 적절한 것을 추천하기 어려운 문제를 가리킨다

  • 콜드 스타트 문제를 대응하는 데는 내용 기반 필터링이 바람직한 설징을 갖고 있다고 할 수 있다.

  • 사용자의 과거 기호 데이터가 없으면 추천할 수 없는 협조 필터링에서 콜드 스타트 문제는 심각한 영향을 미친다.

  • 서비스에 이제 막 등록한 신규 사용자는 과거 행동 이력 등의 정보가 없기 때문에 선호도가 비슷한 사용자를 찾기 어렵다

  • 내용 기반 필터링에서는 아이템 특징이나 사용자 프로필만 얻을 수 있다면 추천이 가능하다.

  • 신규 사용자 및 아이템 또한 특징만 파악 한다면 추천을 할 수 있음

  • 하지만 충분한 정보를 얻는 것이 힘들기 때문에 콜드 스타트 문제에 완벽하게 대응하는 것은 어렵다

  • 협조 필터링보다는 내용 기반 필터링 쪽이 콜드 스타트 문제에 대응하기 쉽지만 내용 기반 필터링을 사용하더라도 충분히 대응하는 것은 어렵다

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

  • 시스템 사용자 수가 적은 경우에도 적절한 추천을 수행할 수 있는가 하는 관점에서 비교

  • 신규 서비스 등에서는 중요한 관점, 이런 경우에는 내용 기반 필터링 쪽이 바람직한 성질을 갖는다고 할 수 있다

  • 서비스 내 다른 사용자의 행동 이력을 기반으로 추천하는 협조 필터링에서는 사용자 수가 적을 경우 비슷한 사용자를 충분히 얻거나 비슷한 사용자의 행동 이력으로부터 추천 대상 사용자가 관심을 가질만한 아이템을 추천하기 어려움

  • 내용 기반 필터링에서는 아이템의 특징이나 사용자 프로필만 획득하면 추천할 수 있기 때문에 사용자 수는 영향을 미치지 않는다.

커버리지 향상

  • 커버리지는 서비스에 있는 모든 아이템 중 추천 시스템으로 사용자에게 추천할 수 있는 아이템의 비율을 나타낸다

  • 커버리지가 낮은 상황이란 일부 아이템에 치우쳐 추천되는 상황이며 서비스를 사용하는 사용자에게는 물론 제공자에게도 좋은 상태라고 할 수 없다

  • 이 관점에서는 내용 기반 필터링 쪽이 바람직하다

  • 시스템 내에 있는 다른 사용자의 행동 이력을 기반으로 추천하는 협조 필터링으로는 추천을 받을 사용자와 비슷한 사용자가 아무도 시도하지 않은, 평가하지 않은 아이템은 추천할 수 없다

아이템 특징 활용

  • 아이템 특징 활용 측면에서도 내용 기반 필터링이 바람직한 성질을 가지고 있다

  • 도메인 지식을 사용하지 않고 사용자의 과거 기호 데이터에만 기초해 추천하는 협조 필터링에서는 기본적으로 옷의 색상 등과 같은 아이템 속성 정보를 고려할 수 없다.

  • 같은 상품의 크기나 색상 차이 또는 목적이 같은 경쟁 상품 등도 전혀 다른 아이템으로 간주하게 된다

  • 내용 기반 필터링에서는 아이템의 다양한 특징을 명시적으로 고려해 추천하므로 색만 다른 같은 옷은 동시에 추천하지 않으며 사용자가 선호하는 색상을 알게 되면 같은 색의 다른 옷을 유연하게 추천할 수 있다

  • 아이템의 특징을 활용한다는 점에서 협조 필터링보다 내용 기반 필터링 쪽이 제대로 추천한다고 할 수 있다

예측 정확도

  • 일반적으로 내용 깁나 필터링 보다 협조 필터링 쪽이 높은 정확도로 예측한다
  • 사용자 프로필이나 아이템 특징에 기반해 추천하는 내용 기반 필터링보다 다양한 사용자의 행동 이력을 추천 결과에 반영할 수 있는 협조 필터링 쪽이 더 복잡한 사용자의 기호를 고려할 수 있기 때문

0개의 댓글