본 글은 Recommender Systems(Charu C. Aggarwal), 추천 시스템 기법 연구동향 분석(손지은, et al.)을 참고하여 정리한 내용들을 바탕으로 작성한 글입니다.
추천시스템 알고리즘
해당 포스팅에서는 추천시스템 알고리즘 중 하이브리드 시스템, 연관성 분석, 시간적 역동성을 고려한 추천시스템, 다양성 향상을 위한 추천시스템에 대해 정리해 보았다.
하이브리드 시스템
사용자에게 만족도 높은 추천결과를 제공하기 위해서는 사용자의 현재 상황을 인지하고 선호도의 특성을 정확히 파악한 뒤, 이에 적합한 아이템을 추천하여야 한다.
추천시스템에서 사용되는 알고리즘들은 각각 추천의 기준이 다르기 때문에 추천 시스템을 적용하고자 하는 분야의 특성에 알맞은 알고리즘을 선택하고 추천 성능을 향상할 수 있는 가능한 많은 정보를 이용하여야 한다.
콘텐츠기반 접근방식은 평가가 되지 않은 아이템을 추천할 수 있지만, 과도한 특수화 경향이 있다.
협업필터링은 높은 세린디피티(serendipity)를 보여주지만, 사용자가 평가하지 않은 아이템에 대해서는 추천되지 않는다.
하이브리드 추천시스템은 각 방식의 장단점을 파악하여, 장점을 극대화하면서 단점은 보완하고 다양한 정보를 효과적으로 활용할 수 있는 알고리즘을 의미한다.
사용자가 현재 필요로 하는 아이템을 효율적으로 찾기 위한 다양한 정보를 최대한 활용한다.
이 과정에서 발생하는 다양한 문제들을 해결하기 위해 추가적인 방법들이 함께 결합된다.
하지만, 알고리즘과 데이터로부터 얻을 수 있는 정보를 각각 다르기 때문에, 하이브리드 추천 시스템을 설계하는 과정에서 어떤 목적의 추천을 하려는지 명확하게 정의해야 하며, 그 목적에 적합한 알고리즘과 데이터를 활용하여야 한다.
추천시스템의 하이브리드 전략의 분류
- 다른 추천 기준을 지닌 여러 개의 알고리즘을 학습한 뒤, 각 알고리즘이 아이템 추천 점수의 가중평균합을 구하는 방법
- 학습된 여러 개의 추천 엔진 중에서 현재의 상황에 가장 적절한 추천 엔진을 선택하는 방법
- 각 알고리즘들의 추천 결과를 혼합하여 보여주는 방법
- 각각의 알고리즘에 사용되는 모든 변수를 하나의 알고리즘의 변수로 병합하여 이용하는 방법
- 한 알고리즘이 추천한 아이템을 다음 알고리즘의 후보로 이용하여 각 단계벼로 더 세밀하게 추천하거나 한 알고리즘의 추천 점수를 다른 알고리즘의 변수로 이용하는 방법
- 각각의 알고리즘의 추천 점수를 바탕으로 메타 알고리즘을 학습하는 앙상블 방법
모델의 형태에 따른 하이브리드 전략의 분류
- 독립된 추천결과를 조합
- 위의 1,2,3 전략에 해당 - 콘텐츠기반 정보를 협업필터링에 적용
- 사용자의 평가점수가 아닌 콘텐츠기반 사용자 프로파일을 이용하는 방법 - LSI, PLSI와 같은 알고리즘을 이용하여 협업필터링의 정보를 콘텐츠기반 접근방식에 융합하는 방법
- 협업필터링과 콘텐츠기반 접근방식을 동시에 고려하는 단일 모델을 구축하는 방법
- 학습을 위해 MCMC와 같은 추정모델이나 베이지안 학습법이 이용되기도 함
연관성 분석
장바구니 분석으로도 불리는 연관성 분석의 핵심은 조건부 확률이다.
"사건 A가 일어났을 때, 사건 B가 일어나는 것"을 의미하며
추천시스템에서는 "고객이 A에 대해서 만족(혹은 구매)할 경우, B에 대해서 만족한다"를 의미한다.
이때 A의 정보로써 고객의 나이, 성별, 지역과 같은 프로필 정보나 과거 구매이력 혹은 설문지 응답으로부터 얻은 취향 정보 등을 모두 활용할 수 있으며, B는 추천 대상 고객에게 추천할 항목으로 정의할 수 있다.
연관 규칙에 대한 판단 기준은 전체 발생 빈도수를 의미하는 지지도와, 조건부 확률을 통해 항목 간 관련 정도를 측정하는 신뢰도가 사용된다.
연관성 분석은 항목의 동시출현 빈도수를 기반으로 추천항목의 우선순위가 정해지므로 데이터 희소성과 Grey sheep 문제를 해결할 수 있다. 그러나 아이템 수와 사용자의 수가 많을 경우, 데이터 희소성 문제점이 대두되어 연산이 복잡해지고 계산량이 많아질 수 있다.
시간적 역동성을 고려한 추천시스템
추천시스템의 요소인 아이템과 사용자들의 특징은 시간이 지남에 따라 변화한다.
특히 YouTube처럼 서비스 내부아이템의 수명주기가 매우 짧은 경우에는 한 시점에서 집중적으로 아이템들이 소비되고, 어느 정도 시간이 지나면 거의 소비가 이뤄지지 않기도 한다.
사람의 취향 역시 시간이 지남에 따라 변화한다.
이러한 시간적 역동성을 추천시스템 내부에 반영하기 위한 많은 연구들이 제안되었다.
시간적 역동성을 반영하는 방법
- 일정 기간 동안의 데이터만을 사용하여 추천 시스템을 학습하는 무빙 윈도(moving window) 사용
- 데이터를 지속적으로 무빙 윈도우 내의 데이터만 사용하기 때문에 학습 비용이 줄어드는 장점
- 전체 데이터를 활용하지 않는다는 점과 적절한 윈도우 사이즈를 정해야 하는 한계점 - 각 상품이 구매된 시점을 기준으로 시간의 흐름만큼 가중치를 줄여주는 감쇄 함수를 이용
시간적 역동성을 반영하는 추천 시스템의 경우 평가 방법 역시 역동성을 반영하는 형태로 진행되어야 한다.
다양성 향상을 위한 추천 시스템
추천시스템의 성능 향상 연구는 주로 정확성을 높이는 방향으로 이뤄져 왔으나, 그 외 다른 관점에서 다양성이 높은 추천시스템을 만드는 다양한 연구들이 제안되었다.
오래전부터 추천시스템은 사용자의 선호에 적합한 아이템을 추천함으로써 시스템 전체의 아이템 소비에 다양성을 높여주는지, 혹은 반대로 자주 노출된 아이템을 우선적으로 제공함으로써 아이템 노출의 빈익빈 부익부 현상을 가져오는지에 대한 논의가 이뤄져 왔다.
일반적으로 다양한 아이템들이 추천되었을 때 추천시스템에 대한 만족도는 높아지는 것으로 알려져 있다.
만약 추천의 정확도는 높다고 하더라도, 모든 사용자에게 비슷한 아이템을 추천한다거나, 한 사용자가 매번 비슷한 아이템을 추천받는다면, 추천 시스템에 대한 만족도나 신뢰도는 떨어질 것이다.
하지만 무작위로 다양한 아이템을 추천하는 시스템 역시 사용자에게 충분한 만족도를 줄 수 없다.
일정 수준 정확도를 유지하며 다양성을 추구하는 것이 만족도를 가장 높일 수 있을 것이다.
추천시스템의 다양성을 높이는 연구
- 각 개인에게 추천되는 아이템리스트의 다양성을 높이는 것
- 시스템이 추천하는 아이템 전체의 다양성을 높이는 것
Reference
추천 시스템 기법 연구동향 분석(손지은, et al.)
https://wannabenice.tistory.com/42
https://wannabenice.tistory.com/43
'Data Science > Recommendation System' 카테고리의 다른 글
[Recsys] 추천시스템 알고리즘 - 협업 필터링(Collaborative filtering) (0) | 2022.12.22 |
---|---|
[Recsys] 추천시스템 알고리즘 - 콘텐츠 기반(Content-based) (0) | 2022.12.19 |
[Recsys] 추천시스템 - 데이터 형태, 평가지표 (0) | 2022.12.13 |
[Recsys] 추천시스템이란? (2) | 2022.12.12 |
댓글