Ex) A라는 사람이 <터미네이터>라는 영화에 높은 평점을 줬고 다른 사용자의 평점에 대해서는 알 수 없다면, 이때는 A라는 사람에게 <에이리언>와 <프레데터>를 추천할 수 있다.
콘텐츠 기반 접근방식은 아이템과 사용자 선호도 또는 아이템과 아이템간 유사성을 직접 분석하여 이를 바탕으로 고객에게 아이템을 추천해주는 방식이다.
1) 과거 구매 이력 또는 사용자가 아이템에 대해 평가한 점수에 의거하여 선호 아이템을 파악한다.
2) 사용자의 선호 아이템과 분류된 아이템 간의 유사도를 측정한다.
3) 유사도가 가장 높게 나타난 것이 '카테고리 5'라고 할 때, 이에 해당되는 아이템을 고객에게 추천해준다.
📝 콘텐츠 기반 접근방식의 특징
- 새로운 아이템
✅ 새로운 아이템에 대한 평가점수가 없더라도 아이템 간의 features를 파악하여 카테고리에 할당시킨다.
✅ 사용자가 선호하는 아이템 features와 유사도가 높은 아이템을 사용자에게 추천하기 때문에 First rater 문제가 발생하지 않는다.
📣 First rater이란 누군가가 점수를 주기 전까지 해당 아이템을 추천 리스트에 포함할 수 없는 문제를 의미한다.
- 과도한 특수화
✅ 사용자의 과거 구매 이력을 바탕으로 제품을 추천해주기 때문에 추천 상품의 다양성을 보장할 수 없다.
✅ 유전자 알고리즘을 적용하여 무작위 요소를 추가 또는 돌연변이 방식을 사용하는 기법이 제안되었다.
- 독립적 정보 활용
✅ 추천하고자 하는 사용자의 독립적인 정보만을 필요하므로, 다른 사용자의 정보가 부족한 경우에도 유용하게 사용할 수 있는 추천 기법이다.
✅ 과거 구매이력이 부족할 경우 추천의 성능을 보장할 수 없고, 구매이력과 프로파일 정보가 모두 존재 하지 않는다면 콘텐츠 기반 추천시스템을 구현할 수 없다는 문제점이 있다.
콘텐츠 중심 속성의 다양한 아이템에 대한 설명이다.
다양한 아이템에 대한 사용자 피드백에서 생성된 사용자 프로파일이다.
사용자 피드백은 명시적이거나 암시적일 수도 있는데, 명시적 피드백은 사용자 평점에 해당하고, 암시적 피드백은 사용자 행동에 해당한다.
평점은 협업 시스템과 유사한 방식으로 수집한다.
사용자 프로파일은 다양한 아이템의 속성을 사용자 관심 분야(평점)와 연관시킨다.
평점 데이터가 충부하지 않은 새로운 아이템에 대한 추천이 가능하다.
(활성 사용자들이 유사한 속성을 가진 다른 아이템들을 평가했을 수도 있기 때문에)
새 아이템이거나 해당 아이템에 대한 평가가 거의 없는 경우에 유용하다.
사용자가 단 한 번도 특정 키워드가 있는 아이템을 이용한 적이 없다면 그런 아이템을 추천하지 않는다. 즉, 다양성이 줄어든다.
새로운 사용자에게 제안하는 추천은 효과적이지 않다.
사용자는 자신의 프로파일 정보에 관련 키워드를 명시할 수 있는데, 이 프로파일 정보는 추천을 제공할 때 물품의 상세 정보와 매칭할 수 있다.
콜드 스타트 시나리오에 적합하다
(정보가 없어 추천을 새로 시작하는 데 있어 곤란한 시나리오)
📣 콜스 스타트 문제?
: 사용자의 성향을 알기 위해 구매 이력과 같은 정보가 필요한데 이 정보가 없을 때 예측이 어려워지는 것을 콜드 스타트 문제라고 한다.
콘텐츠 분석
: 비정형 데이터로부터 유의미한 정보를 얻는 작업이다. 이때 feature extraction, vector representation 등의 작업을 수행해야한다.
유저 프로필 파악
: 유저가 선호하는 아이템과 취향을 파악하는 과정이다. 다양한 알고리즘을 통해 유저 데이터를 일반화한다.
유사 아이템 선택
: 가장 적절한 아이템을 매칭하는 과정이다. Cosine 유사도를 활용하여 유저의 기존 선택과 가장 관련 있는 아이템을 선정하는 과정이다.
1) 성능을 높일 수 있는 적절한 콘텐츠 사용
2) 콘텐츠의 내용을 분석하는 아이템 분석 알고리즘
1) 전처리 및 피처 추출
2) 사용자 프로파일의 콘텐츠 기반 학습
이전에 등록한 평점(명시적 피드백) 또는 사용자 활동(암시적 피드백)의 형태로 나타날 수 있는 사용자 피드백을 활용한다. 이와 함께 아이템 속성을 활용하여 학습 모델을 구축한다.
결과 모델은 사용자 관심(평점)을 아이템 속성과 관련시키기 때문에 사용자 프로파일이라고 한다.
3) 필터링 및 추천
📣 일반적으로 콘텐츠 기반 시스템은 거의 별개로 사용하지 않으며 다른 유형의 추천 시스템과 함께 사용한다.
불용어 제거
: 아이템의 자유 형식의 설명에서 추출한 텍스트의 대부분에는 'a','the'와 같이 아이템과 관련은 없지만 영어 어휘의 공통된 부분인 많은 단어가 포함된다. 보통 관사, 전치사, 접속사 및 대명사는 불용어로 취급되어 제거해준다.
형태소 분석
: 동일한 단어의 유사어를 통합한다. 예를 들어 'hoping'과 'hope'와 같은 단어는 공통 어근인 'hop'으로 통합한다. 물론 이와 같은 단어가 자체의 다른 의미를 가지므로 때로는 형태소 분석이 해로운 영향을 미칠 수 있다.
구문 추출
: 문서에서 함께 자주 발생하는 단어를 검색하는 것이다. 예를 들어, '핫도그'와 같은 문구는 구성 단어에 따라서 다른 것을 의미한다.
피처 선택 및 가중치 설정의 목표는 가장 유익한 단어만 벡터 공간 표현에 남토록 하는 것이다.
기본 아이디어는 노이즈가 많은 단어는 과적합되는 결과를 만드는 경우가 많기 때문에 우선적으로 제거하는 것이다. 따라서 피처 공간의 크기를 줄이는 것이 중요하다.
다음은 피처 선택에 관한 방법이다.
아이템은 Features의 집합으로 표현될 수 있고, 크게 정형 데이터와 비정형 데이터로 나눌 수 있다.
⏰ 정형 데이터
열과 행으로 표시되는 테이블 형식이고 데이터베이스의 정해진 규칙에 맞게 데이터를 들어간 데이터 중에 수치 만으로 의미 파악이 쉬운 데이터
아이템을 잘 표현할 수 있는 속성의 개수가 비교적 적고 아이템마다 각 속성에 해당하는 값이 모두 존재해야 한다.
기존의 K-Means같은 기계학습 알고리즘을 적용하여 비슷한 속성의 아이템으로 구성된 카테고리를 생성할 수 있다.
⏰ 비정형 데이터
비디오, 오디오, 이미지, 텍스트와 같이 구조화되어 있지 않는 데이터
텍스트 데이터에서 콘텐츠 기반 접근 방식은 크게 키워드 분석과 의미 분석으로 구분할 수 있다.
✅ 키워드 분석은 각 텍스트 아이템에서 키워드를 추출한 뒤, 아이템 간의 키워드를 분석하여 유사도를 계산하는 것이다.
하나의 단어가 다양한 의미를 가지는 경우 실제로 유사하지 않은 아이템이 추천될 수도 있다. 그리고 반대로 다양한 단어로 표현하지만 실제로는 같은 의미를 가지고 있는 경우에는 내용적으로 유사한 아이템일지라도 유사도가 낮으므로 추천 리스트에서 제외될 수 있다.
대표적인 키워드 추출 방법: TF-IDF
DTM내의 단어들에 대해, 각 단어의 중요도에 따라 가중치를 부여하여 표현하는 방식을 의미한다.
- 모든 문서에서 나타난 단어(불용어 등)는 중요도가 낮다 -> 낮은 idf
- 특정 문서에서만 자주 나타난 단어는 중요도가 높다 -> 높은 idf
- tf값에 idf라는 가중치를 곱해서 중요도에 따라 가중치를 부여하여 표현할 수 있다.
- 대표적인 유사도 측정척도: 코사인 유사도(Cosine SImilarity)
✅ 의미 분석은 단어의 단순 비교가 아닌 내용 파악을 목적으로 하기 때문에 보다 정확도가 높은 추천을 할 수 있다.
1) 사용자가 직접 흥미 분야에 대해 입력한 프로파일 정보를 이용한다.
관심분야를 체크 or 텍스트 형식으로 기재한다.
사용자의 선호 경향 변화, 아이템들의 중요도 판단 분야 등 다양한 이유로 추천 성능을 보장할 수 없다.
2) 사용자의 과거 구매이력 정보를 분석한다.
최근 혹은 자주 구입한 아이템을 통해 선호도를 파악한다.
나이브 베이즈모델, 의사결정나무, KNN 등과 같은 기계 학습을 이용하여 선호도를 정확하게 파악 후 추천의 성능을 향상시키고자 하는 다양한 연구가 제안되었다.
1) '#' 기호를 이용하는 표현에 대한 최근접 이웃 분류 모델은 협업 필터링을 위한 아이템 기반 이웃 모델과 대략 매핑된다.
2) 콘텐츠에 대한 베이즈 분류 모델은 협업 필터링을 위해 사용자별 베이즈 모델과 대략적으로 매핑된다.
3) 콘텐츠에 대한 규칙 기반 분류 모델은 협업 필터링을 위해 사용자별 규칙 기반 분류 모델에 대략적으로 매핑된다.
4) 콘텐츠에 대한 회귀 모델은 협업 필터링을 위한 사용자별 회귀 모델과 대략적으로 매핑된다.
적절한 콘텐츠 표현을 정의하고 기성 콘텐츠 기반 방법을 직접 사용함으로써 협업 필터링에 대한 많은 방법을 포착할 수 있다.
- 기초부터 실무까지 머신러닝 추천 시스템 교과서 pp.185-216 참고해서 내용 작성하였습니다.
- tistory https://wannabenice.tistory.com/44 참고해서 내용 작성하였습니다.
Content-Based는 사용자가 특정 아이템을 선호하는 경우, 그 아이템과 "비슷한" 콘텐츠를 가진 다른 아이템을 추천해주는 방식이다. 사실 굉장히 단순하지만, 요즘에는 자주 사용하지는 않는다. 최근접 이웃 분류 모델, 규칙 기반 방법, 베이즈 방법, 선형 모델과 같은 많은 분류 및 회귀 모델을 이러한 시스템에 사용한다. 특히 베이즈 방법은 다양한 유형의 콘텐츠를 처리할 수 있기 때문에 다양한 시나리오에서 큰 성공을 거두었다.
이는 신규 사용자와 관련해 콜드 스타트 문제를 처리할 수 없는 단점이 있지만, 새 아이템과 관련된 콜드 스타트 문제를 처리할 수 있다는 장점이 있다. 이 시스템은 사용자가 이전에 평가한 아이템의 내용을 기반으로 하므로 의외성을 주는 아이템이 추천될 확률은 상대적으로 낮다.
첫 추천 시스템 공부였다. 회귀분석과 베이지안 통계부터 텍스트데이터분석 개념까지 종합적으로 나왔다. 이전에 배운 내용들을 복기하면서 공부했지만 많이 어려웠다. 추천 시스템에서 이 부분이 제일 쉽다고들 하는데... 다른 추천 시스템 공부도 하기 전에 두렵고 떨린다. 콘텐츠 기반 추천시스템 논문도 읽고 리뷰를 함으로써 감을 잡아야겠다.