본문 바로가기
📂 기타/◾ ALGORITHM

추천 시스템 알고리즘 정리(Collaborative Filtering, Contents-based Filtering, Hybrid and Ensemble-based Filtering)

by 이 정규 2023. 7. 15.
728x90
반응형


추천 시스템 알고리즘 개요

인터넷 발전에 따른 아이템 구매 및 선호에 대한 사용자의 피드백을 얻기 쉬워졌고, 이런 피드백을 바탕으로 사용자-아이템 간 데이터를 활용하여 아이템을 추천하는게 가능해졌다. 분야를 막론하고 추천 시스템 알고리즘의 활용 사례가 많이 보이고 있다. 넷플릭스(Netflix), 링크드인(Linkedin), 아마존(Amazon) 등 거대 기업들도 앞다퉈서 추천 시스템 알고리즘을 앙상블하거나 새로이 만들어낸 모델들을 이용한 서비스를 제공하고 있다. 

나는 학습 플랫폼에서 사용자에게 컨텐츠를 추천해주는 모델을 개발하게 됐고, 어떤 알고리즘을 이용해야 할 지 고민중이다. 그래서 추천 시스템 알고리즘에 대해서 간략히 알아보고자 포스팅하게 됐다.


협업 필터링(Collaborative Filtering)

협업 필터링은 사용자 행동, 활동 또는 선호도에 대한 많은 정보를 분석하고 모으고 다른 사용자와의 비슷함에 기초를 두고 사용자들이 무엇을 좋아할 지를 예측하는 것에 기초를 두고 있다. 협업 필터링 접근법의 한 중요한 장점은 기계 분석 컨텐츠에 의존하고 있지 않다는 것이다. 그래서 정확하게 아이템 그 자체를 이해하지 않고도 영화와 같은 복잡한 아이템들을 추천 할 수 있다. 많은 알고리즘은 추천 시스템에서 사용자나 아이템의 비슷함(similarity)을 측정하는 데 사용되고 있다. 예를 들어, KNN과 Pearson correlation이 있다.

  •  KNN

분류할 때, 분류 대상과 가까운 k개를 뽑아 그 중 가장 많은 비율을 차지 한 쪽으로 분류

  • Pearson correlation

연속형 두 변수간의 선형관계(관련성)를 구하기 위해 사용된다. -1에서 +1사이의 범위값


협업 필터링은 과거에 동의한 사람들이 미래에도 동의하고 그들이 그들이 과거에 좋아했던 것들을 좋아할 것이라는 가정에 기초를 두고 있다. 사용자의 행동으로부터 모델을 만들 때, 특징(차이점)은 종종 Data Collection의 뚜렷하기도하고 암시적이도한 형태 사이에서 만들어진다.

  • Explicit Data Collection의 예

사용자에게 아이템을 평가하게 하기, 검색하게 하기, 가장 선호하는 것과 가장 덜 선호하는 것을 순위매기게 하기 등

  •  Implicit Data Collection의 예

사용자가 본 아이템을 관찰하고 분석하기, 사용자가 구매한 아이템을 기록하기, 사용자의 SNS를 분석하고 비슷한 likes와 dislikes를 찾아내기 이 추천 시스템은 모아진 데이터를 다른 사람들로부터 모아진 비슷하고 안비슷한 데이터와 비교하고, 사용자의 추천된 아이템 목록을 계산한다. Linkedin, facebook과 같은 SNS는 협업 필터링을 친구 추천 등에 사용한다.


컨텐츠 기반 필터링(Contents-based Filtering)

컨텐츠 기반 추천 시스템은 아이템에 대한 설명(description)과 사용자 선호에 대한 프로필을 기반으로 한다.

컨텐츠 기반 추천 시스템에서, 키워드는 아이템을 설명(describe)하는데 사용되고 사용자의 프로필은 이 사용자가 좋아하는 류(type)의 아이템을 가리키게(indicate) 만들어진다. 다른 말로하면, 이런 알고리즘들은 과거에 사용자가 좋아했던 것들(또는 현재 보고 있는 것들)과 비슷한 아이템을 추천하려고 한다. 구체적으로 말하면, 다양한 후보 아이템은 사용자에 의해 현재 평가되는(rated) 아이템과 비교되고 가장 잘 맞는 아이템이 추천된다. 이 접근법은 information retrieval과 information filtering에 뿌리를 두고 있다.

  • Information retrieval

집합적 정보로부터 원하는 내용이나 관련되는 내용을 가져오는 것

  •  Information filtering

필요 없는 정보를 제거하는 것

  •  Tf-idf: Term frequency-inverse document frequency

아이템의 특징을 끌어내기 위해, tf-idf 알고리즘이 많이 사용된다.
여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다.

TF(term-frequency 단어 빈도)가 높을 수록 문서에서 중요하다고 생각될 수도 있지만 단순히 흔하게 등장하는 것일 수도 있음. 이를 DF(document frequency 문서 빈도)라고 하며, 이 값의 역수를 IDF(inverse)라고 한다. TF-IDF는 TF와 IDF를 곲한 값이다.


사용자의 프로필을 만들기 위해서, 그 시스템은 대게 두가지 정보에 집중한다:

1.    사용자의 선호 모델

2.   추천시스템과 사용자의 상호작용 정보(history)

