SlideShare a Scribd company logo
1 of 37
Download to read offline
'글램' 연락처 기재 유저 탐지용
자연어 처리 모델 개발 프로젝트
똑똑, 연락처 경찰입니다!
데자와 X GLAM
유희열, 이보민, 김기림, 송혜정
데이터 분석이란?
더 나은 의사 결정을 위한 것
더 나은 의사 결정이란?
실질적인 문제 해결을 위해
FRAUD DETECTION
글램, 미소, 크몽 등 매칭 플랫폼 회사들이 마주할 문제
우리가 풀려는 문제는?
매력적인 사람들과의 만남을 위한 소셜 매칭 플랫폼
4
"본 프로젝트는 데이팅 서비스 글램의 운영사인 (주)큐피스트의 지원을
바탕으로 데잇걸즈가 (주)큐피스트와 협력하여 진행한 프로젝트입니다. "
매칭 플랫폼에서 불량유저란 누구인가?
현재 글램에서는 연락처 기재 유저를 적발하기 위한 탐지 시스템을 구축하여 운영 중
글램 내 채팅 서비스를 이용하지 않고
자체적인 연결을 위해 연락처를 기재하는 유저들
유저들이 플랫폼 내의 매칭 서비스를 이용하지 않고 바로 이탈하게끔 부추기기 때문에
어플리케이션 내 클린 환경 조성에 바람직하지 않음
WARNING
이 발표의 RAW 데이터셋과 예시는 모두 각색되었습니다
데이터셋
bio school job company
0 안녕하세요~~ 공통된 관심사가 있는 분들 만나고 싶어요^^ 카톡으로 대뜸 연락하면 싫어요 데잇걸즈 3기
1
데이터 분석, 엔지니어링에 빠삭한 데이터 전략가 되고 싶은 야망있는 젊은 청년입니다.
카톡사절 메세지 주세요.
데잇걸즈3 데이터 전략가
https://www.linkedin.c
om/in/bomin-lee-4659
55190/
2
HWP driven data analyst. Nope, it’s not that but HaWaiian Pizza. Looking for
a decent developer who likes it too. Ask me out thr heeyawl@gmail.com
DataItGirls_3 Data Analyst Heeyawl, Inc
3
안녕하세요. 인생 희말라야같아서 빡치는 와중에 좋은 사람은 만나고 싶어요!
요즘 자연어처리 관심 많은데 NLP 전문가랑 만나고 싶어요! (과외 요청 X, 오해 X)
카톡 plznlpcomeon82
데잇걸즈 3 데이터 분석가
4 프로젝트만 보고 어떻게 판단해. 같이 일하면서 분석이든, 시각화든 시켜보는거지..(궁서체) 데잇걸스3 데이터 분석가 리디
5 쌍둥이처럼 생긴 고양이 강아지랑 같이 살아요. 우리 레오 같이 산책시킬 사람 구합니다. 데이터 분석가
6 코딩의신 유튜버, 개발자
7 여정, 도전, 기회, 회고 그리고 마무리.... 먼저 카톡 주시면 좋아요... PM 뉴로어소시에이츠
8 똑똑똑 통계 경찰입니다. 제 마음을 훔칠 범인 찾아요 국민대학교
9 같이 맛있는 고기 먹으러 갈 사람 찾습니다. 따뜻한 파인애플 사절. 개발자 카카오
10
카톡은 잘 못해요. 프로그래밍 언어로만 깃헙으로 소통해요~편하실 때 풀리퀘 주세요~
머지 항시 대기
소프트웨어 엔지니어 우동마켓
연락처 기재된 프로필 나와라!
8
카톡, kakao, 똑, 톡친구, 구해요, 또옥, 까톡, ㅋ톡, 톡, 까아아톡,
ㅋ ㅏ, 아이디, 대화, 친추, 라인, line, 인스타, insta
| 정규표현식을 활용하여 연락처 기재 프로필 탐지
만나기 전 카톡 안해요
카톡 주세요 demoday13thedec
| 사용된 키워드
수제 라벨링
bio school job company is_sns
0
안녕하세요~~ 공통된 관심사가 있는 분들 만나고 싶어요^^ 카톡으로 대뜸 연락하면 싫어
요
데잇걸즈 3기 0
1
데이터 분석, 엔지니어링에 빠삭한 데이터 전략가 되고 싶은 야망있는 젊은 청년입니다.
카톡사절 메세지 주세요.
데잇걸즈3 데이터 전략가
https://www.linkedin.c
om/in/bomin-lee-4659
55190/
1
2
HWP driven data analyst. Nope, it’s not that but HaWaiian Pizza. Looking for
a decent developer who likes it too. Ask me out thr heeyawl@gmail.com
DataItGirls_3 Data Analyst Heeyawl,Inc 1
3
안녕하세요. 인생 희말라야같아서 빡치는 와중에 좋은 사람은 만나고 싶어요!
요즘 자연어처리 관심 많은데 NLP 전문가랑 만나고 싶어요! (과외 요청 X, 오해 X)
카톡 plznlpcomeon82
데잇걸즈 3 데이터 분석가 1
4 프로젝트만 보고 어떻게 판단해. 같이 일하면서 분석이든, 시각화든 시켜보는거지..(궁서체) 데잇걸스3 데이터 분석가 리디 0
5 쌍둥이처럼 생긴 고양이 강아지랑 같이 살아요. 우리 레오 같이 산책시킬 사람 구합니다. 데이터 분석가 구글 0
6 코딩의신 유튜버, 개발자 0
7 여정, 도전, 기회, 회고 그리고 마무리.... 먼저 카톡 주시면 좋아요... PM 뉴로어소시에이츠 0
8 똑똑똑 통계 경찰입니다. 제 마음을 훔칠 범인 찾아요 국민대학교 0
9 같이 맛있는 고기 먹으러 갈 사람 찾습니다. 따뜻한 파인애플 사절. 개발자 카카오 0
10
카톡은 잘 못해요. 프로그래밍 언어로만 깃헙으로 소통해요~편하실 때 풀리퀘 주세요~
머지 항시 대기
소프트웨어 엔지니어 우동마켓 0
프로필에 '톡'이 들어간 유저들 중
연락처 기재 유저연락처 기재하지 않은 유저
42%58%
연락처 기재 유무와 상관없이 사용 언어가 비슷하다
정규표현식 고도화만으로 불량유저 탐지 어려움
맥락 추론 불가
Ex) "톡톡 튀는 내 마성의 보이스", "개성 톡톡 비글미 있으신 분 좋아요"
"술은 못 마시지만.. 이슬톡톡은 마실 수 있어요!"
정규표현식의 한계
정규표현식 탐지 결과 (Confusion Matrix)
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 47 1271
일반유저로 예측 12 132
일반유저를 불량유저로 예측
불량유저를 일반유저로 잘못 예측 하는 경우보다
일반유저를 불량유저로 예측하는 경우의 리스크가 큼
머신러닝 모델은 이 느낌적인 느낌을 알 수 있을까?
"카톡이나 메신저보단 만나서 얘기하는 걸 좋아합니다."
Let the machine work!
분류를 위한 모델 선정
텍스트 데이터를 분류 모델에 넣기 위해서 수치화
수치화를 더 잘하기 위한 토큰화 방식 탐색
Logistic Regression
불량유저, 일반유저 둘 중 하나의 경우로
분류하는 모델을 만들기 위해
텍스트 데이터 전처리
Count Vectorization | 텍스트 토큰 one_hot encoding 빈도수 높은 토큰에 가중치 부여
TF-IDF Vectorization | 여러 유저의 프로필에 중복으로 출현하는, 빈도수 높은 토큰에 패널티 부여
분류 모델을 학습시키기 위한 텍스트 데이터 수치화
글자 단위 토크나이징(feat. n-gram)
수치화를 하기 위해서는 문장 단위의 데이터를 더 작은 단위로 쪼개야 함
프로필 데이터의 특성상 오탈자, 신조어 등이 많이 존재하므로 형태소 분석기 사용 X
1,2 글자 기준으로 쪼개는 방식 사용
"똑똑똑 통계 경찰입니다.
제 마음 훔칠 범인 찾아요"
'경', '경찰', '계', '계', '니', '니다',
'다', '다', '똑', '똑', '똑똑', '마', '마음',
'범', '범인', '아', '아요', '요', ...
지표 설정
서비스 자체에서 중요한 지표 : Precision
우리 모델에서는 Precision이 기본적으로 70% 이상이었기 때문
모델 개선 시 기준으로 보았던 지표 : F1_score
Precision을 유지하면서 Recall 값이 높은 모델 발견!
Precision : 모델이 불량유저로 예측한 값 중에 실제로 불량유저였던 비율
Recall : 실제 불량유저들 중에 우리 모델이 불량유저로 잘 예측한 비율
최적화된 옵션
ACCURACY
0.990
PRECISION
0.959
RECALL
0.796
F1-SCORE
0.870
MODEL Logistic Regression
K-fold 4
VECTORIZER tf-idf
TOKENIZER basic
ANALYZER char_wb
NGRAM_RANGE 1, 2
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 47 1271
일반유저로 예측 12 132
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 47 2
일반유저로 예측 12 1401
지표 비교_Confusion Matrix
정규표현식 Logistic Regression
전체 10여만건의 데이터에 우리의 모델을 적용한다면?
모델이 95% 이상 연락처 기재 유저라고 예측한 유저들 중
77%가 실제로 연락처를 기재한 유저였음
Precision : 77%
우리 모델 이렇게나 잘해요?!!
뀨야똑 : 히얄9191
같이 톡해영~~
꺄똑:dg3 꺄똑:dg3
캇똑아이디1213
캇똑아이디:1213
Chat me wasap
: 9ϩ1५3ϩOອϩზ Oslo
최종 모델이 불량유저로 탐지한 프로필 예시
우리 데이터 셋의 특징
24
22,011개
어휘의 다양성이 부족하다.
연락처 기재 유무를 결정짓는
주요한 텍스트 토큰의 갯수가
적다.
모델이 가진 한계점
새로운 단어가 출몰할 때 유연하게 대처할 수 없음
충분히 학습할 수 있는 적당한 train set을 사람이 넣어줘야
Train set 데이터가 많아질 수록 모델 학습 시간 증가
!!!
What’s Next?
딥러닝(CNN)
임베딩 XGBoost
실 서비스 적용
문제는 뾰족하게 정의할수록 좋다
사람이 봐도 각 안 나오는 문제는 모델도 어려워 한다
남들이 좋다는 방법 말고 우리 데이터에 좋은 방법을 찾자
Back to Basics.
Simple is the Best.
감사합니다.
COOKIE SLIDES
+ 우리가 발굴한 이모티콘
(*•̀ᴗ•́*)
⁽(◍˃̵͈̑ᴗ˂̵͈̑)⁽
(☞ ͡° ͜ʖ ͡°)☞
(*‘▽’*)ლ(≦╹॰╹≧)ლ
ヾ(。﹏。)ノ゙✧
╰(*´︶`*)╯♡
‘ᴗ’
୧( “̮ )୨
(●´∀`●)
(;▽;)
(❁´▽`❁)
( ͡° ͜ʖ ͡°)
・◌ิĹ̯・◌ิ
( •᷄⌓•᷅ )
˃̵͈̑ᴗ˂̵͈̑
^%^
+ Random Forest
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 35 1
일반유저로 예측 24 1402
ACCURACY
0.982
PRECISION
0.972
RECALL
0.593
F1-SCORE
0.736
+ Random Forest 마지막 모델과 비교
+ 여기서 잠깐 Precision Recall을 배워봅시다
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 47 1271
일반유저로 예측 12 132
Precision = 47 / (47 + 1271)
3.5%
Precision : 모델이 불량유저로 예측한 값 중에 실제로 불량유저였던 비율
+ 여기서 잠깐 Precision Recall을 배워봅시다
실제값
실제 불량유저 실제 일반유저
예측값
불량유저로 예측 47 1271
일반유저로 예측 12 132
Recall = 47 / (47 + 12)
79%
Recall : 실제 불량유저들 중에 우리 모델이 불량유저로 잘 예측한 비율
+ 시각화를 통한 성능 비교
Model : Logistic Regression CV
Vectorizer : TF-IDF Vectorizer

More Related Content

What's hot

Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Seongyun Byeon
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 introSeongyun Byeon
 
추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.choi kyumin
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)Jaikwang Lee
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석DataScienceLab
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
 
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)Yongho Ha
 
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요Yongho Ha
 
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)Dylan Ko
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립승화 양
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912Yooseok Choi
 
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서minseo koo
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템NAVER D2
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.Yongho Ha
 
글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또Seongyun Byeon
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례Hyung Lee
 
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) Yongho Ha
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여iFunFactory Inc.
 
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기Hui Seo
 

What's hot (20)

Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라Little Big Data #1. 바닥부터 시작하는 데이터 인프라
Little Big Data #1. 바닥부터 시작하는 데이터 인프라
 
개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro개발자를 위한 (블로그) 글쓰기 intro
개발자를 위한 (블로그) 글쓰기 intro
 
Data Science. Intro
Data Science. IntroData Science. Intro
Data Science. Intro
 
추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.추천시스템 이제는 돈이 되어야 한다.
추천시스템 이제는 돈이 되어야 한다.
 
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
대용량 로그분석 Bigquery로 간단히 사용하기 (20170215 T아카데미)
 
통신사 고객 이탈분석
통신사 고객 이탈분석통신사 고객 이탈분석
통신사 고객 이탈분석
 
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유
 
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
스타트업은 데이터를 어떻게 바라봐야 할까? (개정판)
 
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
2011 H3 컨퍼런스-파이썬으로 클라우드 하고 싶어요
 
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)
그로스 해킹 & 데이터 프로덕트 (Growth Hacking & Data Product) - 고넥터 고영혁 (Gonnector Dylan Ko)
 
데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립데이터가 흐르는 조직 만들기 - 마이리얼트립
데이터가 흐르는 조직 만들기 - 마이리얼트립
 
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1  나무기술(주) 최유석 20170912
Bigquery와 airflow를 이용한 데이터 분석 시스템 구축 v1 나무기술(주) 최유석 20170912
 
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서
데이터야놀자2018-들어는 봤니? 유저로그 자동화-구민서
 
인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템인공지능추천시스템 airs개발기_모델링과시스템
인공지능추천시스템 airs개발기_모델링과시스템
 
데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.데이터는 차트가 아니라 돈이 되어야 한다.
데이터는 차트가 아니라 돈이 되어야 한다.
 
글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또글쓰는 개발자 모임, 글또
글쓰는 개발자 모임, 글또
 
인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례인프런 - 스타트업 인프랩 시작 사례
인프런 - 스타트업 인프랩 시작 사례
 
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) 오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA)
 
게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여게임 운영에 필요한 로그성 데이터들에 대하여
게임 운영에 필요한 로그성 데이터들에 대하여
 
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기데이터 분석가는 어떤 SKILLSET을 가져야 하는가?  - 데이터 분석가 되기
데이터 분석가는 어떤 SKILLSET을 가져야 하는가? - 데이터 분석가 되기
 

Similar to ’글램’ 연락처 기재 유저 탐지용 자연어 처리 모델 개발 프로젝트

강의안 경복대 20121129
강의안 경복대 20121129강의안 경복대 20121129
강의안 경복대 20121129zyro park
 
Doing data science Chapter 9
Doing data science Chapter 9Doing data science Chapter 9
Doing data science Chapter 9Ji Hun Kim
 
사용설명회 7차 (black)
사용설명회 7차 (black)사용설명회 7차 (black)
사용설명회 7차 (black)alwaysInc
 
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래Taehoon Ko
 
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사Tapjoy X 5Rocks
 
착한문서만들기
착한문서만들기착한문서만들기
착한문서만들기sangyong lee
 
[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언MinGeun Park
 
게임개발사원이되자
게임개발사원이되자게임개발사원이되자
게임개발사원이되자Yggdrasil610
 
게임개발사원이되자(1)
게임개발사원이되자(1)게임개발사원이되자(1)
게임개발사원이되자(1)창열 최
 
마인즈랩 통합 VOC 관리 솔루션 소개_20151030
마인즈랩 통합 VOC 관리 솔루션 소개_20151030마인즈랩 통합 VOC 관리 솔루션 소개_20151030
마인즈랩 통합 VOC 관리 솔루션 소개_20151030Taejoon Yoo
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결Jay Park
 
인공지능, 머신러닝의 이해 강의자료 2019.12.20
인공지능, 머신러닝의 이해 강의자료 2019.12.20인공지능, 머신러닝의 이해 강의자료 2019.12.20
인공지능, 머신러닝의 이해 강의자료 2019.12.20KYOYOON JUNG
 

Similar to ’글램’ 연락처 기재 유저 탐지용 자연어 처리 모델 개발 프로젝트 (12)

강의안 경복대 20121129
강의안 경복대 20121129강의안 경복대 20121129
강의안 경복대 20121129
 
Doing data science Chapter 9
Doing data science Chapter 9Doing data science Chapter 9
Doing data science Chapter 9
 
사용설명회 7차 (black)
사용설명회 7차 (black)사용설명회 7차 (black)
사용설명회 7차 (black)
 
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래
[오컴 Clip IT 세미나] 머신러닝과 인공지능의 현재와 미래
 
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사
[TapjoyX5Rocks App Discovery Seminar] Session 3 - 선데이토즈 임정민 이사
 
착한문서만들기
착한문서만들기착한문서만들기
착한문서만들기
 
[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언[1216 박민근] 게임회사취업및이직에관한조언
[1216 박민근] 게임회사취업및이직에관한조언
 
게임개발사원이되자
게임개발사원이되자게임개발사원이되자
게임개발사원이되자
 
게임개발사원이되자(1)
게임개발사원이되자(1)게임개발사원이되자(1)
게임개발사원이되자(1)
 
마인즈랩 통합 VOC 관리 솔루션 소개_20151030
마인즈랩 통합 VOC 관리 솔루션 소개_20151030마인즈랩 통합 VOC 관리 솔루션 소개_20151030
마인즈랩 통합 VOC 관리 솔루션 소개_20151030
 
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
(독서광) 인간 vs. AI 정규표현식 문제 풀이 대결
 
인공지능, 머신러닝의 이해 강의자료 2019.12.20
인공지능, 머신러닝의 이해 강의자료 2019.12.20인공지능, 머신러닝의 이해 강의자료 2019.12.20
인공지능, 머신러닝의 이해 강의자료 2019.12.20
 

’글램’ 연락처 기재 유저 탐지용 자연어 처리 모델 개발 프로젝트

  • 1. '글램' 연락처 기재 유저 탐지용 자연어 처리 모델 개발 프로젝트 똑똑, 연락처 경찰입니다! 데자와 X GLAM 유희열, 이보민, 김기림, 송혜정
  • 2. 데이터 분석이란? 더 나은 의사 결정을 위한 것 더 나은 의사 결정이란? 실질적인 문제 해결을 위해
  • 3. FRAUD DETECTION 글램, 미소, 크몽 등 매칭 플랫폼 회사들이 마주할 문제 우리가 풀려는 문제는?
  • 4. 매력적인 사람들과의 만남을 위한 소셜 매칭 플랫폼 4 "본 프로젝트는 데이팅 서비스 글램의 운영사인 (주)큐피스트의 지원을 바탕으로 데잇걸즈가 (주)큐피스트와 협력하여 진행한 프로젝트입니다. "
  • 5. 매칭 플랫폼에서 불량유저란 누구인가? 현재 글램에서는 연락처 기재 유저를 적발하기 위한 탐지 시스템을 구축하여 운영 중 글램 내 채팅 서비스를 이용하지 않고 자체적인 연결을 위해 연락처를 기재하는 유저들 유저들이 플랫폼 내의 매칭 서비스를 이용하지 않고 바로 이탈하게끔 부추기기 때문에 어플리케이션 내 클린 환경 조성에 바람직하지 않음
  • 6. WARNING 이 발표의 RAW 데이터셋과 예시는 모두 각색되었습니다
  • 7. 데이터셋 bio school job company 0 안녕하세요~~ 공통된 관심사가 있는 분들 만나고 싶어요^^ 카톡으로 대뜸 연락하면 싫어요 데잇걸즈 3기 1 데이터 분석, 엔지니어링에 빠삭한 데이터 전략가 되고 싶은 야망있는 젊은 청년입니다. 카톡사절 메세지 주세요. 데잇걸즈3 데이터 전략가 https://www.linkedin.c om/in/bomin-lee-4659 55190/ 2 HWP driven data analyst. Nope, it’s not that but HaWaiian Pizza. Looking for a decent developer who likes it too. Ask me out thr heeyawl@gmail.com DataItGirls_3 Data Analyst Heeyawl, Inc 3 안녕하세요. 인생 희말라야같아서 빡치는 와중에 좋은 사람은 만나고 싶어요! 요즘 자연어처리 관심 많은데 NLP 전문가랑 만나고 싶어요! (과외 요청 X, 오해 X) 카톡 plznlpcomeon82 데잇걸즈 3 데이터 분석가 4 프로젝트만 보고 어떻게 판단해. 같이 일하면서 분석이든, 시각화든 시켜보는거지..(궁서체) 데잇걸스3 데이터 분석가 리디 5 쌍둥이처럼 생긴 고양이 강아지랑 같이 살아요. 우리 레오 같이 산책시킬 사람 구합니다. 데이터 분석가 6 코딩의신 유튜버, 개발자 7 여정, 도전, 기회, 회고 그리고 마무리.... 먼저 카톡 주시면 좋아요... PM 뉴로어소시에이츠 8 똑똑똑 통계 경찰입니다. 제 마음을 훔칠 범인 찾아요 국민대학교 9 같이 맛있는 고기 먹으러 갈 사람 찾습니다. 따뜻한 파인애플 사절. 개발자 카카오 10 카톡은 잘 못해요. 프로그래밍 언어로만 깃헙으로 소통해요~편하실 때 풀리퀘 주세요~ 머지 항시 대기 소프트웨어 엔지니어 우동마켓
  • 8. 연락처 기재된 프로필 나와라! 8 카톡, kakao, 똑, 톡친구, 구해요, 또옥, 까톡, ㅋ톡, 톡, 까아아톡, ㅋ ㅏ, 아이디, 대화, 친추, 라인, line, 인스타, insta | 정규표현식을 활용하여 연락처 기재 프로필 탐지 만나기 전 카톡 안해요 카톡 주세요 demoday13thedec | 사용된 키워드
  • 9. 수제 라벨링 bio school job company is_sns 0 안녕하세요~~ 공통된 관심사가 있는 분들 만나고 싶어요^^ 카톡으로 대뜸 연락하면 싫어 요 데잇걸즈 3기 0 1 데이터 분석, 엔지니어링에 빠삭한 데이터 전략가 되고 싶은 야망있는 젊은 청년입니다. 카톡사절 메세지 주세요. 데잇걸즈3 데이터 전략가 https://www.linkedin.c om/in/bomin-lee-4659 55190/ 1 2 HWP driven data analyst. Nope, it’s not that but HaWaiian Pizza. Looking for a decent developer who likes it too. Ask me out thr heeyawl@gmail.com DataItGirls_3 Data Analyst Heeyawl,Inc 1 3 안녕하세요. 인생 희말라야같아서 빡치는 와중에 좋은 사람은 만나고 싶어요! 요즘 자연어처리 관심 많은데 NLP 전문가랑 만나고 싶어요! (과외 요청 X, 오해 X) 카톡 plznlpcomeon82 데잇걸즈 3 데이터 분석가 1 4 프로젝트만 보고 어떻게 판단해. 같이 일하면서 분석이든, 시각화든 시켜보는거지..(궁서체) 데잇걸스3 데이터 분석가 리디 0 5 쌍둥이처럼 생긴 고양이 강아지랑 같이 살아요. 우리 레오 같이 산책시킬 사람 구합니다. 데이터 분석가 구글 0 6 코딩의신 유튜버, 개발자 0 7 여정, 도전, 기회, 회고 그리고 마무리.... 먼저 카톡 주시면 좋아요... PM 뉴로어소시에이츠 0 8 똑똑똑 통계 경찰입니다. 제 마음을 훔칠 범인 찾아요 국민대학교 0 9 같이 맛있는 고기 먹으러 갈 사람 찾습니다. 따뜻한 파인애플 사절. 개발자 카카오 0 10 카톡은 잘 못해요. 프로그래밍 언어로만 깃헙으로 소통해요~편하실 때 풀리퀘 주세요~ 머지 항시 대기 소프트웨어 엔지니어 우동마켓 0
  • 10. 프로필에 '톡'이 들어간 유저들 중 연락처 기재 유저연락처 기재하지 않은 유저 42%58%
  • 11. 연락처 기재 유무와 상관없이 사용 언어가 비슷하다 정규표현식 고도화만으로 불량유저 탐지 어려움 맥락 추론 불가 Ex) "톡톡 튀는 내 마성의 보이스", "개성 톡톡 비글미 있으신 분 좋아요" "술은 못 마시지만.. 이슬톡톡은 마실 수 있어요!" 정규표현식의 한계
  • 12. 정규표현식 탐지 결과 (Confusion Matrix) 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 47 1271 일반유저로 예측 12 132 일반유저를 불량유저로 예측 불량유저를 일반유저로 잘못 예측 하는 경우보다 일반유저를 불량유저로 예측하는 경우의 리스크가 큼
  • 13. 머신러닝 모델은 이 느낌적인 느낌을 알 수 있을까? "카톡이나 메신저보단 만나서 얘기하는 걸 좋아합니다."
  • 14. Let the machine work! 분류를 위한 모델 선정 텍스트 데이터를 분류 모델에 넣기 위해서 수치화 수치화를 더 잘하기 위한 토큰화 방식 탐색
  • 15. Logistic Regression 불량유저, 일반유저 둘 중 하나의 경우로 분류하는 모델을 만들기 위해
  • 17. Count Vectorization | 텍스트 토큰 one_hot encoding 빈도수 높은 토큰에 가중치 부여 TF-IDF Vectorization | 여러 유저의 프로필에 중복으로 출현하는, 빈도수 높은 토큰에 패널티 부여 분류 모델을 학습시키기 위한 텍스트 데이터 수치화
  • 18. 글자 단위 토크나이징(feat. n-gram) 수치화를 하기 위해서는 문장 단위의 데이터를 더 작은 단위로 쪼개야 함 프로필 데이터의 특성상 오탈자, 신조어 등이 많이 존재하므로 형태소 분석기 사용 X 1,2 글자 기준으로 쪼개는 방식 사용 "똑똑똑 통계 경찰입니다. 제 마음 훔칠 범인 찾아요" '경', '경찰', '계', '계', '니', '니다', '다', '다', '똑', '똑', '똑똑', '마', '마음', '범', '범인', '아', '아요', '요', ...
  • 19. 지표 설정 서비스 자체에서 중요한 지표 : Precision 우리 모델에서는 Precision이 기본적으로 70% 이상이었기 때문 모델 개선 시 기준으로 보았던 지표 : F1_score Precision을 유지하면서 Recall 값이 높은 모델 발견! Precision : 모델이 불량유저로 예측한 값 중에 실제로 불량유저였던 비율 Recall : 실제 불량유저들 중에 우리 모델이 불량유저로 잘 예측한 비율
  • 20. 최적화된 옵션 ACCURACY 0.990 PRECISION 0.959 RECALL 0.796 F1-SCORE 0.870 MODEL Logistic Regression K-fold 4 VECTORIZER tf-idf TOKENIZER basic ANALYZER char_wb NGRAM_RANGE 1, 2
  • 21. 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 47 1271 일반유저로 예측 12 132 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 47 2 일반유저로 예측 12 1401 지표 비교_Confusion Matrix 정규표현식 Logistic Regression
  • 22. 전체 10여만건의 데이터에 우리의 모델을 적용한다면? 모델이 95% 이상 연락처 기재 유저라고 예측한 유저들 중 77%가 실제로 연락처를 기재한 유저였음 Precision : 77%
  • 23. 우리 모델 이렇게나 잘해요?!! 뀨야똑 : 히얄9191 같이 톡해영~~ 꺄똑:dg3 꺄똑:dg3 캇똑아이디1213 캇똑아이디:1213 Chat me wasap : 9ϩ1५3ϩOອϩზ Oslo 최종 모델이 불량유저로 탐지한 프로필 예시
  • 24. 우리 데이터 셋의 특징 24 22,011개 어휘의 다양성이 부족하다. 연락처 기재 유무를 결정짓는 주요한 텍스트 토큰의 갯수가 적다.
  • 25. 모델이 가진 한계점 새로운 단어가 출몰할 때 유연하게 대처할 수 없음 충분히 학습할 수 있는 적당한 train set을 사람이 넣어줘야 Train set 데이터가 많아질 수록 모델 학습 시간 증가 !!!
  • 27. 문제는 뾰족하게 정의할수록 좋다 사람이 봐도 각 안 나오는 문제는 모델도 어려워 한다 남들이 좋다는 방법 말고 우리 데이터에 좋은 방법을 찾자
  • 28. Back to Basics. Simple is the Best.
  • 29.
  • 32. + 우리가 발굴한 이모티콘 (*•̀ᴗ•́*) ⁽(◍˃̵͈̑ᴗ˂̵͈̑)⁽ (☞ ͡° ͜ʖ ͡°)☞ (*‘▽’*)ლ(≦╹॰╹≧)ლ ヾ(。﹏。)ノ゙✧ ╰(*´︶`*)╯♡ ‘ᴗ’ ୧( “̮ )୨ (●´∀`●) (;▽;) (❁´▽`❁) ( ͡° ͜ʖ ͡°) ・◌ิĹ̯・◌ิ ( •᷄⌓•᷅ ) ˃̵͈̑ᴗ˂̵͈̑ ^%^
  • 33. + Random Forest 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 35 1 일반유저로 예측 24 1402 ACCURACY 0.982 PRECISION 0.972 RECALL 0.593 F1-SCORE 0.736
  • 34. + Random Forest 마지막 모델과 비교
  • 35. + 여기서 잠깐 Precision Recall을 배워봅시다 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 47 1271 일반유저로 예측 12 132 Precision = 47 / (47 + 1271) 3.5% Precision : 모델이 불량유저로 예측한 값 중에 실제로 불량유저였던 비율
  • 36. + 여기서 잠깐 Precision Recall을 배워봅시다 실제값 실제 불량유저 실제 일반유저 예측값 불량유저로 예측 47 1271 일반유저로 예측 12 132 Recall = 47 / (47 + 12) 79% Recall : 실제 불량유저들 중에 우리 모델이 불량유저로 잘 예측한 비율
  • 37. + 시각화를 통한 성능 비교 Model : Logistic Regression CV Vectorizer : TF-IDF Vectorizer