추천시스템 4장 : 콘텐츠 기반 추천 시스템

태환·2023년 8월 7일
0

Recommendation System

목록 보기
4/12
post-thumbnail

📌 개요

콘텐츠 기반 추천 시스템

사용자가 과거에 좋아했던 것과 유사한 아이템을 사용자에게 추천하려고 시도한다.
 * 이 유사도는 사용자가 좋아하는 아이템의 속성을 기반으로 한다.
 * 주로 대상 사용자의 평점과 사용자가 좋아하는 아이템의 속성에 중점을 둔다.

콘텐츠 기반 추천 시스템 데이터 원본

1. 콘텐츠 중심 속성의 다양한 아이템에 대한 설명
2. 다양한 아이템에 대한 사용자 피드백에서 생성될 사용자 프로파일
 * 명시적 피드백은 사용자 평점에 해당할 수 있다.
 * 암시적 피드백은 사용자 행동에 해당할 수 있다.

콘텐츠 기반 추천 시스템 장점

1. 일반적으로 다른 사용자의 평점은 콘텐츠 기반 추천 알고리듬에서 아무런 역할을 하지 않기에 다른 사용자 수가 적을 때 발생하는 콜드 스타트 문제를 부분적으로 완화한다.
2. 새 아이템에서 속성을 추출하고 이를 사용해 예측할 수 있기 때문에 이러한 환경에서도 추천을 사용할 수 있다.

콘텐츠 기반 추천 시스템 단점

다른 사용자의 평점을 사용하지 않기에 추천의 다양성과 참신성이 줄어든다.

콘텐츠 기반 추천 시스템과 지식 기반 추천 시스템

지식 기반 추천 시스템은 사용자 요구 사항에 맞는 아이템을 찾기 위해 상호작용을 이용하는 반면,
콘텐츠 기반 추천 시스템은 일반적으로 과거 평가를 학습하는 접근 방식을 사용한다.

📌 콘텐츠 기반 시스템의 기본 구성 요소

  • 콘텐츠 기반 시스템의 주요 구성 요소는 전처리 부분(오프라인), 학습 부분 및 온라인 예측 부분(온라인)을 포함한다.
1. 전처리 및 피처 추출 : 다양한 소스에서 피처를 추출해 키워드 기반 벡터 공간 표현으로 변환한다.
2. 사용자 프로파일의 콘텐츠 기반 학습 : 구매 또는 평가한 아이템의 과거 이력을 기반으로 사용자별 모델을 구성해 아이템에 대한 사용자의 관심을 예측한다.
3. 필터링 및 추천 : 학습된 모델을 사용해 특정 사용자의 아이템에 대한 추천을 만든다.

📌 전처리 및 피처 추출

  • 모든 콘텐츠 기반 모델의 첫 번째 단계는 아이템 간의 차이를 분간할 수 있는 피처를 추출하는 것이다.
  • 차이를 분간할 수 있는 피처는 사용자의 관심 분야를 예측하는 데 큰 도움을 준다.

📖 피처 추출

다양한 아이템에 대한 설명을 추출한다.
  • 가장 일반적인 방법은 기본 데이터에서 키워드를 추출하는 것이다.
  • 분류 과정에서 쉽게 사용하기 위해 다양한 필드에 대한 가중치를 적절하게 부여할 필요가 있으며, 피처 선택텍스트의 경우 속성은 관련성에 따라 포함되거나 포함되지 않지만 피처 가중치의 경우 속성은 중요도에 따라 차별적인 가중치를 부여한다.

📖 피처 표현 및 정제

  • 피처 추출 단계에서 구조화 되지 않은 설명에서 키워드 모음이 결정되며,
    이러한 표현은 처리하기에 적합한 형식으로 정리하는 정제 과정이 필요하다.
1. 불용어 제거 : 통상 관사, 전치사, 접속사 및 대명사를 불용어로 취급해 제거한다.
2. 형태소 분석 : 동일한 단어의 유사어를 통합한다.
3. 구문 추출 : 문서에서 함께 자주 발생하는 단어를 검색한다.
  • 위의 단계를 실행한 후 키워드를 벡터 공간 표현으로 변환한다.
  • idf 혹은 tf-idf의 개념을 사용해 가치 없는 단어에 낮은 가중치를 할당하는 작업도 수행된다.

📖 사용자가 좋아하는 것과 싫어하는 것 수집

  • 좋아하는 것과 싫어하는 것에 대한 데이터는 다음 형식 중 하나를 택할 수 있다.
1. 평점 : 사용자는 아이템에 대한 선호도를 나타내는 평점을 지정한다.
2. 암시적 피드백 : 아이템 구매 또는 검색과 같은 사용자 행동을 나타낸다.
3. 텍스트 의견 : 사용자는 텍스트로 된 설명 형식으로 의견을 표현할 수 있다.
4. 사례 : 사용자는 관심 있는 아이템의 예를 명시할 수 있다.
  • 이 평점은 학습에서 사용하는 클래스 레이블 또는 종속 변수를 추출한 것으로 볼 수 있다.

