(왕초보들을 위한) 알아두면 쓸데없지만 (혹시나) 신비할지도 모르는 잡학사전 : 머신러닝을 이용한 추천 시스템 개발 경험담
머신 러닝? 도대체 뭔소리인지 하나도 모르겠다.
좀 쉬운 내용이 필요한 분들을 위한 사소한 지식들을 소개합니다.
수포자가 머신러닝을 이용한 추천 시스템 개발 경험담을 들려 드립니다.
8. 수포자는 힘들었다
• 행렬? 미분? 회귀분석? 저한테 왜 그러세요?
• 머신 러닝 아무 것도 모르고 시작
• 나만 모른다?
소수를 제외하고 다 모르더라
• 무지한 관리자들, 시키면 다 되는 줄
8
9. 처음 시작은?
• 자바로 개발된 머신 러닝 라이브러리 머하웃 으로 시작
• http://mahout.apache.org/
• 이후 스파크(ML) 등장
• 파이썬이나 다른 언어 쪽은 고려 안함
9
0.9
10. 무비렌즈 데이터 셋
• 머하웃 협업 필터링 추천 예제, 무비렌즈 데이터 셋 사용
https://grouplens.org/datasets/movielens
• 파이썬 “서프라이즈” 에도 무비렌즈 데이터 셋 내장
https://surprise.readthedocs.io/en/stable/getting_started.html
10
11. 무비렌즈 데이터 셋
• http://files.grouplens.org/datasets/movielens/
11
19. 개발 후에는?
• 추천 데이터와 추천을 사용하는 가입자가 많아지면서
급격한 성능 저하 발생
• 사용자 기반의 추천 알고리즘의 근본적인 한계
• 사전에 쓰레드 처리 가능하도록 개발
• DB 성능 저하
• 성능 개선을 위해 하둡 M/R, Hive, … 로 분산 처리 가능?
• 아이템 기반의 추천으로 대체하면 성능 문제 해결 가능
• 사용자 기반 추천이라도 Storm 으로 분산 처리 가능
19
20. 개발 후에는?
• Cold start ???
• https://ko.wikipedia.org/wiki/%ED%98%91%EC%97%85_%ED%95%84%ED%84%B0%EB%A7%81
• 평점/좋아요 입력 받기 위해 UI 수정 & 개인 정보 사용 동의 필요
20
21. 개발 후에는?
• 몇 달 동안 계속 모니터링/데이터 검증, …
• 추천 결과 피드백? 그런게 있을리가… 있어도 안알랴줌, 영업비밀 ?
• 추천 결과가 나름 좋았다는 “썰” -> 자기 합리화 ?
• 사실 추천 시스템 결과를 알 방법이 없거나 어려워요
너무 많은 이벤트, 프로모션, 개편, … , 격리 불가
• A/B 테스트 ?
21
43. 안드로메다를 헤매는 깡통들을 위한 꿀 팁
• 너 자신을 알라
• 모든걸 다 이해하려고 하면 다친다, 자괴감 주의
• 단계별 접근, 일단 쉬운 것만 이해하고 넘어가자, 그리고 반복
• 책도 얇고 쉬운 내용으로 고르자, 두꺼우면 냄비 받침
• 수학, 통계 -> 데이터 분석 -> 머신 러닝 -> 딥 러닝
43