이번 학기 추천시스템 강의를 듣게 되었는데, 수업 이전에 간단히 내용을 리마인드 하고자 글을 쓴다.
추천 시스템의 주요 유형
콘텐츠 기반 필터링
아이템의 콘텐츠에 집중하여 사용자가 선호하는 아이템의 특성을 분석한 후 유사한 특성을 가진 다른 아이템을 추천하는 방식이다.
- 작동 원리
- 사용자가 선호한 아이템의 속성을 분석한다.
- 사용자의 이전 행동이나 명시적 평가를 통해 선호도를 파악한 후, 그와 유사한 속성을 가진 다른 아이템을 추천한다.
- 장점
- 아이템 속성만으로 신규 아이템에 대한 추천이 가능하여, Cold Start 문제에서 상대적 이점을 가진다.
- 사용자의 명시적 선호도를 기반으로 직관적인 추천이 가능하다.
- 단점
- 사용자가 선호하는 아이템의 범위에 갇혀 새로운 경험을 제공하는데 한계가 존재한다. (추천 다양성이 낮아짐)
- 아이템 속성을 수집하고 처리할 때 시간이 많이 소요될 가능성이 높고 속성을 정의하기 어려울 때 성능이 저하될 가능성이 존재한다.
협업 필터링
협업 필터링은 사용자 기반 협업 필터링과 아이템 기반 협업 필터링으로 나뉜다.
사용자 기반 협업 필터링
- 작동원리
- 사용자가 선호한 아이템의 속성을 분석 & 비교하여 자신과 비슷한 취향을 가진 사용자를 탐색한다.
- 이는 비슷한 사람들이 선호한 아이템이 자신에게 적합할 가능성이 높다는 가정에 기반한다.
- 장점
- 다양한 추천을 제공할 수 있어 사용자가 좋아할 가능성이 높은 새로운 아이템을 발견하여 제공할 수 있다.
- 아이템의 특성을 직접 분석할 필요가 없이 사용자의 행동만으로 추천이 가능하다.
- 단점
- Cold Start: 신규 사용자나 아이템에 대한 데이터가 부족할 경우 유사성을 기반으로 한 추천의 어려움이 존재한다.
- 확장성 문제: 많은 사용자와 아이템이 있는 경우 계산 복잡도가 증가하여 실시간 추천에 어려움이 존재한다.
- Memory-Based Model이기 때문에, 새로운 Content가 도입이 될 때마다 계산을 진행하게 된다.
아이템 기반 협업 필터링
- 작동 원리
- 사용자가 선호한 아이템의 특성을 분석하고 그 아이템과 유사한 다른 아이템을 추천한다.
- 아이템 간의 유사성을 측정한 후 사용자가 선호하는 아이템과 비슷한 속성을 가진 아이템을 추천한다.
- 장점
- 사용자 행동에 따라 직관척 추천이 가능, 사용자 데이터가 부족해도 아이템만의 유사성으로 추천이 가능하다.
- 계산 복잡도가 낮아 대규모 데이터에서 성능이 유지된다.
- 단점
- 아이템 간의 유사성이 명확하지 않을 때 추천 품질이 저하될 우려가 존재한다.
- 새로운 사용자에게 적절한 추천의 어려움이 존재한다.
아이템 기반 협업 필터링은 다른 유저의 행동을 분석하여 아이템 간의 유사성을 찾고 추천하는 방식이고, 콘텐츠 기반 필터링은 아이템 자체의 특성을 분석하여 유사한 아이템을 추천하는 방식이다.
때문에, 아이템 기반 협업 필터링은 다양한 유저 행동 데이터를 이용하는 반면, 콘텐츠 기반 필터링은 아이템의 특징에만 집중한다.
하이브리드 방법
하이브리드 방법은 두 가지 알고리즘을 결합하거나 각각의 알고리즘이 제안한 추천 결과를 통합하여 최적의 추천을 생성하는 방법이다.
- 작동 원리
- 혼합형 방식: 콘텐츠 기반 필터링 + 협업 필터링을 통시에 사용, 두 결과를 결합한 후에 사용자에게 최종 추천을 제공한다.
- 단계적 방식: 협업 필터링을 사용하여 우선적으로 추천을 생성하고 이후 콘텐츠 기반 필터링으로 해당 추천을 필터링하는 방식으로 사용한다.
- 장점
- 정확성 향상: 각 알고리즘이 가진 한계를 상호보완한다.
- 다양성 증대: 협업 필터링의 추천에 콘텐츠 기반 필터링을 추가함으로써 추천 목록의 다양성이 증가한다.
- 단점
- 두 알고리즘을 결합함에 따라 계산 복잡도가 증가하고 시스템 구현과 유지보수의 어려움이 존재한다.
- 데이터가 충분히 확보되지 않은 경우에 각 알고리즘의 결합이 오히려 추천 성능을 저해한다.
추천 시스템의 핵심 요소
추천 시스템에서 데이터는 명시적 피드백 데이터와 암묵적 피드백 데이터로 구분된다.
- 명시적 피드백
- 사용자가 의도적으로 남긴 명확한 반응 데이터를 의미, 사용자가 선호를 직접적으로 표현하는 방식으로 수집이 된다.
- ex. 평점, 리뷰, 좋아요, 싫어요 등
- 사용자가 의도적으로 남긴 명확한 반응 데이터를 의미, 사용자가 선호를 직접적으로 표현하는 방식으로 수집이 된다.
- 암묵적 피드백
- 행동을 통해 간접적으로 나타내는 데이터를 의미, 사용자 행동 패턴을 통해 선호도를 추론할 수 있으며 더 많은 양의 데이터를 수집할 수 있다는 장점이 존재한다.
- ex. 클릭, 조회 시간, 구매 기록, 검색 기록
- 행동을 통해 간접적으로 나타내는 데이터를 의미, 사용자 행동 패턴을 통해 선호도를 추론할 수 있으며 더 많은 양의 데이터를 수집할 수 있다는 장점이 존재한다.
추천 시스템에서 프로파일링은 사용자 프로파일링과 아이템 프로파일링으로 구분된다.
- 사용자 프로파일링
- 개별 사용자의 선호와 패턴을 분석, 사용자의 관심과 취향을 반영한 프로파일을 만드는 과정이다.
- 행동 기반 프로파일링
- 행동 데이터를 기반으로 관심사를 추정한다.
- 명시적 선호 프로파일링
- 직접 입력한 선호 정보나 평가 데이터를 기반으로 프로파일을 생성한다.
- 잠재 요인 모델링
- 명시적인 평가 데이터나 행동 패턴을 바탕으로 개별적인 선호도와 관련된 잠재적 요소들을 추정한다.
- MF 기법 등을 통해 사용자의 숨겨진 선호를 발견하는데 용이하다.
- 행동 기반 프로파일링
- 개별 사용자의 선호와 패턴을 분석, 사용자의 관심과 취향을 반영한 프로파일을 만드는 과정이다.
- 아이템 프로파일링
- 상품이나 콘텐츠 자체의 속성을 분석하여 추천에 활용하는 과정이다.
- 메타데이터 분석
- 메타데이터를 활용하여 아이템의 특성을 파악한다.
- 텍스트 마이닝
- 텍스트 데이터를 분석하여 아이템에 대한 구체적인 정보를 추출한다.
- 음악 및 이미지 분석
- 리듬, 템포, 악기 구성 등을 통해 유사한 음악을 추천한다.
- 메타데이터 분석
- 상품이나 콘텐츠 자체의 속성을 분석하여 추천에 활용하는 과정이다.
추천 시스템의 도전과제
데이터 희소성: Cold Start 문제
추천 시스템이 충분한 사용자나 아이템 데이터를 확보하지 못했을 때 발생하는 문제다.
- 신규 사용자 문제
- 플랫폼에 처음 가입하면 과거 행동 데이터가 부족하기에 개인화된 추천을 제공하기 어렵다.
- 신규 아이템 문제
- 상품이나 콘텐츠가 새로 추가될 때 사용자에 대한 피드백이나 상호작용 데이터가 없기에 추천 시스템이 아이템을 추천하는데 어려움이 존재한다. (협업 필터링에서 더 어려움)
확장성: 대규모 데이터 처리의 어려움
추천 시스템은 많은 사용자와 아이템을 처리해야 하기 때문에, 데이터의 양이 커질수록 확장성 문제가 발생한다.
- 데이터 처리의 복잡성
- 사용자 & 아이템 수가 기하급수적으로 늘어날수록 알고리즘 계산 복잡도가 증가한다.
- 실시간 추천의 어려움
- 사용자 행동이 실시간으로 변화하는 환경이기에 빠르 속도로 즉각적인 추천을 생성하는 것이 매우 중요하다.
편향 & 다양성 문제: 필터 버블 현상
추천 시스템이 특정 콘텐츠나 상품을 계속하게 반복 추천할 경우 편향(bias)와 다양성 부족 문제가 발생한다.
- 편향(bias) 문제
- 사용자 행동 데이터 기반하기에 이전에 선호했던 콘텐츠나 상품에만 집중하는 경향이 존재한다.
- 다양성 부족과 필터 버블
- 필터 버블은 사용자가 특정 취향에 맞는 콘텐츠만 추천 받고 그 외에 정보에 접근할 기회를 제한 받는 현상이다. (정보의 편중 발생)
추천 시스템 순위 평가 지표
추천 시스템은 사용자가 선호할 가능성이 높은 항목을 순위별로 제공하여 사용자의 만족도를 높인다.
추천 시스템, 검색 엔진과 같은 순위 시스템은 목록의 항목을 우선순위에 따라 정렬하여 제공하는 알고리즘을 사용한다. 이들은 관련성을 기준으로 평가되며 사용되는 평가 지표 또한 유사하다.
추천 시스템의 평가 지표에 앞서 몇가지 용어를 정리해보자.
- Ground Truth
- 모델이 예측한 정확도를 평가하는데 사용되는 참값으로, 예측된 추천 결과의 품질을 평가하기 위해 비교할 실제 사용자 행동 데이터를 의미한다.
- 이때, 예측된 순위나 추천 결과가 실제 사용자 선호도와 얼마나 일치하는지 관련성 점수를 사용하여 평가한다.
- 관련성 점수: 추천된 항목이 사용자에게 얼마나 유용했는지 측정하는 척도
- 오프라인 평가
- 모델을 훈련하고 과거 데이터(ex. 평점, 이미 수집된 데이터)를 기반으로 미래 사용자 행동을 예측하여 성능을 평가하는 방법을 의미한다.
- 많은 사용자 access가 필요없기에 여러 모델을 비교하거나 최적의 모델을 선택하기 위한 평가 방식이다.
- ex) accuracy, precision, recall, F1-Score, RMSE, etc..
- 온라인 평가
- 실제 사용자를 대상으로 실제 운영 중인 환경에서 성능을 평가하는 방식
- 관련성
- 관련성이란, 추천된 항목이 사용자 프로필이나 쿼리와 얼마나 잘 부합되는지를 나타낸다.
- ex) 구매 가능성이 높은 항목, 주어진 쿼리에 잘 맞는 문서 등
- 관련성 측정 방법
- 이진 점수: 관련 여부를 1 or 0으로 단순하게 평가하는 방식이다.
- 등급점수: 다양한 사용자 행동에 가중치를 부여하여 관련성을 평가하는 방식이다.
- ex) 클릭 = 1점, 장바구니 추가 = 3점, 구매 = 4점, etc..
- 수동 채점 방식
- 사용자 평가: 사용자가 항목에 직접 1~5점 등의 평점을 매겨 관련성을 평가하는 방식이다.
- 검색 엔진 평가: 평가자가 수동으로 문서의 관련성을 평가하는 방식이다.
- 이진 레이블 변환
- 많은 순위 지표는 이진 관련성을 사용하기 때문에, 등급 점수를 이진 레이블로 변환해야 한다.
- ex) 4점 이상은 좋음, 3점 이하는 나쁨으로 변환 후 평가
- 많은 순위 지표는 이진 관련성을 사용하기 때문에, 등급 점수를 이진 레이블로 변환해야 한다.
- Top-K 추천
- K는 평가하려는 상위 추천 항목의 수를 나타낸다.
- 시스템은 많은 항목을 추천할 수 있지만, 사용자가 실제로 상호작용할 가능성이 높은 상위 K개의 항목에 집중하는 것이 중요하다.
- 많은 추천 항목 중 모든 항목에 대해 평가하는 것은 비효율적이며, 대부분의 항목이 사용자에게 관련이 없다. (상위 K개 항목 평가에만 집중하는 것이 의미)
오프라인 평가지표
- 예측 오차 평가지표
- 사용자가 아이템에 부여한 실제 평점과 추천 시스템이 예측한 평점 사이의 차이를 측정하는 지표다. (예측 성능 평가 지표)
- ex) MAE, RMSE
- MAE는 모든 오차를 동일하게 평가하고, RMSE는 큰 오차에 더 민감하게 반응한다는 특징을 가지고 있다.
- 집합 평가지표
- Precision (정밀도): $\frac{TP}{TP + FP}$
- 추천된 상위 K개의 항목 중 얼마나 많은 항목이 관련성이 있는지를 측정하는 지표 (긍정 예측 중 실제로 긍정인 비율)
- 사용자가 관련 항목을 많이 가지고 있고 그 중 일부만 추천해야 할 때 효과적이다.
- 단점
- 정확도는 사용자가 가진 관련 항목의 총 수에 영향을 받는다.
- 다른 사용자들과 정확도를 비교하거나 평균화할 때 어려움을 겪는다.
- Recall (재현율): $\frac{TP}{TP + FN}$
- 상위 K개의 총 관련 항목 중 얼마나 많은 관련 항목을 성공적으로 추천했는지를 나타낸다. (실제 긍정을 얼마나 잘 예측했는지 비율)
- 시스템이 상위 K개의 추천에서 얼마나 많은 관련 항목을 포착했는지를 평가한다.
- 관련 항목이 소수인 애플리케이션에서 유용하며 Precision을 약간 희생하더라도 모든 관련 항목을 반환하는 것이 중요할 때 유용하다.
- F1-Score: $2 * \frac{Precision * Recall}{Precision + Recall}$
- Precision과 Recall의 조화 평균 값으로, 균형 잡힌 평가를 제공한다.
- 단점
- 관련 항목의 총 수에 따라 값이 크게 변동된다. (성과 비교의 어려움)
- 관련 항목의 순위를 고려하지 않는다는 단점이 존재한다. (위치에 상관없이 F-Score는 동일하게 계산)
- Precision (정밀도): $\frac{TP}{TP + FP}$
- 순위 평가지표
- MAP (Mean Average Precision)
- 여러 추천 목록에 대한 평균 Precision을 측정하는 지표다.
- 각 쿼리나 사용자에 대한 Precision을 평가한 후 이를 평균하여 전체 시스템의 성능을 평가한다.
- MAP (Mean Average Precision)
- $rel_k$: k번째 항목이 관련성이 있으면 1, 없으면 0
- Precision@k: k번째 항목까지의 Precision 값
- Q: 전체 사용자 or 쿼리 수
- NDCG
- 추천 시스템이 관련성이 높은 항목을 얼마나 상위에 위치시켰는가를 측정하는 지표다.
- 순위가 낮아질수록 관련 항목의 중요성이 감소하는 것을 반영하여 순위별 가중치를 부여한다.
- $rel_i$: 순위 i에서 관련성이 있으면 1, 없으면 0
- i: 항목의 추천 순위
- IDCG: 관련성이 가장 높은 항목들이 최상위에 배치된 경우의 DCG값, DCG를 정규화하기 위한 기준으로 사용
- 기타 평가지표
- 다양성 (Diversity)
- 추천 항목 간의 서로 다른 정도를 측정하는 지표로 추천 목록에 포함된 아이템들이 얼마나 상이한지 평가한다.
- 계산방법
- 코사인 유사도 or 유클라디안 거리 등을 이용하ㅣ여 추천된 항목들 간의 유사도를 측정하여 이를 바탕으로 다양성을 평가한다.
- 새로움 (Novelty)
- 사용자가 이전에 접하지 않은 새로운 항목을 얼마나 추천하는지 평가하는 지표다.
- 계산방법
- 추천된 아이템 중에 사용자가 과거에 상호작용하지 않은 항목의 비율을 계산하여 평가한다.
- 의외성 (Serendipity)
- 사용자가 예상치 못한 항목이지만 유용하거나 흥미를 느낄 수 있는 항목을 추천하는 정도를 평가하는 지표다.
- 계산방법
- 추천된 항목 중 사용자가 이전에 상호작용하지 않았으나 높은 상호작용 가능성이 있는 항목의 비율을 측정하여 평가한다.
- 다양성 (Diversity)
'Analytics' 카테고리의 다른 글
[RecSys] Matrix Factorization (3) | 2024.10.15 |
---|---|
[ML/DL] ResNet (feat: Skip-Connection) (1) | 2024.10.04 |
[Causal Inference] 메타러너 (1) | 2024.09.28 |
[ML/DL] Transformer: Attention Is All You Need (2) | 2024.09.26 |
[Causal Inference] 이질적 처치효과 (2) | 2024.09.24 |