콘텐츠 기반 필터링
콘텐츠 기반 필터링(Contents Based Filtering; CBF)은 추천을 생성하는데 개인화 수준을 목표로 하고 개개인의 선호도와 제품의 콘텐츠를 고려하여 추천하는 방법이다.
개요[편집]
콘텐츠 기반 필터링은 말 그대로 콘텐츠에 대한 분석을 기반으로 추천을 구현하는 방법이다.[1] 콘텐츠를 분석한 프로파일(item profile)과 사용자의 선호도(user profile)를 추출하고 유사성 분석을 통해 추천을 수행한다.[2] 가령 슈퍼맨이라는 영화에 대한 사전 분석을 통해 SF, 영웅 등의 특징을 기록하고 슈퍼맨을 본 사람에게 배트맨이라는 비슷한 종류의 영화를 추천해주는 방식이다.
이 기법은 콘텐츠의 내용을 분석해야 하므로 아이템 분석 알고리즘이 핵심적이며, 이를 위해 군집분석(Clustering analysis), 인공신경망(ANN, Artificial Neural Network), TF-IDF(Term Frequency-Inverse Document Frequency) 등의 기술이 사용된다.[3] 콘텐츠 기반 필터링은 내용 자체를 분석하므로 협업 필터링에서 발생하는 콜드 스타트(Cold-start problems) 문제를 자연스럽게 해결할 수 있다. 하지만 다양한 형식의 항목을 추천하기 어려운 단점이 있다. 예를 들어 음악과 사진, 비디오를 동시에 추천해야 하는 경우, 각각의 항목에서 얻을 수 있는 정보가 다르기 때문에 프로파일을 구성하기 매우 어려워진다.
기술[편집]
군집분석[편집]
군집분석(Clustering analysis)은 개체나 대상의 유사성이나 거리에 의해서 군집을 형성하고 형성된 군집의 특성을 파악하여 군집들 사이의 관계를 분석하는 방법으로 비슷한 특성은 같은 그룹이 지어지도록 하고 상이한 특성은 다른 그룹에 할당하는 것으로서 몇 개의 군집으로 집단화 하는 분석 기법이다.[4] 군집화에서 거리 개념은 매우 중요하고 여러 가지 계산 방법이 개발되어 있다. 어떤 계산방법을 사용하느냐에 따라 군집화 결과는 달라지고 상황에 적합할 수도 있고 그렇지 않을 수도 있다. 따라서 주어진 문제에 적합한 거리 측정 방법을 선택하는 것이 매우 중요하다.[5]
정보검색을 위한 클러스터 기반 모델은 서로 연관성 있는 문서들을 같은 군집으로 그룹화 시킨다는 개념 하에 문서 군집화를 한다. 문서군집화는 크게 agglomerative(병합)와 partitioning(분할) 접근으로 구분된다. Agglomerative 방법은 가장 유사한 두 개의 그룹을 하나의 군집으로 만드는 것으로 시작하여 하나의 가장 큰 군집이 생성될 때까지 수행하는 알고리즘이고 partitioning은 전체 문서를 미리 정해놓은 수의 군집으로 묶는 알고리즘이다. K-means 클러스터링 방법은 partitioning 군집 방법의 하나이며, 대용량의 자료에서 군집을 발견하는데 효과적이고 가장 많이 사용되는 알고리즘으로 알려져 있다.[6] 따라서 많은 양의 문서에는 계산상 partitioning 방법이 agglomerative 방법보다 다루기가 더 쉽지만 군집 수를 고정시켜야 한다는 어려움이 있다.[5]
군집분석은 각각 군집화 되어있는 그룹의 특성을 파악하고 분명한 분류 기준이 없거나 알려지지 않은 상태에서 활용하기 위한 목적이 있다. 구글(Google)의 웹 검색엔진은 순위에 따라 검색된 문서를 보여주는 페이지랭크 알고리즘을 사용하고 있다. 그러나 특허의 경우, 특허문서의 서지적인 특성 때문에 텍스트마이닝 기반의 알고리즘을 통해 사용자가 원하는 문서를 찾는 것은 쉽지 않다. 이러한 문제점의 해결방안으로 군집분석 기법이 사용될 수 있는데, 이는 검색된 자료들 중 비슷한 문서를 군집화 해줌으로써 사용자들이 원하는 문서를 효과적으로 찾게 도와줄 수 있다.
인공신경망[편집]
인공신경망(ANN, Artificial Neural Network)은 네트워크 또는 생물의 신경세포의 회로를 컴퓨터 시뮬레이션으로 표현하여 분류와 예측을 가능하게 하는 병렬정보처리 시스템이다. 인공 신경세포(neurons)와 노드(nodes)로 구성된 신경망은 입력변수와 출력변수 사이, 입력변수들 간의 복잡한 관계를 파악할 수 있는 매우 유연한 방법으로 패턴분석, 문서 분류, 기존의 데이터를 사용하여 노드들 간의 연결에 가중치를 조정하는 학습에 종종 사용된다.[5]
TF-IDF[편집]
TF-IDF(Term Frequency-Inverse Document Frequency)는 벡터 공간 모델(Vector Space Model) 기반 정보검색으로 문서를 표현하는 원리이며, 텍스트 마이닝에서 이용하는 가중치로 여러 문서로 이루어진 문서군이 있을 때 선택된 임의의 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다.[7] 이는 문서의 핵심어 추출, 검색 엔진에서 검색 결과의 순위 결정, 문서들 간의 유사도 산출 등의 용도로 사용된다.[5]
단어 빈도수(TF, Term Frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값으로서 이 값이 높을수록 문서에서 중요하다고 볼 수 있다.[8] 이는 문서 내부의 단어 출현 빈도를 모든 단어의 총 출현 회수로 나누어 정규화한 형태를 띤다. 반면 단어 자체가 문서군 내에 흔하게 등장하여 자주 사용되는 경우를 문서 빈도수(DF, Document Frequency)라고 하며 이 값의 역수인 문서 집합에 포함되어 있는 문서 수를 특정 단어가 나타난 문서의 수로 나눈 값을 IDF(Inverse Document Frequency)라고 한다. IDF 값은 문서군의 성격에 따라 결정된다. TF-IDF는 TF와 IDF를 곱한 값으로서 문서 내부에서 많이 출현하고, 전체 문서집합에서 출현하는 문서들의 수가 적은 단어가 중요한 단어라고 평가될 수 있다.[5]
각주[편집]
- ↑ 카카오 정책산업 연구, 〈(카카오AI리포트)내 손안의 AI 비서, 추천 알고리듬〉, 《브런치》, 2017-06-23
- ↑ datageeks, 〈의사결정을 도와주는 데이터, 사례로 보는 추천 알고리즘 서비스〉, 《네이버 블로그》, 2017-09-06
- ↑ 메타샤워, 〈추천 시스템 – 컨텐츠 기반 필터링〉, 《이글루스》, 2017-09-26
- ↑ juyusoji, 〈(공유) 군집화(Clustering) 기법〉, 《네이버 블로그》, 2010-10-31
- ↑ 5.0 5.1 5.2 5.3 5.4 김갑조, 박상성, 신영근, 정원교, 고광수, 장동식, 〈특허 분석을 위한 알고리즘에 관한 연구(A study on algorithms for patent analysis)〉, 《2011 한국경영과학회/대한산업공학회 춘계공동학술대회 논문집》
- ↑ som eonenice, 〈K-평균 군집화 기법(K-mean dlustering method)〉, 《네이버 블로그》, 2009-03-25
- ↑ Hello, 〈TF-IDF(Term Frequency – Inverse Document Frequency) 란?〉, 《네이버 블로그》, 2013-09-09
- ↑ 〈tf-idf〉, 《위키백과》
참고자료[편집]
- 김갑조, 박상성, 신영근, 정원교, 고광수, 장동식, 〈특허 분석을 위한 알고리즘에 관한 연구(A study on algorithms for patent analysis)〉, 《2011 한국경영과학회/대한산업공학회 춘계공동학술대회 논문집》
- 카카오 정책산업 연구, 〈(카카오AI리포트)내 손안의 AI 비서, 추천 알고리듬〉, 《브런치》, 2017-06-23
- datageeks, 〈의사결정을 도와주는 데이터, 사례로 보는 추천 알고리즘 서비스〉, 《네이버 블로그》, 2017-09-06
- 메타샤워, 〈추천 시스템 – 컨텐츠 기반 필터링〉, 《이글루스》, 2017-09-26
- juyusoji, 〈(공유) 군집화(Clustering) 기법〉, 《네이버 블로그》, 2010-10-31
- Hello, 〈TF-IDF(Term Frequency – Inverse Document Frequency) 란?〉, 《네이버 블로그》, 2013-09-09
같이 보기[편집]
|