추천시스템(RS) 9

RMSE, NDCG 추천 시스템 평가 지표

RMSE 평가를 안할 수 없으니, 정량적인 평가를 해보자 Root Mean Square Error 평균 제곱근 편차 실제 값과 모델의 예측 값의 차이를 하나의 숫자로 나타낸다 예측 대상 값에 영향을 받는다 (Scale-dependent) 평점 등 prediction problem의 추천 성능을 평가할 때 사용하는 지표 제곱하여 더 큰 오차를 만든다. 제곱근으로 원래 scale의 숫자로 돌아감 RMSE는 낮을 수록 추천 알고리즘이 성능이 좋다고 평가 가능 성능이 좋다고 해서 꼭 좋은 추천은 아니다. 잔차의 제곱을 산술평균한 값의 제곱근 = 표준편차 = RMSE 이러한 극단적인 예가 있기 때문에 RMSE가 작다고 무조건 좋은 건 아니다. NDCG Normalized Discounted Cumulative G..

추천시스템(RS) 2022.07.27

추천 시스템 종류와 한계

추천 알고리즘 컨텐츠 기반 추천 시스템 - 사용자가 과거에 좋아했던 아이템 파악, 그 아이템과 비슷한 아이템 추천 - 스파이더맨 4.5 -> 캡티마블 > 타이타닉 협업 필터링 - 비슷한 성향, 취향을 갖는 다른 유저가 좋아한 아이템을 현재 유저에게 추천 - 간단하면서 수준 높은 정확도를 나타낸다 - 스파이더맨 4.5준 2명의 유저 -> 유저 A가 과거 좋아했던 캡티 마블을 유저 B에 추천 하이브리드 추천 시스템 - 컨텐츠와 협업 필터링의 장 담점을 상호보완 - 협업 필터링은 새로운 아이템에 대한 추천 부족 - 컨텐츠 기법이 cold-start 문제에 도움을 줄 수 있다. 1. Context 기반 추천 - 문맥 인식 추천 2. 커뮤니티 기반 추천 - 커뮤니티 선호도를 바탕으로 추천 3. 지식 기반 추천 -..

추천시스템(RS) 2022.07.12

추천 시스템이란?

추천 시스템 - 사용자와 상품으로 구성된 시스템 - 특정 사용자가 좋아할 상품 추천 - 비슷할 상품을 좋아할 사용자를 추천 - 아이템이든 유저든 관심을 가질만한 정보를 추천 사용자가 정보를 수집하고 찾는 시간을 줄여준다. 검색 vs 추천 사용자와 상품 - 사용자와 아이템 사이의 관계를 분석하고 연관관계를 찾는다 - 해당 연관 관계 점수화 - 사용자의 정보와 아이템 정보 활용 사용자 프로필 - 사용자 구분 할 수 있는 정보 활용 수집방법 - 직접적인 방법 - 간접적인 방법 개인별 추천 또는 사용자 그룹별 추천 가능 아이템 프로필 - 플랫폼마다 정의하는 아이템 종류가 다르다 - 일반적으로 생각해볼 수 있는 추천 아이템 - 모든 것을 추천해주는 플랫폼은 현재 없다 아이템 프로필에 속하는정보 - 아이템ID, 아..

추천시스템(RS) 2022.07.12

CBF 기반 예측

아이템 유사도 기반 평점 예측 가정: 유사한 영화에는 유사한 평점을 부여할 것이다. 아이템간 유사도를 기준으로 평점에 가중치를 부여하여 평점을 예측한다. 컨텐츠 기반 유사도 측정 두 아이템간 유사도를 어떻게 정량화 할 것인가? CBF에서는 유사도를 정량화 하기 위해서 컨텐츠 자체가 가진 특성을 이용한다. 뉴스: 제목, 기사내용 영화: 장르, 감독, 출연자, 줄거리 상품: 카테고리, 가격, 상품 이미지, 상품 설명 집합 유사도 벡터 공간으로 확대한다. - 원소에 해당하는 차원을 상정하면 집합은 쉡게 벡터로 표현 가능하다 - 이진 벡터는 집합을 표현할 수 있다 - 각 원소의 가중치를 달리 적용하는 것이 수월해진다. 유사도 계산을 위한 기초 수학 지식 Vector Space Model Vector Distan..

추천시스템(RS) 2022.07.11

MovieLens Dataset

