저번 포스팅에 게시한 CF(협업필터링) 방법을 보면 https://xod22.tistory.com/12 [K-Data x 러닝스푼즈] 2-2. 협업 필터링(CF)의 원리 저번 포스팅에서는 컨텐츠 기반 추천인 CB(Content-based Recommendation)에 대해 공부해봤는데요! 이번에는 많이 쓰이는 협업필터링(CF)에 대해 적어보려고 합니다!! # 협업 필터링? : CF(Collaborative Filterin.. xod22.tistory.com 유사도 계산이 필수적인데요! 오늘은 유사도 계산을 하는 여러가지 방법에 대해 자세하게 적어보려고 합니다! 그럼 시작! # 1) Cosine Similarity : 두 벡터의 각도를 이용하여 구할 수 있는 유사도. 직관적으로 두 벡터가 가리키는 방향이 ..
저번 포스팅에서는 컨텐츠 기반 추천인 CB(Content-based Recommendation)에 대해 공부해봤는데요! 이번에는 많이 쓰이는 협업필터링(CF)에 대해 적어보려고 합니다!! # 협업 필터링? : CF(Collaborative Filtering) => 유저 A와 비슷한 성향을 갖는 유저들이 선호하는 아이템을 추천한다. => 아이템이 가진 속성을 사용하지 않으면서도 높은 성능을 보임! # 1) User-based Collaborative Filtering : 두 유저가 얼마나 유사한 아이템을 선호하는가? 유저간의 유사도를 구한뒤, 나와 유사도가 높은 유저들이 선호하는 아이템을 추천함! 예시 ) User B가 스타워즈에 매긴 평점을 예측하고 싶은 상황에서 User A,B가 각 영화에 매긴 평점을..
# 컨텐츠 기반 추천? : CB(Content-based Recommendation) 유저 A라는 사람이 과거에 선호한 아이템의 메타데이터를 가지고 비슷한 아이템을 유저 A에게 추천한다. => 아이템의 메타데이터의 예) - 영화 : 배우, 감독, 영화장르 - 음악 : 아티스트, 장르, 리듬, 무드 - 블로그 / 뉴스 : 비슷한 주제나 내용을 가진 텍스트(문장, 단어) - 사람 : 공통의 친구를 많이 가진 다른 사람 # Item Profile 추천 대상이 되는 아이템의 Profile을 만들어야한다. Profile은 아이템이 가지고 있는 특징들로 구성되있는데 이 속성들을 Vector형태로 표현한다. * 문서의 경우 Item Profile : 중요한 단어들의 집합으로 표현 단어에 대한 중요도를 나타내는 스코어..
# Offline Test - 새로운 추천 모델을 검증하기 위해 가장 먼저 필요한 단계 - 유저로부터 수집한 데이터를 Train/Valid/Test로 나누어 모델의 성능을 평가 => 추천모델을 고도화시킬 수 있다 # Online A/B Test - 추천시스템의 변경 전후의 성능을 비교하는 것이 x - 동시에 대조군(A)와 실험군(B)의 성능을 평가 (단, 같은시간 및 같은 환경에서 평가해야함) - 실제 서비스를 통해 얻어지는 결과를 통해 최종 의사결정 => 시간별로 유의미한 차이를 꾸준히 나타내는지 # 추천 시스템 별 평가지표 1) 랭킹(Ranking) => 주로 NDCG@k / Recall@k : 유저에게 적합한 아이템 Top K개를 추천 유저의 아이템에 대한 선호도를 구할 필요 없이 소비자가 선호할 ..
말그대로 인기있는 제품을 추천해주는 것이 인기도 기반 추천이다.! [1. Most Popular] : 조회수가 가장 많은 아이템을 추천 예 ) 뉴스추천(다른 유저들도 관심을 가지고 있는 핫한 이슈를 보기 위함) 예 ) 10명의 뷰(인기도), 6시간 지남 -> 10-6/4=8.5 25명의 뷰(인기도), 24시간 지남 -> 25-24/4=21 이 방식의 문제점은 pageview(인기도)가 더 빠르게 늘어난다면 1~2년이 지나도 계속해서 같은 글이 Top Rank에 보일 것임! 뉴스의 가장 중요한 속성은 최신성! 최신성을 고려하기 위해 업로드 날짜를 고려해줘야한다! # 방법1) Hacker News Formula 시간이 분모에 있어 시간이 지날수록 age가 점점 증가하므로 score가 작아진다! age를 고려..
강사님의 소개 - 추천시스템 구현을 목표로 두고 공부를 한 것은 아님 - 머신러닝 공부 -> 업무 : 추천, 광고 - 추천시스템은 비즈니스, 서비스와 맞닿아 있음 - 성과가 바로바로 옴 / 재밌음 이 강의가 당장 적용할수 없을지라도 좋은 자료가 될 것임! [1-1] 추천시스템 기초 # 추천(Recommendation)이란? Search(검색) : 명확하게 원하는 것을 가져옴 Recommend(추천) : 검색하지 않아도 알아서 알려줌 -> push방식 # Long-Taile 추천 - Popular products : 왼쪽의 파란색 면적은 모두에게 인기있는 모두가 좋아하는 제품이다. - Long Tail : 우측의 연두색 면적으로 Long tail의 면적이 커진다면 좋은 플랫폼으로 서비스의 질이 높아진다고 ..
2021년 여름에 수료한 데이터청년캠퍼스에서 수료생을 대상으로 하는 심화학습 프로그램이 개설되어 1년동안 원하는 강의를 선택하여 수강할 수 있게 되었습니다! 이렇게 7가지 코스가 있고 듣고싶은 코스가 많았지만 ㅠㅠ 저는 평소에 공부해보고 싶었던 부분 중 하나인 비즈니스 Case와 딥러닝을 활용한 추천시스템 구현 코스를 선택하였습니다!! 수료 후에는 이런..멋있는 수료증도 받았답니다..ㅎ 내용 자체가 처음 접하는 부분이고 배울 점이 많다보니까 강의를 한번 더 듣고 공부하면서 이해한 내용을 블로그에 정리해보려고 합니다!
작업형 제 1유형을 풀어나갈 때 자주 등장하는 것들을 정리해보았습니다! 그럼 시작! 1. 오름차순, 내림차순 정렬 데이터프레임을 다룰 때 오름차순이나 내림차순으로 정렬해야하는 경우가 자주 등장한다. 오름차순(작은수부터)으로 정렬하려면 특별한 옵션을 주지않아도 되지만 내림차순(큰수부터)으로 정렬하고 싶다면 ascending=False라는 옵션을 추가해주어야 한다. # 데이터프레임명.sort_values('컬럼명', ascending=False, inplace=True) # data의 'CRIM'을 내림차순으로 정렬하여라 data.sort_values('CRIM', ascending=False, inplace=True) inplace=True 옵션을 추가하면 data(데이터프레임명)이 옵션에 맞게 바뀐다. ..