추천 시스템 세미나를 하게 되면서 추천 시스템이 무엇인지에 대해서는 아주 대충 파악은 가능했으나 영어 강의, 영어 논문으로 정확히 이해하지 못했고 전체적인 프로세스에 대해 놓치고 있다는 생각을 하게 되었다.
그 때, 이 논문을 읽게 되면서 추천 시스템에 대한 기초적인 개념과 특징들을 잘 정리할 수 있었기 때문에 다시 한번 정리하는 시간을 가지게 되었다. 개인적으로 추천 시스템 공부를 하고 싶은 분께서 처음에 읽기에 굉장히 정리가 잘 되어있는 논문으로 생각된다. 심지어 한글로 되어 있어서 이해하는 것에도 무리가 없다고 생각한다.
최근 추천 시스템으로 활용되고 있는 딥러닝에 대한 내용은 없지만 전체적인 추천 시스템의 기본 프로세스를 이해할 수 있었고 무작정 시작했던 추천 시스템 세미나에서 놓쳤던 부분들을 다시 되짚을 수 있었던 좋은 기회였다.
정보 통신의 발달과 4차 산업 혁명을 시작으로 고객이 아이템을 구매하는 패턴이 급격하게 변화하고 있음
이러한 상황에서 고객에게 적절한 아이템을 추천해주고 구매로 연결시키는 아이템 추천의 중요성이 대두되고 있음
따라서 최근에는 개인화 된 추천 시스템을 구현하기 위해 정보필터링 방법과 연관성 분석 등 다양한 추천 기법이 연구되고 있음
[그림1] 추천 시스템의 종류
🗂 논문 목차
2장: 콘텐츠기반 접근방식
3장: 협력필터링
4장: 하이브리드 추천 시스템
5장: 연관성 분석 기반 추천 시스템
6장: 시간적 역동성을 고려한 추천 시스템
7장: 다양성 향상을 위한 추천 시스템
8장: 추천 시스템 성능 평가 기법
9장: 추천 시스템 적용 사례
10장: 추천 시스템 구현 소프트웨어
콘텐츠기반 접근방식은 정보검색기술에 바탕을 둔 시스템으로, 아이템의 콘텐츠를 직접 분석하여 아이템과 아이템 혹은 아이템과 사용자 선호도간 유사성을 분석하여 이를 토대로 고객에게 아이템을 추천해주는 방식
[그림2] 콘텐츠기반 접근방식
고객 혹은 사용자는 보통 사용자가 직접 입력한 프로파일 정보나, 사용자가 아이템에 대해 평가한 점수 혹은 과거 구매내역을 바탕으로 생성된 정보가 저장되어짐
이러한 정보를 기반으로 선호하는 아이템을 파악한 다음, 미리 선정된 기준을 통해 분류된 아이템 카테고리와 사용자의 선호 아이템 간의 유사도를 측정함
유상도가 가장 높게 측정된 카테고리에 해당하는 아이템을 추천 대상 고객에게 추천함
독립적 정보 활용
콘텐츠기반 접근방식에는 추천 대상 고객의 선호도를 파악하기 위해 자신만의 과거 구매이력이나 프로파일 정보가 이용됨
이는 추천 대상 고객의 독립적인 정보만을 필요로 하므로, 다른 사용자의 정보가 부족할 경우에도 유용하게 활용될 수 있음
하지만 과거 구매이력이 부족하거나 프로파일 정보가 충분치 않을 경우에는 추천의 성능이 보장될 수 없으며 구현 불가능할 수 있음
새로운 아이템
콘텐츠기반 접근방식에서는 아이템에 대한 평가점수가 존재하지 않더라도 아이템간의 속성을 파악하여 카테고리에 할당할 수 있음
최종적으로, 사용자가 선호하는 아이템 속성과 유사도가 높은 카테고리의 아이템들이 사용자에게 추천되기 때문에 평가점수가 존재하지 않는 아이템 혹은 한번도 추천되지 않은 아이템이여도 추천 리스트에 포함될 수 있음
과도한 특수화
콘텐츠기반 접근방식에서는 고객의 독립적인 정보만을 활용하므로 해당 고객 이외의 취향이나 선호도를 반영하지 못하고 이전에 구매한 아이템과 비슷한 아이템들만이 추천된다는 문제점을 가짐
이는 추천 후보 리스트에서 다양성을 보장할 수 없으며, 과도한 특수성이라고 함
아이템 속성 분석
아이템은 속성들의 집합으로 표현될 수 있으며, 이는 크게 구조적 데이터와 비 구조적 데이터로 구분할 수 있음
구조적 데이터는 아이템의 속성이 명확히 정의되어 있는 상태이며, 예를 들어 주연배우, 감동, 개봉일, 장르, 배급사 등과 같은 속성을 말함
비 구조적 데이터는 이미지, 소리, 텍스트와 같이 구조화되어 있지 않은 데이터를 말하며, 텍스트 데이터의 경우 키워드 분석과 의미 분석을 통해 콘텐츠기반 접근방식에 적용할 수 있음
사용자 선호도 학습
협력필터링은 '특정 아이템에 대해 선호도가 유사한 고객들은 다른 아이템에 대해서도 비슷한 선호도를 보일 것'이라는 기본 가정을 바탕으로 사용자 혹은 아이템간 유사도를 기반으로 선호도를 예측하는 방법임
[그림3] 사용자 기반 협력필터링과 아이템 기반 협력 필터링
협력필터링은 크게 기억 기반 협력필터링(Memory-based)와 모델 기반 협력필터링(Model-based)으로 구분할 수 있음
먼저 기억 기반 협력 필터링은 사용자 기반 협력필터링과 아이템 기반 협력필터링, 2가지 개념이 존재함
사용자 기반 협력필터링(User-based)의 기본적인 개념은 추천 대상 고객이 선정되면, 구매 이력을 바탕으로 추천 대상 고객과 다른 사용자들 간의 유사도를 측정함
즉, 구매해온 아이템이 일치할수록 취향이 비슷한 것이므로 높은 유사도를 갖게 되며 유사도가 높은 사용자를 이웃으로 선택하게 되고 이웃의 아이템을 추천할 수 있음
아이템 기반 협력필터링(Item-based)의 기본적인 개념은 추천 대상 아이템을 기준으로, 구매 이력 혹은 선호도를 바탕으로 유사도를 측정함
즉, 사용자로부터 구매 혹은 선호가 일치할수록 아이템 간 높은 유사도를 갖게 되며 유사도가 높은 아이템을 추천할 수 있음
모델 기반 협력필터링은 기억 기반 협력필터링 방식의 과정을 기본으로 하되 군집화, 분류, 예측의 단계에서 기계학습 또는 데이터마이닝 기법을 활용하는 것임
3.1 협력필터링의 특징
데이터 희소성(Sparsity)
확장성(Scalability)
Grey sheep
Shilling Attack
3.2 기억 기반 협력필터링
사용자 기반 협력필터링은 사용자가 입력한 선호도 정보를 이용하여 고객과 유사한 성향을 갖는 이웃 사용자를 선별한 뒤, 선별된 이웃들이 공통적으로 선호하는 아이템을 고객에게 추천해주는 방식임
아이템 기반 협력필터링은 특정 아이템이 기준이 되어, 사용자들에 의해 평가된 점수가 유사한 아이템을 이웃 아이템으로 선정한 다음, 이웃 아이템을 평가한 점수를 바탕으로 추천 대상 고객이 특정 아이템에 대해 갖게 될 선호도를 예측하여 추천해주는 방식임
유사도 측정
선호도 예측
상위 N개 아이템 추천
3.3 모델 기반 협력필터링
앞서 알아본, 기억 기반 협력필터링은 모델을 구축하지 않고, 추천이 요구될 때마다 휴리스틱 기법을 통해 결과를 도출하는 lazy learning 학습 방법임
한편, 학습 데이터를 통해 모델을 구축한 뒤, 기존의 기억 기반 협력 필터링의 유사도 측정, 선호도 예측 등의 과정에서 기계학습과 데이터마이닝 기법을 적용함으로써 사용자에게 아이템을 추천하는 모델 기반 협력 필터링의 우수한 성능이 검증됨
나이브 베이즈
나이브 베이즈 모델은 문서분류에서 가장 우수한 성능을 보이고 있는 알고리즘으로 베이즈 정리에 이론적 근거를 두었으며 주어진 문서를 입력 받은 뒤 그것이 각 카테고리에 할당 될 확률을 계산하는 방법임
사용자가 과거에 선택한 문서의 키워드나 평점 및 선호도 점수를 활용하여 각 클래스로 분류될 확률을 계산하는 것임
군집화
3.4 차원 축소
협업필터링에서는 추천 대상 고객과 취향이 비슷한 사용자를 선정하여 그들이 구매한 제품을 추천하는 과정에서 사용자-아이템 행렬이 희소하다면 취향 분석을 통한 상품 추천이 거의 불가능하거나 추천 성능이 저하됨
또한 사용자와 상품의 개수가 많을 경우 유사도와 선호도 계산에 있어 많은 계산 비용이 발생함
이러한 문제를 개선하기 위해 고차원의 행렬을 저차원의 행렬로 축소시키는 기법인 LSI(Latent Semantic Indexing)을 사용자-아이템 행렬에 적용할 수 있음
즉, 상품의 개수를 줄여 차원을 축소함으로써 취향분석의 정확성을 높이고 빠른 속도로 결과를 도출할 수 있음
이 때, 축소된 행렬 혹은 분해한 행렬과 원본 행렬과의 차이를 고려하되 추천 정확도를 높이기 위해 적절한 수의 차원을 선택하는 것이 굉장히 중요함
이는 행렬의 차원을 축소함으로써, 원본의 속성을 발견할 수 있는 방법이며 실험을 통해 기존 협력필터링 기법보다 높은 추천 정확도를 보여주었음
3.5 그 밖의 협력필터링 기반 추천 시스템
지역정보, 상황, 사회관계, 시간 등 수많은 정보의 수집이 가능해 짐에 따라 추천 시스템에 사용되는 데이터의 변수가 늘어나고 있음
일반적으로 구성변수가 많아질수록 계산의 복잡성이 증가되고 예측 성능과 추천 유효성을 저해할 수 있어 변수에 대한 중요도를 파악하고 추천 성능을 극대화 시키는 것이 필요함
사용자에게 만족도 높은 추천 결과를 제공하기 위해서는 사용자의 현재 상황을 인지하고 선호도의 특성을 정확히 파악한 뒤, 이에 적합한 아이템을 추천하여야 함
하지만 추천 시스템에 사용되는 알고리즘들은 각각 추천의 기준이 다르기 때문에 추천 시스템을 적용하고자 하는 분야의 특성에 알맞은 알고리즘을 선택하고 추천 성능을 향상시킬 수 있는 가능한 많은 정보를 이용하여야 함
따라서 각 방식의 장점을 극대화하면서 단점은 보완하고 다양한 정보를 효과적으로 활용할 수 있는 하이브리드 추천 시스템에 대한 연구가 중요시 되고 있음
Bruke(2002; 2007)은 추천 시스템의 하이브리드 전략에 대하여 다음과 같이 분류하였음
1) 다른 추천 기준을 지닌 여러 개의 알고리즘을 학습한 뒤, 각 알고리즘이 아이템 추천 점수의 가중 평균합을 구하는 방법
2) 학습된 여러 개의 추천 엔진 중에서 현재의 상황에 가장 적절한 추천 엔진을 선택하는 방법
3) 각 알고리즘들의 추천 결과를 혼합하여 보여주는 방법
4) 각각의 알고리즘에 사용되는 모든 변수를 하나의 알고리즘의 변수로 병합하여 사용하는 방법
5) 한 알고리즘이 추천한 아이템을 다음 알고리즘의 후보로 이용하는 방법
6) 각각의 알고리즘의 추천 점수를 바탕으로 메타 알고리즘을 학습하는 앙상블 방법
협업필터링에서 이용하는 사용자-아이템 행렬 외의 다른 정보를 함께 이용하는 하이브리드 추천 연구들도 이뤄지고 있음
사용자의 인구통계학(demographic) 정보, 아이템 리뷰 정보, 사용자의 선호 정보 결합 등을 활용하여 하이브리드 추천 방식을 제안함
하이브리드 추천 시스템을 설계하는 과정에서는 어떤 목적의 추천을 하려는지 명확하게 정의해야 하며, 그 목적에 적합한 알고리즘과 데이터를 활용하여야 함
장바구니 분석으로 알려진 연관성 분석은 데이터 마이닝의 대표적인 기법 중 하나로써 개인화 추천 서비스에 널리 활용되고 있음
연관성 분석의 핵심은 조건부 확률로써, '사건 A가 일어났을 때, 사건 B가 일어나는 것'을 의미하며 추천 시스템에서는 '고객이 A에 대해서 만족 혹은 구매할 경우, B에 대해서도 만족한다'를 의미함
연관규칙에 대한 판단 기준은 전체 발생 빈도수를 의미하는 지지도와, 조건부 확률을 통해 항목 간 관련 정도를 측정하는 신뢰도가 사용되며 동시출현 빈도수를 기반으로 추천항목의 우선순위가 정해지므로 데이터 희소성과 Grey sheep문제를 해결할 수 있음
하지만 아이템 수와 사용자의 수가 많을 경우, 데이터 희소성 문제점이 대두되어 연산이 복잡해지고 계산량이 많아질 수 있음
추천 시스템의 요소인 아이템과 사용자들의 특징은 시간이 지남에 따라 변화하기 때문에 시간적 역동성을 추천 시스템 내부에 반영하기 위한 많은 연구들이 제안되고 있음
시간적 역동성을 반영하는 방법으로는 일정 기간 동안의 데이터만을 사용하여 추천 시스템을 학습하는 무빙 윈도우를 사용하거나, 시간의 흐름만큼 가중치를 줄여주는 감쇄 함수를 이용할 수 있음
시간적 역동성을 반영하는 추천 시스템의 경우 평가 방법 역시 역동성을 반영하는 형태로 진행되어야 함
추천 시스템의 성능 향상 연구는 주로 정확성을 높이는 방향으로 이뤄져 왔으나 추천 결과의 다양성에 연구가 제안되고 있음
만약 추천의 정확도가 높다고 하더라도, 모든 사용자에게 비슷한 아이템을 추천한다거나, 한 사용자에게 매번 비슷한 아이템을 추천하게 된다면, 추천 시스템에 대한 만족도나 신뢰도는 떨어질 것임
그렇기 때문에 일정 수준 정확도를 유지하며 다양성을 추구하는 것이 사용자의 만족도를 가장 높일 수 있는 방법임
추천 시스템의 다양성을 높이는 연구는 각 개인에게 추천되는 아이템 리스트의 다양성을 높이는 것과 시스템이 추천하는 아이템 전체의 다양성을 높이는 두 가지 방향으로 연구가 되고 있음
개인에게 추천되는 아이템 리스트의 다양성을 확보하기 위해서는 일정 수준의 하한을 정한 뒤, 유명도의 역순 혹은 유사도의 역순으로 아이템을 추천하는 방법이 제안되기도 함
시스템이 추천하는 아이템 전체의 다양성을 확보하기 위해서는 롱테일에 위치한 아이템을 군집화하여 콘턴치기반 추천 방법을 적용하기도 함
추천 시스템 기법으로부터 얻어진 추천 결과의 효용성을 파악할 수 있는 다양한 성능 평가 방법이 제안됨
평가 방법은 데이터의 유형과 평가 목적에 따라서 나눌 수 있으며, 데이터 유형이 연속형 데이터인 경우 예측 정확도로, 범주형 테이터인 경우 분류 정확도로 평가하고 평가 목적에는 정확도, 다양성, 의외성 등이 있음
추천 시스템의 목적은 사용자가 선택할 가능성이 높은 아이템을 추천하는 것이지만, 더 나아가 사용자에게 충분한 만족감을 주어 시스템에 대한 신뢰도를 향상시킴으로써 오래도록 시스템을 이용할 수 있도록 함에 있기 때문에 다양한 목적의 평가 방법이 적용됨
8.1 점수 예측 알고리즘의 평가 방법
점수 예측 알고리즘의 성능을 평가하기 위해서는 예측 점수와 실제 점수의 차이를 비교하는 것이 일반적이며 MSE, RMSE, MAE와 같은 평가척도가 존재함
MSE(Mean Squared Error) : 오차가 큰 값에 대해 가중치를 높게 부여하는 평가 방법임
RMSE(Root Mean Squared Error) : MSE보다는 오차가 큰 값에 대해 가중치를 상대적으로 적게 부여하는 평가 방법
MAE(Mean Average Error) : 모든 오차에 동일한 가중치를 부여하는 평가 방법
8.2 아이템 추천 알고리즘의 평가 방법
선호 정도에 대한 평가 방법이 아닌 '구매-비구매', '시청-미시청'과 같은 분류가 목적인 문제에서는 기본적으로 혼동행렬을 기반으로 평가가 이루어짐
추천 시스템은 많은 아이템으로부터 소수의 추천 아이템을 선정하는 것으로 '정보 검색'의 개념과 유사하기 때문에 Precision(정밀도)와 Recall(재현율)가 사용되기도 함
8.3 기타 정확도 기반 평가 방법
8.4 다양성 기반 평가 방법
정확도만으로는 추천 시스템에서 요구되는 성능을 모두 수치적 정보들로 반영할 수 없기 때문에 새로운 측정지표가 필요하며, 이러한 지표들은 사용자의 만족과 같은 심리적이거나 인지적인 경우가 많기 때문에 수리적으로 표현하는데 한계가 있음
Coverage(커버리지)는 전체 아이템 중에서 추천 시스템이 추천하는 아이템의 비율을 의미하며, 추천되는 아이템의 종류가 다양할수록 커버리지가 높게 나타남
Serendipity(세렌디피티)는 의외의 아이템에서 오히려 고객의 만족도를 높일 수 있음을 나타내는 의미로, 정확도 높은 예측보다는 일정 비율로 새로운 아이템을 포함하여 다양성을 유지하고 고객의 만족도를 높이는 것을 말함
Diversity(다양성)는 한 사람에게 추천되는 아이템의 차이의 정도를 의미하며, 시간이 변함에 따라 얼마나 다양한 아이템을 추천하는지에 대한 지표로 해석할 수 있음
이 외에도 Gini계수를 활용한 다양성 평가, 사용자 간의 추천 리스트 비교를 통한 개인화 정도 평가, 아이템 특이성 평가 등이 존재함
8.5 기타 평가 방법에 대한 논의
학습 알고리즘을 사용할 경우, 학습률을 기반으로 예측 결과의 신뢰성을 판단하기도 함
추천 시스템을 실제 문제에 보다 효율적으로 적용하기 위해서는 알고리즘이 얼마만큼 빨리 데이터를 학습하고 분석하여 고객의 선호도를 예측하는가에 대한 평가도 함께 이루어져야 함
추천 알고리즘의 성능을 판단하는 다양한 평가 방법의 궁극적인 목적은 고객의 만족도를 극대화시키기 위한 것임