728x90
반응형
컨텐츠 기반 추천 (Content-based Recommendation)
특정 유저가 과거에 선호한 아이템과 비슷한 아이템을 해당 유저에게 추천해준다!
장점
- 유저에게 추천을 할 때 다른 유저의 데이터가 필요하지 않음
- 새로운 아이템 혹은 인기도가 낮은 아이템을 추천할 수 있음
- 추천 아이템에 대한 설명이 가능함: 왜 이런 추천결과가 나왔는가에 대해서 합리적이고 타당한 근거를 찾을 수 있음
단점
- 아이템의 적합한 특징을 찾는 것이 어려움
- 한 분야나 장르의 추천 결과만 계속해서 나올수도 있음 (Overspecializatino)
- 다른 유저의 데이터를 활용할 수 없음
어떻게 아이템의 특징을 알아낼까?
Item Profile: 추천 대상이 되는 아이템을 식별하고 특징이 되는 속성을 구성하는 것 → 다양하게 구성한 속성은 vector로 나타낸다
문서 데이터에 대해서 적용한다면 ? TF-IDF !
문서(documnet)의 경우, 중요한 단어들의 집합으로 표현 가능
→ 각 단어에 대한 중요도를 점수(score)로 매길 수 있어야 함
→ 대표적인 방법에는 TF-IDF가 있음
[1단계] 아이템 프로파일링 — TF-IDF (Term Frequenct - Inverse Document Frequency)
기본 원리
- 전체 문서 D, 전체 문서 내 특정 문서 d, 문서 내 단어 w
- 단어 w가 문서 d에 많이 등장 (TF, Term Frequency)
- 단어 w가 전체 문서 D에서는 적게 등장 (IDF, Inverse Document, Frequency)
- 단어 w는 문서 d를 설명하는 중요한 특징 및 단어로 해석 가능 (TF-IDF값 높음)
TF-IDF 계산 공식
- TF: 단어 w가 문서 d에 등장하는 횟수
- IDF: 전체 문서 가운데 단어 w가 등장한 비율의 역수
[2단계] 유저 프로파일링 — TF-IDF (Term Frequenct - Inverse Document Frequency)
- 유저 프로파일링
- 유저가 과거에 선호했던 item-list가 있고, 개별 item은 TF-IDF을 통해 벡터로 표현할 수 있음
- 각 유저가 선호한 Item의 Vector들을 통합하면 User Profile이 됨
- Simple: 유저가 선호한 Item vector들의 평균값 사용
- Varient: 유저가 아이템에 내린 선호도로 정규화한 평균값 사용
[3단계] 유저와 아이템간 유사도 계산
- 유저 프로파일링 벡터와 아이템 프로파일링 벡터간 거리(유사도) 계산
[4단계 ] Recommendation or Prediction
- Recommendation
- 유저 벡터 u와 아이템 벡터 i 간 cos 유사도(score)를 계산 → 둘의 차원이 동일해야 함
- 유사도가 클수록 해당 아이템과 유저간 관련성이 높음
- score가 가장 높은 아이템부터 K개를 유저에게 추천 (Top-N Recommendation)
- Predction
- 유저가 선호하는 아이템 리스트와, 각 아이템들의 벡터, 평점이 존재한다고 가정
- 새로운 아이템과 유저가 선호하는 아이템 간 유사도 계산
- 아이템간 유사도 값을 가중치로 사용하여 평점 추론
728x90
반응형