- 작은 데이터, 큰 데이터로 나눠져 있음 데이터 Record 영화 평점 예측 - 개인화 추천 - Explicit 명확한 데이터 - CBF, CF - 평점 예측 모델 Pandas 라이브러리를 활용한 데이터 분석 - datetime - apply - groupby - merge - sample - drop - agg - display # 초로 나와있는 col을 년월일초로 변경 하여 date라는 df로 만들어줌 df['date'] = pd.to_datetime(df['timestamp'].astype(int), unit='s') # year라는 col를 생성한다 date에서 year만 가져온다. df['year'] = df['date'].apply(lambda x: x.year) # year로 묶어서 cou..

추천시스템(RS) 2022.07.11

추천시스템 고려사항

고려사항 예측 vs 발견 추천 만족도 추천 신뢰도, 설명도 - 추천 결과에 대해 사용자가 신뢰 할 수 있어야 함 - 추천 결과가 어떻게 생성 됐는지 설명 제공, 근거 제공 UI, UX 도 중요함 - 다양한 니즈 충족 - 넷플릭스의 많은 변화 시스템 성능 - 많은 사람들에게 높은 정확도 - 얼마나 짧은 시간 - 알고리즘 특성에 따라서 스케일 업, 스케일 아웃 - 얼마나 새로운 피드백을 받아서 추천 시스템 보완 - 딥러닝은 학습속도가 느려 높은 Recency 힘듬 Recsys - 추천 시스템은 단지 예측하는 것 이상이다. 실제 삶의 추천시스템을 디자인하는것에 대한 issue들? - Feature 엔지니어링 - 학습 데이터셋 - Metrics - A/B 테스트 - 시스템 scalability

추천시스템(RS) 2022.07.11

추천시스템 성능 평가

성능평가 단계 1. 모델에 대한 성능 평가 단계 - 과거의 정보를 가지고 미래를 예측 - 여러번 시간에 흐름에 따라 평가 해야 함 2. 심사위원 평가 - 정성적 평가 - 내부 인력, 외부인력 추천 결과의 품질을 평가 3. 온라인 성능 평가 A/B 테스트 - 서비스의 KPI 지표로 평가 - 시스템이 로그를 수집할 수 있도록 설계해아함 - 어떤 모델, 어떤 알고리즘인지 기록해야 함 Rating Prediction 성능평가 - RMSE - 큰 오차에는 큰 페널티 - 작은 오차는 작은 페널티 - MAE - 오차 만큼의 페널티 TOP-K 추천 성능 평가 - Precision & Recall 혼동 행렬 Precision@K & Recall@K 추천 결과의 개수가 K개일 때 Precision & Recall "사용자..

추천시스템(RS) 2022.07.11

추천시스템 분류

추천시스템의 분류 어떤 요건에 맞춰 어떤 데이터를 활용하여 어떤 모델을 이용하여 어떤 방식으로 계량 할 것인가? 요건 - 베스트 셀러 - 관련 상품 - 맞춤 추천 - 특정 상황 베스트 추천 관련 추천 개인화 추천 Feedback 데이터에 따른 분류 Explicit Feedback - 사용자의 아이템에 대한 명시적 선호 정보를 가진 이력 - 1점~10점 - 만족/보통/불만족 - 선호 데이터 수집의 어려움 Implicit Feedback - 사용자의 아이템에 대한 암시적 선호 정보를 가진 이력 - 조회/ 구매/ 시청/ 머무른 시간 - 사용자의 아이템에 대한 선호도를 명확히 알기 힘들다. Explicit과 Implicit 는 서로 변환 가능하다. 행위 이력으로 Rating 추정 - 끝까지 본 영화는 높은 평점..

추천시스템(RS) 2022.07.11

추천시스템 개요

추천시스템 개요 사용자 관점 - 사용자 취향/선호 파악 - 예측, 제공 서비스 제공자 관점 - 서비스 제공자가 목표로 하는 KPI 달성 (매출, PV, UV) 도메인에 따라 다른 접근 방식 요구 추천: 어떤 사용자에게 어떤 아이템을 제공할 것인가? 사용자 요소 - 선호 - 취향 - 흥미, 관심 - 의도 - 상황 - 맥락 사용자 정보 - 나이 - 성별 - 위치 - 직업 아이템 정보 - 이름 - 색 - 사이즈 - 카테고리 - 가격 행동 - 클릭 - 구매 - 장바구니 - 좋아요 - 머무른 시간 엔지니어가 바라보는 추천 - 사용자나 서비스에 필요한 바를 잘 정의 - 다양한 데이터 수집 - 적절한 방식을 통해 적합도 계량 - 적절한 방식으로 제공 검색 vs 추천 결국 비슷하지만 큰 차이가 존재 넓게 보면 검색도 ..

추천시스템(RS) 2022.07.11