추천 시스템 - accidentlywoo/legacyVue GitHub Wiki

추천 시스템( Recommendation )


R은 새로운 기술을 바로바로 사용할 수 있다.

Python은 시스템적으로 활용할 수 있게 한다.

DIKI 모델

과거의 데이터 -> 수독적인 데이터 제공에 쓰인다.

추천이 언제부터인가 DL이 됬다.

파레토 법칙 vs 롱테일 법칙

  • 파레토 법칙 : 상위 20%가 리드 : 선택과 집중(소품종 대량 생산)

  • 롱테일 법칙 : 하위 80%가 리드 : Niche market(다품종 소량생선)

필터 버블

추천시스템의 2가지 종류

  1. finding similar people : demographic 추천 시스템의 기본 원리 협업 필터링 유사도를 어떻게 알것인가? -> 과거의 패턴의 유사도를 찾는다. 신선한 추천(serendipity recommen dation) 나하고 비슷한 사람이 한 새로운 경험도 나에게 추천해준다. 많은 데이터가 필요없을 수 도 있다.

  2. finding contents similar : Knowledge 항목 필터링

1. 단점쓰

  1. 콜드 스타트(Cold-Start)문제 처음 데이터를 넣었을 때, 성능이 안나오는 문제

  2. 롱테일(Long tail)문제 시스템 항목이 많다 하더라도 소수의 인기 있는 항목에만 관심이 있다.-> 롱테일이 더 길어짐

  3. 계산량이 비교적 많은 알고리즘이므로 사용자 수가 많은 경우 효율적으로 추천할 수 없음. 구글이 뭔가 해결한 것이 있다.

  4. 독특한 취향의 고객(gray sheep, black sheep) 문제

2. 단점쓰

컨텐츠 끼리의 유사도를 찾기 굉장히 힘들다.

  • 콜드 스타트 문제가 없다.

  • 콘텐츠의 내용을 분석해야 하므로 아이템(콘텐츠) 분석 앍고리즘 분석

--> 보통 많은 경우가 1, 2,를 콜라보해서 사용한다. : Hybrid 기술

콜드 스타트 문제

  • 새로 시작할 때 곤란함을 의미. 협업 필터링 외에 위키 같은 협업 시스템에서 초기 정보 부족의 문제점을 일컫기 위해 사용.

  • 이용자의 행동 데이터가 충분히 모이지 않아 추천이 어려운 상황을 지칭

모델 기반 협력 필터링(Model-based Collaborative Filtering algorithm)

-> ML 모델 기반 분석

PC? ,SVN, NSA..등 숨은 뭐시기를 찾는다. -> KNN

돈많고 시간없는 사람만 쓴다.

KNN + 숨어있는 의미 찾기

관련성 있는 메모리기반 base만들기 1.

구매여부 binary -> 0 / 1 (평점도 널을 수 있다.)

기계학습 -> column / dimension / 피쳐

-> 벡터화 시킴

유사도 찾기? cos similarity / 상관계수(전략 - 항상 좋은 얘는 없다.) /

아이템보다 사람계산이 더 비용이 많이든다. -> 동적으로 계산되는게 많기 때문에.

아마존 : 컨텐츠 속성없이. 내가 구매한 이력의 유사도를 가지고 추천시스템을 계산한다.

-> item base corabortive filtering : 메모리, 캐시, 빠른 필터링

Contents base corabortive filtering

콜라보티브 -> 사람이 과거에 한 행동 기반

추천 정확도는? -> 검증 문제가 굉장히 까다롭다.

넷플릭스는 사람에게 판단을 시켰다. 객관적인 평가가 힘들 수 도 있다.

검증이슈가 줄어들고, 구현이 쉽다. 컨텐츠 베이스 -> 컨텐츠 고유의 속성만 가지고 유사도를 계산

대체제 vs 보완제