📖 지도 피처 선택과 가중치 설정

  • 피처 선택 및 가중치 설정의 목표는 가장 유익한 단어만 벡터 공간 표현에 남도록 하는 것이다.
  • 기본 아이디어는 노이즈가 많은 단어는 과적합되는 결과를 만드는 경우가 많기 때문에 우선적으로 제거하는 것이다.

문서 표현에 피처 정보를 통합하는 두가지 측면

1. 피처 선택으로 단어 제거
 Ex> 불용어 제거
2. 단어에 더 큰 중요성을 부여하는 피처 가중치 설정
 Ex> 역문서빈도 사용
  • 불용어 제거와 역문서빈도 사용은 사용자의 피드백이 중요하지 않은 비지도 피처 선택 및 가중치 설정 방법이다.

피처 정보의 평가를 위해 사용자 평점을 고려한 피처 선택을 위한 지도 방법

  1. 지니 계수
  • 단어 w의 지니 인덱스는 다음과 같이 정의한다.
    • 지니(w) 값은 항상 (0, 1 - 1/t) 범위에 있으며 작은 값은 더 큰 식별력을 의미한다.
  1. 엔트로피
  • 단어 w의 엔트로피는 다음과 같이 정의한다.
    • 엔트로피(w)의 값은 항상 (0, 1) 범위에 있으며 작은 값은 차별성을 더 잘 보여준다.
  1. 카이제곱 통계
  • 카이제곱 통계는 단어와 클래스 사이의 동시 발생을 분할표로 처리해 계산할 수 있다.
  • 카이제곱 통계량은 다음과 같이 계산한다.
    • 관찰된 값이 예상 값과 정확히 일치하면 해당 용어가 현재 아이템과 관련이 없다는 것을 의미한다.
  1. 정규화된 편차
  • 앞서 말한 대책의 대부분은 평점의 상대벅 순서 정보를 잃어버리는 문제가 있으며, 평점이 많이 세분화됐다면 정규화된 편차를 이용하는 것이 적절한 방법이다.
  • 단어 w의 정규화된 편차는 다음과 같이 정의한다.
    • Dev(w)의 값이 클수록 더 차별적인 단어를 나타낸다.
  1. 피처 가중치 설정
  • 지도 측정은 다른 단어에 대해 다른 중요성을 부여하기 위해 벡터 공간 표현에 가중치를 설정하는 데 사용할 수 있다.
  • 피처 가중치 설정에 대한 가장 간단한 방법은 피처 선택 측정 값을 가져와서 가중치를 유도하는 것이다.
    • 예를 들어 지니 계수 또는 엔트로피의 역함수를 사용할 수 있다.
    • 대부분 가중 프로세스의 민감도를 제어하기 위해 선택 기준에 휴리스틱 함수를 추가로 적용할 수 있으며 α는 1보다 큰 매개변수인 단어 w에 대해 다음 가중 함수 g(w)를 고려한다.
    • 결과 가중치 g(w)는 항상 (α-1, α) 범위에 있다.
    • 벡터 공간 표현에서 각 단어 w의 가중치는 g(w)로 곱한다.

📌 사용자 프로파일 학습 및 필터링

  • 사용자 프로파일 학습은 분류 및 회귀 모델링 문제와 밀접하게 관련 있다.
  • 평점을 개별 값으로 처리하면 문제는 텍스트 분류와 유사한 반면,
    평점을 수치 값으로 취급하면 문제는 회귀 모델링과 유사하다.

가정

  • 각각의 경우에 특정 사용자가 레이블을 지정하는 학습 문서 세트 DL이 있다고 가정한다.
  • DL의 i번째 문서에 ci로 표시된 평가가 있다고 가정한다.
  • DU의 문서는 활성 사용자에게 추천할 후보 문서에 해당한다.

📖 최근접 이웃 분류

  • 첫 번째 단계는 최근접 이웃 분류에서 사용하는 유사함수를 정의하는 것이며 가장 일반적으로 사용하는 것은 코사인 함수이다.
  • 코사인 측정 값은 다음과 같이 정규화된 빈도를 사용해 정의한다.
    • 코사인 유사도는 원본 문서의 다양한 길이에 맞게 조정할 수 있기 때문에 텍스트 도메인에서 자주 사용한다.
    • DU의 각 문서에 대해 DL의 k-최근접 이웃은 코사인 유사도 함수를 사용해 결정한다.
    • 유사도 값으로 각 평점에 가중치를 부여할 수 있다.
    • DU의 문서는 평가의 예상 값을 기준으로 순위가 매겨지고 최상위 아이템을 사용자에게 추천한다.
  • 이 접근법을 사용하는 데 있어 주요 도전은 높은 계산 복잡도이다.
    • 접근 방식을 빠르게 만드는 한 가지 방법은 클러스터링을 사용해 DL의 학습 문서 수를 줄이는 것이다.

