​ 이제 머신 러닝 실무 프로젝트 에 나오 는 실습 내용 으로 들어가 봅시다 . 첫 번 째 프로젝트 는 영화 추천 시스템 이 네요 . 가장 많이 언급 되 는 주제 가 영화 추천 시스템 이 죠 . 아마 넷플릭스 효과 아닐까 싶 네요 . ​ 이번 실습 은 MovieLens 로 데이터 로 추천 시스템 을 구축 하 는 것 입니다 . 이 MovieLens 는 미네소타 대학교 그룹 렌즈 연구소 에서 넷플릭스 와 비슷 한 정보 를 연구용 으로 공개 한 것 이 라고 하 네요 . 목차 1 추 천 시스템 의 유형 2 데이터 설계 와 데이터 입수 3 추 천 시스템 의 알고리즘 4 평 가척 도 1 추 천 시스템 의 유형 ​ 전자 상거래 에 쓰이 는 추천 시스템 의 유형 이 목적 에 따라 5 가지 로 정리 되 어 있 습니다 . 1 ) 개요 추천 : ' 이번 주 의 인기 상품 ' 처럼 통계 를 활용 하 거나 ' 편집자 가 선택 한 아이템 추천 ' 처럼 개인 화 되 지 는 않 은 추천 입니다 . 2 ) 사용 자 평가 : 다른 사용자 의 별점 이나 댓글 을 또는 통계 를 이용 해 평균 평점 등 의 정보 를 제공 하 는 것 입니다 . 3 ) 알림 서비스 : 푸시 알람 이나 이메일 로 아이템 을 추천 하 여 사이트 에 재 방문 을 유도 하 는 것 입니다 . 4 ) 연관 아이템 추천 : 관심 있 는 아이템 의 연관 된 아이템 이나 정보 를 제시 하 여 동시 구매 를 유도 하 거나 다른 아이템 과 비교 하 게 하 는 것 입니다 . 5 ) 개인 화 : 사용 자 의 과거 구매 내역 또는 자주 보 는 상품 등 을 분석 하 여 사용 자 가 마음 에 드 는 아이템 을 찾 도록 도와 주 는 것 입니다 . 2 데이터 설계 와 데이터 입수 ​ 1 ) 선호 데이터 : 사용 자 가 아이템 을 얼마나 선호 하 는지 나타내 는 데이터 2 ) 검색 쿼리 : 검색어 정보 3 ) 비평 : 상품 이나 업체 에 대한 댓글 평 4 ) 아이템 특징 : 상품 설명 에 쓰인 단어 정보 5 ) 인구 적 특징 : 사용 자 의 성별 이나 연령 등 의 정보 6 ) 맥락 적 특징 : 추천 받 은 아이템 을 사용 한 날짜 나 위치 정보 혹은 재고 현황 과 같 은 추천 과 관련 된 맥락 적 정보 3 추 천 시스템 의 알고리즘 크 게 두 가지 1 ) 협업 필터링 ( collaborative filtering ) : 평가 경향 이 비슷 한 사람 또는 비슷 한 평가 를 받 은 영화 를 찾 는 식 - 메모리 기반 협업 필터링 ( memory -- based collaborative filtering ) : 시스템 이 갖 고 있 는 데이터 로 가까운 사용자 / 아이템 을 추천 - 사용 자 기반 협업 필터링 ( user _ based collaborative filtering ) : 비슷 한 사람 을 찾 는 것 - 아이템 기반 협업 필터링 ( item - based collaborative filtering ) : 비슷 한 아이템 을 찾 는 것 - 모델 기반 협업 필터링 ( model - based collaborative filtering ) : 회귀 나 분류 같 은 예측 모델 을 학습 하 는 것 ​ 2 ) 내용 기반 필터링 ( content - based filtering ) : 감독 , 장르 , 제목 이나 내용 이 비슷 한 영화 를 찾 는 식 * 사용 자 , 아이템 기반 협업 필터링 ​ 1 사용자 정보 를 벡터 로 나타낸다 . 2 사용자 간 의 유사 도 를 평가 한다 . 3 유사 도 를 기반 으로 평점 을 계산 한다 . ​ 유사 도 는 두 대상 이 비슷 할수록 값 이 커지 고 , 다를수록 작아지 는 척도 입니다 . 대표 적 인 유사 도로는 피어슨 상관 계수 , 코사인 유사 도 , 자 카드 계수 가 있 습니다 . 피어슨 상관 계수 는 일반 적 으로 상관 계수 라고 하 면 피어슨 상관 계수 를 가리키 는 경우 가 많 고 - 1 ~ 1 사이 의 값 을 가집니다 . 코사인 유사 도 는 텍스트 문장 간 의 거리 를 측정 하 는 척도 로 자주 쓰이 며 0 ~ 1 사이 의 값 을 갖 습니다 . 자 카드 계수 는 집합 과 집합 사이 의 거리 를 계산 할 수 있 으며 , 0 ~ 1 사이 의 값 을 갖 습니다 . * 모델 기반 협업 필터링 ​ 모델 기반 협업 필터링 은 기존 데이터 가 갖 는 규칙 성 에 따라 예측 하 는 방법 입니다 . 군집 화 , 회귀 모델 , 토픽 모델 , 행렬 분해 를 사용 한 방법 등 이 있 습니다 . ​ 군집 화 는 선호도 가 비슷 한 사용 자 들 을 그룹 으로 묶 고 , 자신 이 속한 그룹 이 선호 하 는 아이템 을 추천 합니다 . ​ 회귀 모델 은 선형 회귀 등 의 모델 로 학습 한 다음 평점 을 예측 하 는 데 사용 합니다 . ​ 토픽 모델 은 확률 적 잠재 의미 분석 ( PLSA ) 과 잠재 디리클레 할당 ( LDA ) 등 으로 평점 행렬 의 차원 을 축소 해 잠재 의미 가 드러나 게 하 는 기법 입니다 . ​ 행렬 분해 의 대표 적 인 것 은 행렬 인수 분해 ( matrix factorization ) 입니다 . 추천 시스템 에서 는 주로 특이값 분해 ( SVD ) 를 많이 사용 합니다 . 이 부분 은 자세히 설명 할 필요 가 있 어 나중 에 따로 포스팅 하 도록 하 겠 습니다 . * 내용 기반 필터링 내용 기반 필터링 은 아이템 을 나타내 는 정보 에 주목 하 고 , 사람 들 의 과거 정보 를 이용 하 여 추천 항목 을 선택 합니다 . * 장단점 협업 필터링 은 비교 적 다양 한 추천 결과 를 얻 을 가능 성 은 높 지만 데이터 가 충분히 쌓여야 만 가능 한 모델 입니다 . 사용자 의 축적 된 평가 데이터 를 기반 으로 추천 해야 하 기 때문 에 , 처음 부터 추천 해 줄 수 없 고 ( 콜드 스타트 문제 ) , 많 은 사람 들 이 평가 를 해 하 여 서로 연관 된 결과 를 뽑 을 수 있 어야 하 기 떄문에 처음 부터 협업 필터링 을 사용 할 수 없 습니다 . ​ 내용 기반 필터링 은 아이템 자체 의 특성 이 데이터 가 되 기 때문 에 누적 된 행동 데이터 가 없 어도 비교 적 적절 한 추천 이 가능 한 기법 입니다 . 그러나 도메인 에 특화 된 정보 를 정확 하 게 알 아야 한다는 문제 가 있 습니다 . 4 평가 척도 분류 문제 평가 정확도 ( accuracy ) : 5 단계 평가 에서 4 점 이상 을 받 았 을 때 정답 이 라 간주 하 는 식 으로 기준 을 정해 예측 결과 와 사용자 의 평점 을 비교 합니다 . 정밀도 ( precision ) , 재현 율 ( recall ) : 각각 예측 결과 중 정답 의 비율 과 전체 정답 중 실제 맞춘 정답 의 비율 을 말 합니다 . ​ 회귀 문제 평가 평균 절대 오차 ( MAE ) : 예측 값 과 실 젯 값 의 차이 에 대한 절대값 으로부터 평점 을 계산 합니다 . 평균 제곱근 오차 ( RMSE ) : 예측 값 과 실 젯 값 의 차이 를 제곱 한 값 입니다 . MAE 와 비교 하 면 이상 값 에 취약 하 다는 단점 이 있 습니다 . 순위 상관 ( rank correlation ) : 추천 한 아이템 의 순서 를 평가 하 는 지표 입니다 . 커버리지 ( coverage ) : 다양 성 을 평가 지표 에 포함 시킬 때 는 전체 아이템 중 에서 평점 을 예측 할 수 있 는 아이템 의 비율 로 나타내 는 커버리지 를 지표 로 사용 하 기 도 합니다 . ​​​​​​​