기본적으로 이런 방법들은 시스템 안에서 아이템에 특성을 부여하면서 아이템 프로필(이산적 특징와 속성)을 사용한다. 그 시스템은 아이템 특성의 가중치 벡터를 기반으로 한 사용자의 컨텐츠 기반 프로필을 만든다. 가중치(Weights)는 사용자에게 각각의 특징의 중요도를 나타내고 개별적으로 점수 매겨진(rated) 컨텐츠 벡터들로부터 다양한 방법으로 계산될 수 있다. 사용자가 좋아할것 같은 확률(Probability)을 계산하기 위해 다른 복잡한 방법들해 베이지안 분류, 클러스터 분석, 결정 트리 그리고 인공 신경망 네트워크와 같은 머신러닝 기술을 사용하는 반면에, 간단한 접근법들은 그 점수 매겨진 아이템 벡터의 평균 값을 사용한다.

보통 ‘좋아요’와 ‘싫어요’와 같은 형태로 사용자로부터 직접적인 피드백은 특정한 속성의 중요도에 대한더 높거나 낮은 가중치를 할당하는데 사용될 수 있다.

컨텐츠 기반 필터링의 중요한 문제점은, 한 컨텐츠 자원에 관련된 사용자들 행동으로부터 사용자 선호도를 배울 수 있고 다른 컨텐츠 종류를 넘어서 그것들을 사용할 수 있을지 아닌지이다. 그 시스템이 사용자가 이미 사용한 것과 같은 종류의 컨텐츠를 추천하는 것에 한정돼 있을 때, 다른 서비스의 다른 종류의 컨텐츠가 추천될 수 있을 때보다 추천 시스템의 가치는 상당히 낮다. 예를 들어, 뉴스 검색에 기반한 추천 뉴스 기사는 유용하지만, 뉴스 검색에 기반해 추천될 수 있는 다른 서비스의 음악, 비디오, 제품 토론에서 더 유용하다.

 


하이브리드 앙상블 기반 필터링(Hybrid and Ensemble-based Filtering)

최근 연구는 협업 필터링 과 컨텐츠 기반 필터링을 섞은 하이브리드 접근법이 몇몇의 상황에서 더 효과적일 수 있다고 설명한다. 하이브리드 접근법은 여러 가지 방법으로 사용될 수 있다.

한 접근법을 다른 접근법에 더하거나, 하나의 모델로 만들거나. 몇몇의 연구들은 두가지 접근법을 하이브리드와 경험에 기인해서 비교하고 하이브리드가 두 접근법들보다 훨씬 더 정확한 추천을 제공한다고 말한다. 이런 방법들은 cold-start(정보가 충분히 없어 필요한 정보를 얻지 못하는 상황)와 희소성(sparsity) 문제와 같은 추천시스템에서 공통적인 문제의 몇몇을 극복할 수 있다고 한다.

Netflix는 hybrid 추천 시스템의 좋은 예이다. 이 웹사이트는 사용자가 높게 평가했던(content-based)영화와 비슷한 특성을 띄는 영화를 추천 하고, 비슷한 사용자(collaborate)들의 검색 습관과 시청을 비교함으로서 추천을 한다.


다양한 기술들(collaborative, content-based, knowledge-based, demographic)은 추천시스템의 기초로 제안되어 왔다. Hybrid 추천 시스템이란 용어는 여기서 결과를 만들어 내기 위해 다중의 추천 기술을 함께 섞는 어떠한 추천 시스템을 설명하는데 사용된다. 같은 유형의 몇몇의 다른 기술들이 함께 되지(be hybridzed) 못하는지에 대한 이유는 없다(즉, 아무렇게나 섞어 사용해도 된다). 예를 들어, 두개의 다른 content-based 추천은 함께 효과를 낼 수 있고 많은 프로젝트들이 이런 종류의 조합에 투자해 왔다.

Collaborative filtering (협업 필터링) 이 기술은 사용자들의 행동이나 취향을 기반으로 추천을 제공한다. 예를 들어, 사용자들이 제품을 구매한 이력이나 평가한 평점을 분석하여 유사한 취향을 가진 다른 사용자들이 구매한 항목을 추천하는 방식이다. 그러나 이 방식은 새로운 사용자나 아이템에 대한 정보가 없는 경우에는 추천을 제공하기 어려운 cold-start 문제를 가지고 있다.
Content-based filtering (콘텐츠 기반 필터링) 이 기술은 항목 자체의 특성과 사용자의 취향을 고려하여 추천을 제공한다. 예를 들어, 영화의 장르, 배우, 감독 등의 정보를 기반으로 사용자의 선호도와 유사한 영화를 추천한다. 이 방식은 사용자의 개인적인 취향을 반영할 수 있지만, 항목의 콘텐츠 정보를 제대로 추출하고 분석하기 위해 추가적인 자원과 노력이 필요하다.
Knowledge-based filtering (지식 기반 필터링) 이 기술은 도메인 지식과 규칙을 활용하여 추천을 제공한다. 예를 들어, 사용자의 프로파일, 선호도, 제품에 대한 전문 지식 등을 활용하여 추천한다. 이 방식은 사용자에게 맞춤형 추천을 제공할 수 있지만, 지식 엔지니어링의 병목 현상과 관련된 문제가 있다. 즉, 지식 엔지니어링을 위한 도메인 전문가들의 참여와 시간이 필요하다.
Demographic filtering (인구 통계 기반 필터링)  기술은 사용자의 인구 통계 정보를 기반으로 추천을 제공한다. 예를 들어, 연령, 성별, 지역 등의 정보를 활용하여 비슷한 인구 통계 특성을 가진 사용자들에게 추천을 제공한다. 그러나  방식은 개인의 선호도를 충분히 반영하지 못할  있다.

 

728x90
반응형

댓글