데이터 분석 프로젝트를 진행한 COLLABO-AZ 팀에서는 아래와 같은 프로젝트를 진행했습니다.
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
20기 정지혜 이화여자대학교 통계학과
20기 김지민 중앙대학교 응용통계학과
20기 오태연 단국대학교 정보통계학과
20기 최은선 한양대학교 에리카캠퍼스 정보사회미디어학과
3. 분석 20기 김지민
중앙대 응용통계학
소프트웨어학 전공
분석 20기 오태연
단국대 정보통계학 심화 전공
분석 20기 정지혜
이화여대 통계학
컴퓨터공학 전공
분석 20기 최은선
한양대 ERICA
미디어학, ICT융합학 전공
COLLABO AZ 03
제 19회 BOAZ BIG DATA CONFERENCE
팀 소개
1 1
팀원 구성
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
4. COLLABO AZ 04
제 19회 BOAZ BIG DATA CONFERENCE
팀 소개
1 2
프로젝트 방향성
기업컨택및
데이터확보 10월
Task 2.
협업준비및
추천스터디 9월
Task 1.
고객세그멘테이션
12월
Task 3.
추천시스템
모델링및
성능테스트 1월
Task 4.
컨퍼런스
발표
Task 5.
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
5. COLLABO AZ 05
제 19회 BOAZ BIG DATA CONFERENCE
기업 소개
2 1
About ROUBIT
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
매일 루틴과 마음을 관리할 수 있는 셀프멘탈케어 앱
성공한 습관의 수 7,500,000
누적 다운로드 수 국내/해외 20만 / 50만
사용자 평점 4.8 / 5
루틴 기록 루틴 통계 감정, 일기 기록 토끼 꾸미기, 루빗과 대화 등 AI 기능
6. COLLABO AZ 06
제 19회 BOAZ BIG DATA CONFERENCE
기업 소개
2 2
제공 데이터
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
루틴 데이터
유저 데이터
감정 데이터
유저 별 성공한 루틴의 데이터
routineId PK , 업데이트한 날짜, 반복요일 주기 , 루틴 종류, title 유저가 기록한 루틴의 이름
유저의 기본 정보가 포함된 데이터
sex, 누적접속일, 사는 곳 대륙/국가
유저가 기록한 일기의 정보가 포함된 데이터
emotionid PK , 감정 종류, 작성한 날짜
* 가명 처리 후 데이터 전달
7. COLLABO AZ 07
제 19회 BOAZ BIG DATA CONFERENCE
협업 프로세스
3 1
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
루빗은 현재
추천시스템을 도입하고 싶어요.
루빗 내 데이터 인력이
부족해요.
타 앱과 차별화가 필요해요.
AI를활용한다른습관관리어플과
차별되는강력한신규서비스가필요하다.
루빗은유저행동기반추천알고리즘을
도입고려하고있는상황이다.
풍부하고 다양한 데이터에 비해
AI, 데이터 관련 인력 부족으로
데이터 활용도가 낮은 실정이다.
Q. 어떻게 사용자를 늘릴 수 있을까요?
문제 인식
8. COLLABO AZ 08
제 19회 BOAZ BIG DATA CONFERENCE
협업 프로세스
3 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
유저 분석 및 클러스터링 추천시스템 개발
사용자 관점 아이디어 제공
사용자관점에서인사이트를제공하고
데이터활용범위를확대한다.
고객세그멘테이션을통해유저를분류하고
이를바탕으로마케팅아이디어를제안한다.
군집 별로 다르게 추천시스템을 적용하고
앱 내 신규 추천 서비스를 생성한다.
A. 데이터를 통한 고객 분석과 추천시스템 구축을 돕겠습니다!
문제 해결
9. COLLABO AZ 09
제 19회 BOAZ BIG DATA CONFERENCE
협업 프로세스
3 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
프로젝트 워크플로우
10. COLLABO AZ 10
제 19회 BOAZ BIG DATA CONFERENCE
고객 세그멘테이션
4 1
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
데이터 전처리
루틴 데이터
유저 데이터
감정 데이터
유저 별 루틴 시도 횟수 총합 , 최장 지속 기간 평균 , 추천 루틴 사용 비율 , 알람 사용 평균 변수 생성
결측치 제거 후 대륙 , 나라 변수 생성 및 영어권 대륙, 나라 사용 유저만 추출
* 해외 유저 수 국내 유저 수
12개의 감정 angry, busy, chaotic, … 으로 positive/negative/neutral 감정 비율 생성 최댓값 1
11. COLLABO AZ 11
제 19회 BOAZ BIG DATA CONFERENCE
고객 세그멘테이션
4 1
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
데이터 전처리
통합 데이터 프레임 15265행 생성
sex, Subscription 구독 여부 , CumulAccessDate 누적접속일 , neutral, negative, positive,
RoutineTryCount 루틴시도횟수 합 , repeatDays 반복 요일 수 일주일에 몇 회 한 루틴인지 , rec use 추천 루틴 사용 비율 ,
WriteDiary 일기 작성 횟수 , RoutineSuccess 루틴 성공 횟수 , TalkwithRoubit 루빗과 대화 기능 사용 횟수
sex Subscription CumulAccessDate neutral negative positive RoutineTryCount repeatDays rec_use WriteDiary RoutineSuccess TalkWith
Roubit
0 female False 0 0.000000 0.0 0.0 0.0 0.000000 0.0 0.0 0.0 0.0
1 female False 17 0.000000 0.0 0.0 2.0 0.000000 0.0 0.0 0.0 0.0
2 female True 302 0.444444 0.5 0.0 70.0 0.114754 0.0 47.0 1288.0 7.0
3 male False 103 0.999999 0.0 0.0 14.0 0.000000 0.1 0.0 0.0 1.0
4 female False 13 0.000000 0.0 0.0 1.0 0.000000 0.0 0.0 0.0 0.0
* 보안 상 가상 데이터 프레임을 제시
12. COLLABO AZ 12
제 19회 BOAZ BIG DATA CONFERENCE
고객 세그멘테이션
4 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
클러스터링
여러 군집 분석 방법 K Means, DBSCAN, GMM, FCM 을 실험해본 결과, 실루엣 계수가 가장 높은 K means을 채택 n 5
세 데이터 중 누적접속일, 중립 감정 기록, 부정 감정 기록, 긍정 감정 기록, 루틴 시도 횟수, 반복일 수, 일기 작성 횟수, 루틴 성공 횟수, 대화기능 사용 횟수
총 9개의 feature를 추출하여 군집화 진행 이 외에 성별, 구독여부, 생일, 타 기능 사용 등의 feature는 유의미한 결과가 나오지 않아 제외
0, 1 클러스터는 활동을 잘 안하는 유저이고 수가 압도적으로 많음 / 2, 3, 4 클러스터는 활동을 꽤 하는 유저
13. COLLABO AZ 13
제 19회 BOAZ BIG DATA CONFERENCE
고객 세그멘테이션
4 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
클러스터링
구분
누적 접속/
루틴 시도
13,500원
감정
20GB
기능 활용
1개
특징
적음
적음
적음
그래도 하려고는 함
매우 적음
적음
매우 적음
거의 활동을 안 함
매우 많음
매우 긍정적
매우 다양함
모든 기능에 가장 많은 관심
많음
매우 부정적
다양함
AI대화와 AI편지에 관심
많음
매우 중립적
다양함
군집 3보다는 서비스 덜 사용
0⃣ 1⃣ 2⃣ 3⃣ 4⃣
⭐
⭐⭐ ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐ ⭐⭐⭐
*부가서비스 미션, 창고, 상점, 명언보기, 포춘쿠키보기, 통계, AI대화, AI편지, 루빗과 대화, 일기작성
14. COLLABO AZ 14
제 19회 BOAZ BIG DATA CONFERENCE
고객 세그멘테이션
4 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
마케팅 활용 방안
0⃣ : 간편하고 소모적인 미니미션 도입
ex 가제 미라클 7일, 7일 동안 단계를 업그레이드하면서 점점 리워드의 크기를 키우기
1⃣ : 푸시 알림을 통해 유저가 관심을 가질 만한 내용을 알림으로 전송,
장기 미접속 유저를 대상으로 하는 리워드 프로그램 도입
ex 지금 돌아오시면 멤버십 1달 이용 혜택을 드려요.
2⃣ 유저 간 소통을 도와주는 커뮤니티 기능, VIP 혜택이나 프리미엄 서비스 구상
3⃣ : 감정을 분석한 후, 감정 상태에 따라 안정화를 도와줄 수 있는 컨텐츠 인용구, 이미지, 이야기 등 나 음악 추천
4⃣ 해당 유저들에게 피드백을 수집하여 개선점 찾기, 경쟁적으로 할 수 있는 서비스 구상
15. COLLABO AZ 15
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 1
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 데이터 마트 구축
추천 모델에 들어갈 Feature Description
루틴 생성 날짜 DATETIME Sequential 모델에 사용
유저 아이디 INT 약 9천명 유저를 기준에 따라 Sequential, CF로 나눌 예정
루틴 카테고리 STR 루틴 아이디로 사용, 63개 카테고리, ex. Medication , Refreshing
영어를 사용하는 유저의 루틴 데이터를 사용해 모델을 구축
원본 데이터에는 루틴 title 컬럼 ex. Plan Tomorrow s Schedule , Drink a glass of water 이 있어
이를 바로 추천 모델의 item id로 사용할 예정이었으나, 불용어가 많아 이를 처리해야겠다고 판단
모든 루틴 title 을 대상으로 토픽 모델링을 진행해 각 title 을 category 로 매핑 후 이를 item화
16. COLLABO AZ 16
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
루틴 데이터의 경우 일반적인 추천 시스템의 user item 관계와 다름.
루틴 타이틀의 문제점?
1. 사용자 정의로 이루어지므로, 입력 형태가 지정되지 않음.
2. 불용어가 포함될 수 있음.
불용어를 배제하고, 같은 종류의 루틴은 같은 item으로
인지될 수 있도록 포괄적인 category로 묶을 필요성을 느낌.
Problem Solution
비슷한 내용의 문서는 같은 토픽으로 묶어주는 비지도 학습 방법인
토픽 모델링의 방법론을 적용
How about Text Classification?
Classification의 경우 지도학습이기에 labeling과정이 필요,
비용 및 인적자원이 부족으로 비지도학습인 토픽모델링으로 대체함.
토픽 모델링
💡 Topic Modeling이란?
문장들의 Corpus에 내재되어 있는 토픽들을 끌어내는데 쓰이며,
전체 문서를 하나의 주제로 보고 주제를 구성하는 토픽을 찾아내어
문장을 분류하는 방법론
17. COLLABO AZ 17
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
토픽 모델링
BERTopic 이용
BERT 기반 Embedding UMAP을 이용한 차원 축소
HDBSCAN을 이용한 클러스터링
Class based TF IDF를 이용한 토픽 분류
임베딩 모델과 군집화 알고리즘을 활용하여 문서의 의미에 따라 군집화가 되기 때문에
짧은 문장에 대해서도 토픽모델링을 하기에 용이
길이가 짧은 루틴 타이틀 데이터 특성에 적합
CTM Contextualized Topic Models , BART TL 등 다양한 토픽 모델링 방법들과 비교했을 때
주제 다양성 Topic Diversity 및 주제 일관성 Topic Coherence 가 우수
18. COLLABO AZ 18
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
토픽 모델링
BERTopic 이용
1. Text Preprocessing English Data만 추출, Spacy를 이용해 토큰화
2. Topic Modeling BERTopic을 이용해 562개의 토픽으로 분류
auto_topic_model = BERTopic(language="multilingual",nr_topics="auto",
calculate_probabilities=True, verbose=True)
# topic 개수는 auto로 지정!
3. ChatGPT Prompting ChatGPT 프롬프팅을 이용해 더 정교한 Topic Representation으로
생성, 중복 토픽을 제거하여 63개의 포괄적인 카테고리로 분류
BERT 기반 Embedding Class based TF IDF
19. COLLABO AZ 19
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
토픽 모델링
BERTopic 이용
ChatGPT Prompting을 이용한 BERTopic 토픽 Representation 및 item 재정의
Morning wake bed up wakeup am Wake up in the morning
Room clean stairs up house house Clean up my house
BERTopic의 경우 단순한 단어의 나열로 topic을 생성
ChatGPT Prompting을 이용해서 더 정교한 표현의 topic representation을 생성해주고,
겹치는 내용의 representation은 60여개의 Topic Category로 분류
Default Representation ChatGPT Representation
20. COLLABO AZ 20
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
토픽 모델링
BERTopic 이용
ChatGPT Prompting을 이용한 BERTopic 토픽 Representation 및 item 재정의
BERTopic
Embeddings
Dimensionality
Reduc4on
Cluster
Documents
Topic
Representa4on
< Aspect1 >
< Aspect2 >
62개
Category
501개
Category
이때, 두가지 방법으로 라벨 카테고리 및 item 정의
시도 1. ✅
63개의 라벨로 대분류하여 63개의 item으로 추천 모델링 진행
이후, 추가적인 chatGPT prompting으로 세부적인 루틴 추천
시도 2. ❌
501개의 라벨로 더 정교한 representation 생성
501개의 item으로 추천 모델링 진행
최종적으로 시도 1 의 방법을 사용하는 것으로 결정
21. COLLABO AZ 21
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
RECSYS
Sequential Recommendation
Filtered user
Sequential
Routine
Dataset
Sequential
Model
* 팝업에 들어갈 문구를 생성하기 위한 루틴 카테고리 추천
GPT
Model
Hybrid Recommendation
Recommended
Routines
Pop up
Message
Collaborative Filtering
Filtered user
User Routine
Matrix
Dataset
CF
Model
* 추천 탭에 들어갈 루틴 리스트를 생성하기 위한 루틴 카테고리 추천
GPT
Model
Recommended
Routines
Tab List
추천 모델 적용
22. 추천 모델 적용
User Filtering
1차 필터링 루틴 성공 횟수 1회, unique한 label이 1개인 유저 2522명
2차 필터링 앱을 하루만 사용한 유저 2906명
3차 필터링 : 자신의 루틴을 고수하는 유저 다양성 지표 0.15 unique한 label이 4개 이하 65명
4차 필터링 루틴 성공 횟수가 3회 이하인 유저 304명
9133명 중 최종 모델에 들어갈 3336명의 유저
SR GNN BERT4Rec
루틴 성공 횟수가 7회 이하인 유저 848명
4차 필터링 유저 304명
루틴 성공 횟수가 8회 이상인 유저
2488명
* 다양성 지표 unique한 루틴 갯수 / 성공 횟수
Popularity based
Recommendation
History to GPT Prompt
LightGCN
총 유저 3336명
COLLABO AZ 22
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
23. COLLABO AZ 23
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
LightGCN
user item 상호작용 데이터에서 Graph Convolution을 통해 임베딩을 학습하는 Collaborative Filtering Model
24. COLLABO AZ 24
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
LightGCN
user item 상호작용 데이터에서 Graph Convolution을 통해 임베딩을 학습하는 Collaborative Filtering Model
하이퍼 파라미터 명 값
latent dim 128
n layers 3
reg 1e 4
epochs 124
Lr 0.001
batch size 1024
top k 10
최종 성능 지표 값
train loss 0.0825
NDCG 10 0.343
HIT RATE 10 0.66
25. COLLABO AZ 25
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
SR GNN
Graph Neural Networks를 사용한 Session based 추천시스템, GNN을 기반으로 복잡한 아이템 Transition을 포착
루틴 성공 횟수가 7회 이하인 user들에 대해 Session based Recommendation 적용
Why? 세션 기반 추천은 장기적인 선호정보가 아닌 user의 현재 세션 데이터만을 기반으로 예측
세션 길이가 긴 데이터보다 짧은 데이터에 유리
루틴 성공 횟수가 적은 신규 user 혹은 non active user에게 적용하도록 설계
26. COLLABO AZ 26
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
SR GNN
Graph Neural Networks를 사용한 Session based 추천시스템, GNN을 기반으로 복잡한 아이템 Transition을 포착
하이퍼 파라미터 명 값
hidden size 100
Lr 0.001
batch size 64
Epoch 30
Optimizer Adam
Loss Function Cross Entropy
최종 성능 지표 값
train loss 2.9882
HIT RATE 10 0.6995
27. COLLABO AZ 27
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
BERT4Rec
BERT4Rec은 병렬처리로 길이가 긴 Sequence를 처리하기에 오랜 시간이 걸리지 않고, 양방향 정보를 학습 가능한 모델
28. COLLABO AZ 28
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 3
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 모델 적용
BERT4Rec
BERT4Rec은 병렬처리로 길이가 긴 Sequence를 처리하기에 오랜 시간이 걸리지 않고, 양방향 정보를 학습 가능한 모델
하이퍼 파라미터 명 값
max len 100
hidden units 50
num layers 2
dropout rate 0.5
Lr 0.001
batch size 128
Epoch 100
최종 성능 지표 값
train loss 2.55872
NDCG 5 0.48696
HIT RATE 5 0.74045
29. COLLABO AZ 29
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 4
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
추천 문구 생성
GPT API 활용
GPT Prompt Engineering GPT API가 답변을 일정하게 생성하도록 예시를 제공하여 동일한 포맷으로 답변을 생성하도록 지시
앱 내 추천 페이지 : LightGCN 모델 결과를 받아 세부적인 루틴 생성
앱 푸쉬 알림 문구 생성 : SR GNN, BERT4Rec 모델 결과를 받아서 생성
30. COLLABO AZ 30
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 5
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
프로그램 시연
user Id ???
추천 받은 루틴 schedule management
추천 문구 by GPT
Streamline your schedule effortlessly and stay on top of
your day with our dynamic routine management,
empowering you to seize each moment with confidence.
1. 푸쉬 알림
31. COLLABO AZ 31
제 19회 BOAZ BIG DATA CONFERENCE
추천시스템 개발
5 5
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
프로그램 시연
user Id ???
기존 수행 루틴 Personal Development , Gaming
추천 루틴 by GPT
Reading a personal development book , Daily
affirmations , Setting goals for gaming achievements ,
Keeping a gaming journal , Practicing mindfulness while
gaming , Taking breaks while gaming , Learning new
gaming strategies , Joining a gaming community or forum ,
Watching educational gaming videos , Reflecting on
gaming experiences to improve skills
2. 추천 탭
32. COLLABO AZ 32
제 19회 BOAZ BIG DATA CONFERENCE
결론
6 1
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
의의와 한계
의의
한계
추천 item 정의
Cold Start
Evaluation
기업과 Win win
루틴 타이틀 데이터 같은 경우에는, 일반적인 추천시스템 item으로 정의하기가 어려움. Prompting을 통해 최대한 불용어를 배제하려고
했지만 GPT가 전부 filtering할 순 없는 부분, 모두 수작업으로 하긴 어렵다는 점에서 한계가 느껴짐. 특히 데이터 수가 적었음.
루틴을 거의 사용하지 않은 사용자에게는 콜드 스타트 문제가 발생하는데,
이에 대한 해결방안으로 그래프 기반 추천 이웃X 을 할 수 없고 Popularity 추천 방법만 사용된 것에 아쉬움이 남음.
일반적으로 추천시스템은 A/B 테스트를 통해 성능을 평가하는데,
컨퍼런스 전까지 앱에 모델을 적용하여 실제로 평가하기까지 어려운 상황이라 Evaluation 부분에서 아쉬움.
우리 팀은 기업과 협업하여 실제 데이터를 만져 보는 경험을 통해 팀의 ADV 목표를 달성함.
기업은 우리의 고객 세그멘테이션을 통해 인사이트를 얻고 추천 기술 발전에 도움을 얻음.
루틴이라는 특수한 도메인에서 추천시스템을 적용해 문제를 해결해 보는 경험을 함.
추천시스템 스터디와 전문가 자문을 통해 프로젝트를 발전시킴.
추천 도메인 개척
33. COLLABO AZ 33
제 19회 BOAZ BIG DATA CONFERENCE
결론
6 2
고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for ROUBIT
향후 발전 가능성
COLLABO AZ 이용 고객
ROUBIT API 앱
코드 제공
데이터 수집
업데이트
A/B Test
실시간 추천 시스템
Lock in
Feedack
단순히 컨퍼런스에서 프로젝트를 그치는 것이 아니라
기업과 지속적으로 협업하여 모델 자동화, 실제 앱에 적용 및 테스트 예정