📖 사례 기반 추천 시스템과의 연결

  • 사례 기반 추천 시스템은 대화식으로 선택하기 때문에 과거 평점보다는 사용자 요구 사항을 보는 것이 더 적절하다.

📖 베이즈 분류 모델

  • 텍스트 분류의 맥락에서 베이즈 모델을 살펴본다.
  • 베르누이 모델에서 단어의 빈도는 무시되며 단어의 존재 여부만 고려한다.
    따라서 문서는 0과 1의 값만을 포함하는 d개 단어의 이진 벡터로 취급한다.
  • 표현식은 베이즈 규칙을 사용해 평가할 수 있으며 다음과 같이 나이브 가정을 적용해 평가할 수 있다.
    • 아이템의 순위가 필요한 경우 비례 상수는 더 이상 무관하지 않다.
    • 위의 관계에서 비례상수가 K로 표시된다고 가정한다.
    • 비례 상수 K는 c(X)의 모든 가능한 확률의 합이 항상 1이여야 한다는 사실을 사용해 얻을 수 있으며 다음과 같이 볼 수 있다.
    • 이 접근법은 사용자가 DU에서 각 가능한 아이템을 좋아할 확률을 결정하는 데 사용한다.
    • 그 다음 DU의 아이템이 이 확률에 따라 순위가 매겨지고 사용자에게 표시된다.

📖 규칙 기반 분류 모델

  • 협업 필터링에서 규칙의 선행은 아이템의 평가에 해당하는 반면,
    콘텐츠 기반 방법에서는 규칙의 선행 아이템이 아이템 설명에서 특정 키워드의 존재와 일치한다.
  • 규칙은 다음과 같은 형식이다.

규칙 기반 분류 접근 방식

1. (학습 단계) 학습 데이터 세트 DL에서 원하는 수준의 최소 지지도 및 신뢰도 수준에서 사용자 프로파일의 모든 관련 규칙을 결정한다.
2. (테스트 단계) DU의 각 아이템 설명에 대해서 실행된 규칙과 평균 평점을 결정한 뒤 이 평균 평점을 기준으로 DU의 아이템 순위를 매긴다.
  • 규칙 기반 시스템은 높은 수준으로 해석할 수 있다는 장점이 있다.
  • 추천 아이템의 경우 이전에 실행된 규칙의 키워드를 사용해 대상 사용자에게 왜 특정 아이템이 마음에 들었는지에 대한 추천을 제공할 수 있다.

📖 회귀 기반 모델

  • 회귀 기반 모델은 바이너리 평가, 구간 기반 평가 또는 수치 평가와 같은 다양한 유형의 평가에 사용할 수 있다는 장점이 있다.
  • 선형 회귀의 기본 개념은 평가를 단어 빈도의 선형함수로 모델링할 수 있다고 가정하는 것이다.
  • W를 선형함수의 각 단어의 계수를 나타내는 d-차원 행 벡터로 지정하면 단어 빈도가 평가와 관련된다.
  • 선형 회귀 모델은 학습 행렬 DL의 단어 빈도가 다음과 같이 평가 벡터와 관련돼 있다고 가정한다.
    • W를 선형함수의 각 단어의 계수를 나타내는 d-차원 행 벡터로 지정하면 단어 빈도가 평가와 관련된다.
  • 예측 품질을 최대화하려면 벡터 제곱의 노름을 최소화해야 하며 과적합을 줄이기 위해 정규화항을 목적 함수에 추가할 수 있으며 다음과 같이 나타낼 수 있다.
  • 이 문제는 가중치 벡터에 대한 목적함수의 기울기를 0으로 설정해 해결할 수 있으며 결과는 다음과 같다.
  • 다음과 같이 가중치 벡터를 직접 풀 수 있다.

다양한 회귀 모델과 목표 변수의 성격간의 매핑

📌 콘텐츠 기반 대 협업 필터링 추천

컨텐츠 기반 방법의 장점

1. 콘텐츠 기반 시스템은 새로운 사용자에 대해서만 콜드 스타트 문제가 있다.
2. 콘텐츠 기반 방법은 아이템의 피처 측면에서 설명을 제공한다.
3. 상대적으로 적은 엔지니어링 노력으로 쉽게 사용할 수 있다.

컨텐츠 기반 방법의 단점

1. 사용자가 지금까지 본 것과 유사한 아이템을 찾는 경향이 있다.
2. 신규 사용자를 위해 과적합 문제를 해결하는 데 도움이 되지 않는다.
profile
연세대학교 컴퓨터과학과 석사 과정

0개의 댓글