2. 목차
Introduction
대회 소개
대회 내 데이터 소개
일정 계획
Data Analysis
Data EDA
Data Preprocessing
Recommender
System Models
Memory Based Method
Learn-to-Rank Models
Conclusion
Results
Limitations
Further Research Areas
3. 1. Introduction 일정계획
3월 3일 3월 10일 3월 17일 3월 24일 3월 31일 4월 7일 4월 14일 4월 21일 4월 28일 5월 5일 5월 12일
팀결성
주제 탐색
데이터 분석
개념학습
방법론 탐색
데이터 전처리
모델링
결과 제출
공모전 참여기간
4. 1. Introduction
• 글로벌 SPA 의류 브랜드 H&M에서 Kaggle을 통해 열린 총 상금 $50,000의 대회
• 온라인 고객 쇼핑 경험을 향상시키기 위해서 개인화된 제품 추천 시스템을 구현하기 위한 목적으로
대회 개최
• 대회에서 제공하는 데이터들을 통해 향후 고객이 어떤 제품을 구매할지 예측하는 것이 목표
• 대회 개최 기간은 2022.02.08~ 2022.05.09 UDT(미국시간)
대회 소개
5. 1. Introduction 대회 내 데이터
데이터 파일 명 내용
Images 제품의 사진
articles.csv 제품의 특징에 대한 정보가 담긴 파일
customers.csv 고객의 개인정보가 담긴 파일
sample_submission.csv 예시로 만들어진 제출 양식
transactions_train.csv 고객의 제품에 대한 구매 정보가
6. 1. Introduction
이미지 데이터 (105542) Images
• 총 105542개의 제품의 사진이 존재함
• 제품 id로 이미지 파일이 명칭됨
대회 내 데이터 소개
7. 1. Introduction
고객 메타 데이터 (1371980, 7) customers.csv
• 총 1371980명에 대한 개인정보가 존재함
• 고객 id, 우편번호는 개인정보라서 암호화되어 있
음.
• 하나의 행은 고객의 고유 데이터를 의미함
대회 내 데이터 소개
Customer id 문자열로 이루어진 ID
FN 패션 뉴스 구독 여부
Active 커뮤니케이션 가능 여부
Club member status 회원 상태(신규, 활성화, 탈퇴)
Fashion news frequency 패션 뉴스 알람 주기
Age 나이(16~99)
Postal code 우편번호
8. 1. Introduction
제품 데이터(105542, 25) articles.csv
• 총 105542개의 제품에 대한 정보가 담겨져 있음.
• 하나의 행은 제품에 대한 특징 데이터를 의미
대회 내 데이터 소개
제품id 숫자로 이루어진 ID
옷 종류 제품 특징
옷 색상 제품 색상 및 무늬
옷 용도 및 사이즈 제품 착용자 및 용도 분류
…
10. 1. Introduction
거래기록 데이터(31788324, 5) transactions_train.csv
• 2018.09.20~2020.09.22기간 동안 발생한
약 3천만건의 거래기록이 담겨져 있음
• 하나의 행은 제품 1회 구매 기록을 의미함
대회 내 데이터 소개
T dat 구매 날짜
Customer id 고객 정보의 id
Article id 제품 정보의 id
Price 실제 가격의 /590
Sales channel id 구매 방식
(1: 오프라인, 2: 온라인)
11. 1. Introduction
샘플 양식 데이터(137980, 2) sample_submission.csv
• 대회에서 제공한 Baseline 제출 양식
• 고객 데이터에 등장하는 모든 고객에 대한 동일한
12가지 제품id가 담겨져 있음
• 샘플을 제출하면 0.0031점이 나옴
대회 내 데이터 소개
대회 제출물 조건 및 평가 방식
• 모든 고객에 대한 최대 12가지 아이템 리스트를 제출
• 평가는 2020.09.23~29일간의 거래기록을 참조해 얼마나 일
치하는지 Mean Average Precision@12를 통해 평가됨
• 틀린 예측에 대한 감점은 없음
변수 명 의미
U Customer의 수
P(k) Cutoff k에서의 정밀도
N 고객 당 예측 수
M 고객 당 실측값의 수
Rel(k)
K에 있는 항목인지 아닌지 판별하는지
시함수
12. 2. Data Analysis Data EDA
데이터 분석 접근법
• 이미지 파일
Images
• 테이블 데이터 파일
articles.csv, transactions_data.csv, customers.csv
• 거래기록을 일주일 단위로 분석한 결과 전체 아이템 중 약 17%만 등장, 전체 사용자 중 약 6%만 평균적으로 등장함.
13. 2. Data Analysis Data EDA
판매량 데이터 분석
• 전체 기록으로 제품별 판매량을 살펴보니 판매량은 롱-테일 분포를 띔
• 마지막 일주일 상위 12품목으로 제출 결과 0.0062를 얻음 (기존 0.0031)
상위12품목의 거래량은 전체 거래량 3% 밖에 안됨. -> 97%의 나머지 거래량은 반영하지 못함.
• 전체 거래기록을 확인한 결과 약 7만명의 사용자와 1000개의 아이템이 거래에 나타나지 않음(Cold Start)
• 거래기록을 일주일 단위로 분석한 결과 전체 아이템 중 약 17%만 등장, 전체 사용자 중 약 6%만 평균적으로 등장함.
14. 2. Data Analysis
각 주차 별 등장한 아이템 리스트들의 유사도 비교
Data EDA
Correlation of Articles=
𝑤𝑒𝑒𝑘(𝑛−1)∩𝑤𝑒𝑒𝑘(𝑛)
𝑤𝑒𝑒𝑘(𝑛−1)
등장하는 아이템 리스트는 가까울 수록 높은 유사율을 발견
• N주차에 대한 N-1주차의 아이템 리스트는 평균적으로
78%의 일치율을 보임
• N주차에 대한 N-1~N-3주차의 아이템 리스트 합집합은
평균적으로 90%의 일치율을 보임
미래 예측을 위한 아이템 후보군에는 최근에 등장한 아
이템 목록만 사용하는게 바람직하다고 판단함
15. 2. Data Analysis Data EDA
기준
1주내
재구매
비율
2주내
재구매
비율
3주내
재구매
비율
같은 제품
구매 5.1% 6.2% 6.6%
같은 제품군
구매 6.8% 8.5% 9.4%
같은 제품
그룹 구매 10.8% 14.3% 16.5%
5.1
6.2 6.6
6.8
8.5
9.4
10.8
14.3
16.5
0
2
4
6
8
10
12
14
16
18
1주내 재구매 비율 2주내 재구매 비율 3주내 재구매 비율
고객들은 동일한 제품을 재구매하는가?
같은 제품 구매 같은 제품군 구매 같은 제품 그룹 구매
16. Model Research
추천 시스템 정의
• 정보 필터링 시스템의 일종으로 특정 아이템에 대한 사용자의 “rating”, 혹은 “preference”를 예측하는 시스템을 의미
- Francesco Ricci, “Introduction to Recommender Systems Handbook”, Springer
추천 시스템을 구현하기 위해 사용한 방법론
1. 메모리 기반 추천 시스템
2. Learn-to-Rank 모델 기반 추천 시스템
3. Recommender Systems
17. Memory Based
• 메모리 기반 추천 시스템
1. 전체 거래기록에서 특정 기간 추출
2. 고객 정보를 통해 고객을 집단 분류
3. 샘플에서 고객 집단 별 거래기록 추출
4. 집단 별 사용자-아이템 구매 여부
행렬 생성
5. 차원 축소를 이용해 사용자-아이템
선호도 행렬 생성
6. 사용자 열에서 선호도 값이 가장 큰
12개 아이템 추천 진행
3. Recommender Systems
19. 사용자 – 아이템 행렬 축소 특잇값 분해 예시
고객 1 고객 2 … 고객 n
제품 1 0 1 … 0
제품 2 1 0 … 1
…
…
…
…
제품 m 1 0 … 0
구매여부에 대한 User-Item Matrix
차원축소를 통해 산출된 User-Item Matrix
고객 1 고객 2 … 고객 n
제품 1 0.002451 1.0067 … 0.00048
제품 2 0.05024 -0.00347 … 0.06416
…
…
…
…
제품 m 0.0264 -0.00634 … -0.00526
고객 1 고객 2 … 고객 n
선호도1 0 1 … 0
선호도2 1 0 … 1
선호도1 선호도2
제품 1 ~ ~
제품 2 ~ ~
…
…
…
제품 m ~ ~
• 차원 축소의 공분산 유지율 = 0.5 이상 지점에서 차원 축소 실시
• 차원의 크기가 너무 낮을 경우, 공분산 유지율이 너무 낮아지면서 데이터 훼손이 발생
• 차원의 크기를 너무 키울 경우, 계산하는데 걸리는 시간이 오래 걸리고/차원 축소 의미가 없음
Singular Value Decomposition
3. Recommender Systems
20. Memory Based
메모리 기반 추천 시스템 추가적인 특징
• 샘플 거래 기록에 등장하지 않은 Cold-Start 고객은 추천이 불가능
예측 시점 일주일 전 거래량 상위 12품목 추천 진행
• 거래기록 샘플링 할 시, 아이템 거래 횟수가 1 이하인 아이템 제거 후 사용자-아이템 구매 여부 행렬 생성
• 중복제거를 한 경우 오히려 하지 않은 것이 좋게 나옴 기존에 구매한 제품도 재 추천되는 경우 존재
9.09~22의 거래기록, 1회 이하로 거래된 아이템 제거, 중복 제거X, 추천 경우 MAP@12 점수 0.01369
3. Recommender Systems
21. Memory Based
메모리 기반 협업 필터링 방식의 단점
• 필요로 하는 메모리가 많음 샘플 크기가 클수록 성능은 좋아지나, 계산량이 비약적으로 상승
• Cold-Start 고객에 대한 추천이 어려움
구글, 유튜브, 링키드인, 등 유명 기업 추천 시스템에서 사용되는 Candidate Retrieval + Ranking 방법론을 사용
3. Recommender Systems
22. LGBM
Candidate Retrieval + Ranking 추천 시스템 원리
• 1 단계 : 전체 데이터 베이스에서 사용자 정보, 구매 이력 등을 활용해서 후보군 생성함
• 2 단계 : 생성된 후보군에서 개인 사용자에 대해 추가적인 아이템 정보, 이전 사용자 정보 등을 활용해서
유의미한 아이템 추출, 랭킹(사전에 학습이 완료된 Ranker 모델)을 진행함
• 3 단계 : 랭킹이 가장 높은 k개의 아이템을 사용자에게 추천함
3. Recommender Systems
23. LGBM
후보군 생성(Candidate Retrieval) :
Rule-based Candidate Retrieval
정해진 기간 내 구매 기록, 가장 많이 구매된 아이템 등 특정 규칙을 통해서 후보군 생성
가장 등장 빈도가 높은 아이템에 대한 거래 기록, 고객이 구매한 아이템에 대한 거래 기록 등 적용
3. Recommender Systems
24. LGBM
랭킹(Ranking):
• 사전 학습된 Ranker(“Ordinal Regression”) 모델을 활용해서 사용자에게 해당하는 후보군 아이템의
순서를 예측하고 가장 높은 k개의 후보들을 사용자에게 추천하는 방식.
3. Recommender Systems
25. LGBM
Ranking(“Ordinal Regression”) Models:
• 정보 검색을 위해서 입력된 질의(query)에 대한 후보들을 가장 적합한 순으로 데이터들을 나열하는 작업을
진행하는 모델들을 의미함
3. Recommender Systems
- Frakes, William B.; Baeza-Yates, Ricardo (1992). “Information Retrieval Data Structures & Algorithms.”
26. LGBM
후보군 생성 원리:
• 주차 별 구매 기록 데이터를 활용해서 샘플에 등장하는
모든 사용자에 대해서 Positive 샘플링, Negative
샘플링을 통해서 생성함.
• Positive 샘플링: 실제 고객 구매 이력
• Negative 샘플링:
각 주차 별 상위 12품목 중 고객이 구매하지 않은 제품
구매 기록 임의 생성
3. Recommender Systems
27. LGBM
Light GBM Ranker
• Gradient Boosting Decision Tree의 종류 중 하나인 LGBM은 수직적 분기를 통해 학습을 진행.
• LGBM Ranker 분기는 Lambda Rank Loss 변화량이 가장 큰 나무를 계속 분기 시키는 형태임.
3. Recommender Systems
28. LGBM
훈련 데이터 (구매 여부의 0-1로 Partial Order 생성)
• X: 아이템 * 변수 데이터
• y: 순서(0~n , 0-1로 부분적인 순서도 가능) 바탕으로 학습을 진행
3. Recommender Systems
거래기록 제품정보 고객정보 y-label
29. LGBM
Light GBM Ranker Test Data
• 예측 시점을 기준으로, 모든 행이 Negative 샘플링이 된 후보군을 바탕으로 예측을 진행
• 사용자 후보군에 대한 상위 12개 예측값을 기준으로 추천 진행함.
3. Recommender Systems
Ranker 모델
30. Feature Engineering
3. Recommender Systems
Feature Engineering:
• 도메인 지식을 활용해서 Raw Data에서 feature들을 추출하는 기법 의미
- "Machine Learning and AI via Brain simulations". Stanford University.
• 일반적인 추천 시스템, Ranker 시스템의 경우 Raw Data를 활용하는 것보다 Feature Engineering을
통해서 추가적인 low-level feature를 같이 사용하는 것이 성능이 더 높다고 알려짐.
• 본 프로젝트에서는 Raw Data를 활용해서 거래량 빈도가 가장 높은 아이템의 비율 등과 같은 모델 학습을
위한 low-level feature를 다량으로 생성함.
31. 같은 고객에 의해 구매되는 아이템 조합 찾기(Feature Engineering 예
시)
1. 거래기록을 일주일 단위로 추출
2. 직전 일주일에 등장하지 않은 아이템의 거래기록 삭제
3. 특정 아이템을 구매한 고객들의 상위 구매 목록 5개 추출
4. 모든 아이템에서 같이 구매한 상위 5개 추출
Feature Engineering
3. Recommender Systems
33. LGBM
Feature Engineering
• 다른 모델에서 자주 사용되는 Feature들을 참조해서 약 40개의 Low-level feature를 추가적으로 생성
3. Recommender Systems
거래기록 +
Negative Samples
제품정보
신규정보
(low-level features)
34. LGBM
Feature Engineering 안 한 경우
• 점수 결과 : 0.02087
• 현재 리더보드로 환산할 경우 등수 : 1,703 등 / 2,954 팀
Feature Engineering 한 경우
• 점수 결과 : 0.02918
• 현재 리더보드로 환산할 경우 등수 : 51 등 / 2,954 팀
3. Recommender Systems
35. LGBM
3. Recommender Systems
Candidate Retrieval + Ranking 추천 시스템 특징
• 후보군을 생성하는 방법론 및 모델 학습을 위해서 사용되는 데이터에 따라 모델의 성능이 갈림
• 메모리 기반에 비해 상대적으로 사용하는 메모리 양이 적어 더 빠른 속도로 실험 가능
• 단점으로 Cold-Start 고객에 대한 추천에 어려움 존재
36. Results
4. Conclusion
최종적으로 MAP@12 점수 0.029(= 2.9% 정확도) 달성 전체 팀 중 51등에 해당하는 점수
0.01494
0.02087
0.02918
0
0.005
0.01
0.015
0.02
0.025
0.03
0.035
Memory Based Model LGBM Ranker LGBM Ranker
Feature +40
점수 변화
2105
1703
51
1
701
1401
2101
2801
Memory Based Model LGBM Ranker LGBM Ranker
Feature +40
등수 변화
37. 4. Conclusion Further Areas for Research
Candidate Retrieval + Ranking 방법론 추가적인 연구 영역
• Candidate Retrieval 방식을 규칙 기반이 아닌 강화학습 등 Recall을 높을 수 있는 방법론 적용
• Ranking: 다양한 기계학습 알고리즘(CatBoost Rank 등) 사용 및 앙상블 기법 적용
• Feature Engineering : 추가적으로 더 좋은 Feature들을 생성 및 학습에 적용