0. Abstract
- 전자상거래의 핵심 성공 요소 중 하나는 맞춤형 상품 추천
- 추천 시스템은 사용자 경험을 향상시키고 구매율을 높임
- 본 연구에서는 FP-Growth 기반의 연관 규칙 알고리즘을 사용
- 추천된 상품의 평균 구매 확률이 높아 실제 적용 가능성 있음
1. Introduction
- 오늘날 디지털 기술의 발전과 인터넷 접근의 용이성 덕분에 우리는 점점 더 많은 정보에 노출 → 사용자에게 다양한 콘텐츠를 제공하지만, 동시에 정보 과잉과 다수의 정보 출처로 인해 혼란 초래
- 이러한 문제의 해결을 위해서 사용자에게 정보를 전달하기 전에 필터링할 수 있는 다양한 도구들이 개발되어 왔으며, 대표적인 것이 추천 시스템
- 추천 시스템의 주요 목표: 사용자의 선호도에 따라 정보를 제공함으로써 의사결정을 쉽게 하도록 돕는 것
<추천 시스템의 두 가지 방식>
1) 콘텐츠 기반 필터링(Content-based filtering)
- 추천되는 제품의 특성을 고려하여 유사한 콘텐츠끼리 그룹화
- 콘텐츠: 단어와 제품 간의 관계를 의미
- 외부 데이터를 기반으로 특성을 추출해야 하는 단점
2) 협업 필터링(Collaborative filtering)
- 유사한 사용자 그룹(이웃)의 데이터를 활용하여 제품 추천
- 추천 방식은 전 사용자에게 동일하게 제공하는 글로벌 방식과 사용자마다 다르게 추천하는 로컬 방식으로 나뉨
- 협업 필터링은 구현 방식에 따라 두 가지 접근법 존재
- 메모리 기반(Memory-based): 시스템이 메모리에 저장된 사용자 이웃 정보를 이용해 추천 생성
- 모델 기반(Model-based): 사용자 행동을 모델링한 후 이 모델을 기반으로 추천 생성
- 메모리 기반 방식이 정확도 측면에서 우수하지만, 모델 기반 방식은 대규모 데이터셋에 더 적합하다고 알려져 있습니다.
<추천 시스템이 사용하는 정보>
- 명시적 정보 (Explicit): 사용자가 직접 제공한 정보 (평점, 위시리스트, 댓글 등)
- 암시적 정보 (Implicit): 사용자가 의도치 않게 남긴 정보 (예: 구매 이력)
2. Related work
- 기존의 전통적인 콘텐츠 기반 추천 시스템 아키텍처에 feedback adjuster(피드백 조정기)를 추가하여 개인화된 콘텐츠 기반 추천 시스템을 제안한 연구 → 반복적인 구매 행동을 기반으로 고객의 선호도를 객관적으로 판단할 수 있어 주관적인 판단을 피할 수 있음
- Alibaba 웹사이트의 데이터셋을 기반으로 세 가지 주요 추천 알고리즘을 비교 분석 연구 → 딥러닝 기반의 CNN(합성곱 신경망) 추천 알고리즘이 다른 알고리즘보다 뛰어난 성능 보임
- 사용자의 피드백에서 제품 특성 정보를 추출하여 관련 없는 특성을 가진 제품은 추천하지 않는 방식으로 추천 품질을 향상시키는 접근법을 제안 연구
- 다양한 협업 필터링 알고리즘(K-최근접 이웃, Slope One, Co-clustering, 비음수 행렬 분해)을 비교 분석한 연구 → 아이템 기반 협업 필터링에서 K-최근접 이웃(K-NN) 알고리즘이 가장 우수
- 클라우드 컴퓨팅 플랫폼 위에 전자상거래 추천 시스템을 구축하는 솔루션을 구현한 연구 → 방대한 상품 및 사용자 정보 처리 능력 향상 및 비용 효율적인 고성능 컴퓨팅 가능
- 다양한 전자상거래 플랫폼에서 실시간 사용자 데이터를 수집 및 전처리하여, 이를 통합해 다음 단계의 데이터 마이닝을 준비하고 빅데이터 기반 추천 시스템으로 개인화된 상품을 자동 추천하는 접근 제안 연구
- 고객의 선호도를 파악하기 위해 개선된 conjoint analysis 제안 연구 → 일반화 선형 모델, 결정 트리, 랜덤 포레스트, 그래디언트 부스팅 트리, 서포트 벡터 머신 등과 비교, 여러 속성 중 최적 가격의 제품을 선택할 때 효과적
3. Background
- 일반적으로 추천 시스템은 다음 세 가지 요소를 기반으로 작동함
- 사용자 집합 U
- 상품 집합 P
- 효용 함수(utility function) h: 사용자가 특정 상품에 대해 얼마나 흥미를 가지는지를 수치로 나타냄
- 따라서 추천 시스템은 최대화해야 할 함수로 정의
∀𝑢 ∈ 𝑈, 𝑖′𝑢 = argmax₍𝑖∈𝐼₎ ℎ(𝑢, 𝑖)
- I: 사용자 U에 대해 추천 가능한 제품 집합
- h(𝑢, 𝑖): 특정 사용자 u가 상품 i에 대해 가질 관심도의 정도
- 추천 시스템에서 상품 집합 I의 규모나 구성에 따라 추천 결과의 정확도와 적합성이 달라질 수 있으므로 중요
- 효용 함수 h의 선택은 사용하는 접근 방식에 따라 달라짐
- 협업 필터링(Collaborative Filtering): 사용자 간 또는 아이템 간의 유사도(similarity)를 기반으로 h를 정의
- 콘텐츠 기반 필터링(Content-based Filtering): 아이템의 특성(attribute 또는 feature)에 기반해 h를 정의
3.1. Collaborative Filtering
- collaborative filtering은 여러 사용자의 협력을 활용하여 추천을 생성하는 방식
- 작동 방식
- 사용자로부터 리뷰나 구매 이력 같은 정보를 수집하여 관심사 파악
- 이 정보를 다른 사용자들과 비교하여 가장 유사한 사용자들 찾기
- 이와 유사한 사용자들에게 적절한 제품 추천
- collaborative filtering은 두 가지 중 하나의 방식으로 구현 가능
- 메모리 기반 (Memory-based): 유사한 사용자 정보를 메모리에 저장하고 그에 기반하여 추천
- 모델 기반 (Model-based): 수집한 정보를 기반으로 사용자 선호 모델을 생성하여 추천
- 메모리 기반 방식에서는 일반적으로 두 가지 유사도 측정 기법이 많이 사용됨
- 코사인 유사도 (Cosine Similarity): 암시적 정보 사용 시(ex. 구매 이력)
- 피어슨 상관계수 (Pearson Correlation): 명시적 정보 사용 시(ex. 평점 데이터)
- 모델 기반 협업 필터링에서는 세분화(Segmentation) 등의 기법을 활용하여 제품 구매나 견적 선택에 영향을 주는 잠재적 정보(latent information)를 탐지
3.2. Trusted Network
- 신뢰 네트워크(trust networks)는 collaborative filtering과 유사한 원리를 사용하지만 사용자 간 유사성 개념을 한 단계 더 확장한 개념
- 신뢰 네트워크에 대한 연구는 "사용자가 제품을 구매하게 되는 이유는 협업 필터링에서 사용하는 전통적인 유사도 이외의 요인들도 존재할 수 있다"는 가설에서 출발
- 이 가설은 현실 세계에서 사람들이 친구나 신뢰할 수 있는 사람에게 조언을 구하고 제품에 대해 대화하는 경향이 있다는 점에서 기인함
- collaborative filtering이 개인의 프로필 기반 유사도를 사용하는 반면 신뢰 네트워크는 사용자 간의 신뢰 관계 자체에 초점
<주요 이점: cold start problem 완화>
- collaborative filtering 기반 시스템에 신뢰 네트워크를 추가하면 콜드 스타트 문제(cold start problem)를 완화할 수 있음
- 즉, 새롭게 시스템에 가입한 사용자도 다른 사용자들과 신뢰 관계가 있다면 추천을 받을 수 있음
- 이를 위해서는 해당 사용자가 시스템 내 다른 사용자와 이미 연결되어 있어야 하고, 사용자의 1차 신뢰 네트워크에서 상품을 찾지 못하면 2차 신뢰 네트워크로 탐색 범위를 확장할 수 있어야 함
- 하지만 이런 방식은 검색 범위를 멀리 확장할수록 커버리지는 높아지지만 추천 정확도는 낮아지는 단점도 존재
<신뢰의 두 가지 유형>
- 맥락 의존적 대인 신뢰 (Context-specific interpersonal trust)
- 특정 상황에서만 사람들을 신뢰하는 경우
- ex. 영화 볼 때는 친구를, 집을 살 땐 부동산 중개인을 신뢰
- 비개인적(시스템적) 신뢰 (Impersonal/systematic trust)
- 사용자들이 속한 그룹에 기반한 일반적 신뢰
- ex. 같은 커뮤니티에 속해 있다는 이유로 서로를 신뢰
3.3. Latent model
- 잠재 모델(latent model) 기반의 추천 시스템은 신뢰 네트워크나 협업 필터링 방식과는 달리, 추천을 수행하는 동안 사용자 정보를 메모리에 유지하지 않음
- 대신 사용자 정보를 데이터 마이닝 기법을 이용하여 모델로 변환
- 이 모델을 만들기 위해 먼저 임의의 파라미터로 초기 학습을 진행한 후 cost function을 이용해 파라미터를 정교하게 조
- latent model은 사용자와 제품 간의 명시적인 연결을 찾기보다는 사용자가 어떤 상품을 구매하게 되는 숨겨진(잠재적인) 요인을 파악
- 기존 시스템에서는 드러나지 않던 사용자의 숨겨진 선호를 포착할 수 있다는 장점 존재(ex. 겉으로는 알 수 없지만 특정 사용자 그룹이 어떤 속성을 가진 제품을 더 좋아하는 경향 발견 가능)
- 하지만 추천의 이유를 명확히 설명하기 어렵다는 단점도 존재(latent factor는 가격, 색상 같은 일반적인 속성이 아니라 여러 특성이 혼합된 정체 불명의 요인일 수 있기 때문)
<Matrix Factorization>
- 잠재 모델을 구현하는 대표적인 방법 중 하나
- 사용자와 제품을 잠재 공간(latent space)에서 벡터로 표현하고 이 두 벡터의 내적을 통해 추천 점수를 계산
- 초기 행렬은 행(row)에 사용자, 열(column)에 제품이 배치된 형태
- 이 행렬을 분해하여 각 사용자와 제품을 잠재 공간 상의 벡터로 변환
- 두 벡터 간 내적 결과가 추천 점수가 됨
- 실제 추천 시스템 데이터는 대부분 희소(sparse)하고 불균형적이므로 잠재 공간에 불필요한 노이즈가 많이 추가되지 않도록 주의
3.4. Association rules
- 연관 규칙(association rules)은 일반적으로 대규모 데이터셋에서 반복적으로 나타나는 패턴을 발견하기 위해 사용됨
- 신뢰 네트워크처럼 협업 필터링과 결합하여 추천 시스템의 정확도를 높이는 데 사용되기도 함
- 연관 규칙은 확률적 인과관계(probabilistic cause-effect model)를 따르므로, 시스템은 여러 이벤트들을 분석하고, 어떤 결과(사실)가 발생하기 전 공통적으로 나타나는 사례들을 그룹화함
<Association rules 기반 추천 시스템의 구조>
- 거래 이력(transaction history)을 바탕으로 연관 규칙을 추출하여 추천에 활용
- 문제점:
- 추출되는 규칙의 수가 너무 많아져 유의미한 지식 도출이 어려움
- 규칙의 수, 신뢰도(confidence level) 같은 명시적인 파라미터 지정이 필요함
- 이를 보완하기 위해 품질 관리가 내장된 연관 규칙 생성 모델이 제안됨
<Association rules의 두 가지 형태>
- 상품 간 연관: 예) 제품 A와 B를 좋아하는 사람은 제품 C도 좋아한다
- 사용자 간 연관: 예) 사용자 A와 B가 좋아하는 상품은 사용자 C도 좋아할 가능성이 높다
→ 사용자 간의 직접적인 유사도가 없더라도 이러한 규칙 간의 중첩 관계를 분석하여 추천 가능
<문제점 및 특징>
- 모델을 이용해 연관 규칙을 생성하면 품질은 향상되지만 여전히 생성되는 규칙 수가 지나치게 많아 추천 신뢰도가 떨어지는 문제가 있음
- 연관 규칙은 본질적으로 두 개 이상의 특징(feature)의 조합으로 구성된 참/거짓 진리표로 표현 가능
- 대규모 데이터셋에서 특징 간 관계를 추론하는 if-then 구조의 규칙들을 생성
<Association rule의 3가지 주요 index>
Support (지지도) | 특정 항목(단독 또는 조합)이 데이터셋에 등장하는 비율 |
Confidence (신뢰도) | A가 주어졌을 때 B가 함께 등장할 확률 (0~1 사이) |
Lift (향상도) | X와 Y가 독립적일 때 기대되는 지지도에 비해 실제 지지도의 비율 → 1보다 크면 양의 상관관계 |
- Apriori 알고리즘
- 자주 등장하는 항목 집합(frequent item-sets)을 기반으로 연관 규칙 생성
- 트랜잭션 데이터에서 작동하도록 설계됨
- 너비 우선 탐색(BFS)과 해시 트리(hash tree)를 통해 아이템 집합의 조합을 반복적으로 생성
- 후보 항목을 하나하나 생성하며 빈도 조건을 만족하는 집합을 추출
- FP-Growth 알고리즘
- Apriori의 개선 버전
- 후보 집합 생성 없이 빈번한 항목 집합을 추출
- 분할 정복(divide-and-conquer) 방식 채택
- FP-Tree (빈번 패턴 트리)라는 압축된 전용 트리 구조를 사용해 메모리 효율성과 속도 향상
- 대용량 데이터에 적합한 고성능 알고리즘
Association rule은 고객 행동 분석, 장바구니 분석, 상품 및 고객 분류, 제품 카탈로그 구성, 매장 운영 관리 등에 사용될 수 있고, AIS, SETM, Apriori, FP-Growth 등의 알고리즘에 적용할 수 있다.
4. Methodology
- 고객의 구매 의사결정 문제를 해결하고, 매출을 증대시키기 위해서는 정확하고 효율적인 상품 추천 시스템의 구현이 중요
- 해당 논문은 연관 규칙 기반 추천 시스템(Association Rule-Based Recommender System), FP-Growth 알고리즘을 적용
- 이 알고리즘은 높은 정확도를 유지하면서도 구현과 설명이 용이하다는 장점이 있어 직관적 해석이 가능
4.1. Data visualization
- 사용된 데이터셋: UCI Machine Learning Repository의 "Online Retail" 데이터
- 이 데이터는 영국에 등록된 한 전자상거래 회사의 실제 거래 데이터로 구성되어 있으며, 총 406,829건의 거래 기록 포함
- 해당 회사는 주로 독특한 선물용 제품을 판매
- 데이터셋에 포함된 정보: 고객 ID, 인보이스 번호, 상품 코드, 상품 설명, 구매 수량, 구매 날짜, 단가, 인보이스 총액, 국가
4.2. Data pre-processing
- 고객이 실제로 장바구니에 담은 상품만 남기고 회사 측에서 증정한 무료 상품은 데이터에서 제거
- 각 고객이 구매한 상품들을 하나로 묶어 새로운 데이터셋 구성 = 이 데이터셋에서는 각 행이 하나의 거래(인보이스)를 나타내며 해당 고객 ID와 함께 구매한 모든 상품 정보가 포함됨
4.3. Association rules modelling
- 연관 규칙을 도출하기 위해 해당 연구에서는 FP-Growth 모델 사용 → 거래 이력을 바탕으로 데이터셋 내에서 가장 자주 발생하는 연관 규칙 집합을 도출할 수 있음
- 이를 위해 고객들이 이미 구매한 제품들의 장바구니로 구성된 거래 기록 집합 데이터가 입력값으로 필요함
- 연관 테이블을 구축하기 위해 두 가지 하이퍼파라미터 설정
- minSupRatio (Minimum Support Ratio): 특정 아이템 집합이 "frequent" 집합으로 간주되기 위한 최소 지지도
- minConf (Minimum Confidence): 연관 규칙을 생성하기 위한 최소 신뢰도 임계값
- 이 설정을 바탕으로 시스템은 총 4,970개의 연관 규칙 생성
- FP-Growth 모델을 통해 도출된 연관 규칙들은 이후 각 고객의 장바구니 데이터에 적용되어 고객의 과거 구매 이력을 기반으로 새로운 제품을 추천할 수 있게 됨
- 추천된 제품들을 기반으로 예상 가격(Estimated Prices)도 계산됨
5. Model evaluation and results
해당 연구는 추천 시스템의 성능을 아래의 방식으로 평가함:
1) 고객이 다음에 구매할 제품의 평균 확률(Paverage) 계산: 추천된 제품 중 실제 구매로 이어질 가능성의 평균치를 기반으로 효과 측정
2) 예측 및 추천된 제품들로부터 기대되는 수익(Expected Incomes)도 함께 계산
→ 평가 과정을 통해 제안된 추천 시스템을 실제로 도입했을 경우 매출이 얼마나 증가할 수 있을지 추정 가능
6. Conclusion
- 오늘날처럼 정보가 넘쳐나는 시대에 데이터 과잉(data overload)은 올바른 결정을 내리는 데 큰 장애물이 되고 있음
- 특히 전자상거래 이용자(e-consumers)가 혼란스러운 정보 속에서 자신의 관심사에 맞는 정보를 정확하고 빠르게 찾을 수 있게 하는 것이 모든 e커머스 기업에게 주어진 중요한 과제
- 이러한 배경에서 추천 시스템은 이러한 문제를 해결하고 사용자가 올바른 결정을 내릴 수 있도록 돕는 역할 수행
- 해당 연구는 FP-Growth 알고리즘을 활용한 연관 규칙 기반 추천 시스템을 구현한다는 목표를 달성했지만, 추천 시스템의 평가 지표 중 일부인 다양성(diversity), 설명 가능성(explainability)은 명확하게 정의하기 어렵다는 한계점도 존재
'Miscellaneous' 카테고리의 다른 글
[2025-1] 박제우 - Deep Anomaly Detection with Deviation Networks (0) | 2025.04.06 |
---|---|
[2025-1] 임준수 - 밑바닥부터 시작하는 딥러닝 리뷰, (CH 5.1,5.6) 계산 그래프, Affine/Softmax 계층 구현 (0) | 2025.03.26 |
[2025-1] 윤선우 - 밑바닥부터 시작하는 딥러닝 리뷰, (CH 5.3, 4) 역전파, 단순한 계층 구현하기 (0) | 2025.03.26 |
[2025-1] 박경태 - 밑바닥부터 시작하는 딥러닝 리뷰, (CH 5.5) 활성화 함수 계층 구현하기 (0) | 2025.03.26 |
[2025-1] 박경태 - 밑바닥부터 시작하는 딥러닝 리뷰, (CH 5.2) 연쇄 법칙 (0) | 2025.03.26 |