개발자 끄적끄적
Collaborative Filtering(콘텐츠 기반 추천) 본문
<개인화 추천기술의 필요성>
- 콘텐츠의 증가
- 콘텐츠의 증가로 인하여 사용자가 원하는 콘텐츠를 선택하기가 어려워짐
- 사용자의 패턴이나 구매 내역을 분석해서 사용자 취향에 맞는 콘텐츠를 필터링하여 자동으로 제공하는 것이 요구된다
- 적용분야
- 고품질의 추천 필요
- 인터넷 쇼핑몰에서의 상품 추천(상품, 도서, 영화)
- 웹 환경에서의 웹 사이트, 웹 페이지 추천, SNS상의 추천
- 구글, YouTube, Facebook, LinkedIn, 포털사이트
<어떻게 개인화 된 서비스를 해줄 수 있을까?>
- 각 사람에 맞는 추천을 해주기 위해서는 아래와 같이 여러 가지 정보들을 고려해야 한다
- 개인화된 추천을 제공하기 위해 고려할 수 있는 정보들
- 사용자의 인구통계학적 속성 정보(Demographic features) : 나이, 성별 주소 등
- 콘텐츠의 속성 정보(Contents Features) : 제목, 설명문(Abstract)
- 사용자의 과거 이용 정보(Purchase History) :상품 구매 또는 서비스 이용 등
- 상품의 과거 구매 정보(Sales History) : 구매 패턴 분석
<개인화 추천기술의 종류>
- 추천 기술의 일반적인 분류
- 내용기반 추천(Content-based Recommendation)
- 사용자가 이전에 이용한 콘텐츠 중에서 높은 선호도를 준 콘텐츠와 내용 정보가 유사한 다른 콘첸를 추천한다
- 협력적 추천(Collaborative Recommendation or Social Filtering) : 선호도 사용
- 사용자 기반 추천
- 아이템 기반 추천
- Latent Factor Model
- 추천에 고객과 item을 나타내는 저차원의 factor를 사용
- Graph Based Recommender System : Link Prediction
- 그래프 형태의 데이터에서 추천에 사용
- 친구 추천(Facebook, LinkedIn), TV 프로그램 추천
<개인화 추천기술의 종류>
- 내용기반 추천(Content-based Recommendateion)
- 사용자가 이전에 이용한 콘텐즈 중에서 높은 선호도를 준 콘텐츠와 내용 정보가 유사한 다른 콘텐츠를 추천한다
- 다른 사용자의 data가 필요하지 않다
- 적절한 item profile을 찾는게 어려울 수 있다 : 영상, 음악 등
- Item Profiles
- 각 item에서 item profile 작성
- item profile은 item의 특징 벡터
- ex) 영화 - 저자, 제목, 배우, 감독, ...
- ex) 문서 - 문서 내에서의 중요한 단어들
- User Profiles
- 사용자가 평점(선호도)을 매긴 item profile의 가중 평균
<Collaborative Filtering>
- 선호도 정보 사용
- User based methods
- Item based methods
<데이터의 종류 및 형태>
- Item-user matrix : 항목에 대한 사용자 선호도를 측정값
- 선호도는 점수화 된 평가(explicit ratings)또는 구매, "좋다" 또는 클릭을 나타내는 이진화 행동(implicit ratings)
- Cells are i_th user preferences(선호도), rij, for items j
- More efficient to store as rows of triplets(sparse matrix)
- Each row has the user ID, the item ID, and the user's rating of that item(U(u), I(i), r(ui))
<사용자기반 협업 필터링 : people like you>
- 사용자가 기반 협업 필터링(User based methods)
- 사용자와 성향이 비슷한 사용자들이 공통적으로 좋아하는 콘텐츠를 추천한다
- 과거에 이용한(구매한) 콘텐츠가 비슷하면 사용자 성향이 비슷하다고 본다
- 용어
- 협력적 추천, CF추천, 협력적 여과, 사회적 여과 등으로 불린다
<User-based Collaborative Filtering>
- Start with a single user who will be the target of the recommendations
- Find other users who are most similar, based on comparing preference vectors
- Measuring Proximity(유사도 계산)
- Euclidean distance does not do well
- Correlation proximity does bertter(Person)
- For each user pair, find the co-rated items, calculate correlation between the vectors of their ratings for those items
- Note that the average ratings for each user are across all products, not just the co-rated ones
<Cold Start Problem>
- 협업 필터링은 새 사용자 또는 새 항목에 대한 추천을 만드는 데 그래도 사용할 수 없다는 콜드 스타트(Cold Start)문제가 있다
단일 항목을 평가한 사용자의 경우 이 사용자와 다른 사용자 간의 상관 계수(사용자 생성 협업 필터링)의 분모는 0이고
코사인 근접도는 등급에 관계없이 1이 된다
비슷한 맥락에서 사용자는 단일 항목만 가지고 있고, 사용자가 한 명뿐인 항목은 인근 이웃의 후보 자격이 없다
<Using the similarity info to make recommendations>
- Given a new user, identify k-nearest users based on similarity
- Consider all the items they rated/purchased, except for the co-rated ones(new user가 이미 구매한 것은 제외)
- Among these other items, what is the best one? "Best" could be
- Most purchased(이진화 구매 데이터인 경우, 선호도 없다)
- Highest rated(평가 점수 데이터 : 가장 높은 평가 점수 item)
- Most rated(평가 점수 데이터 : 가장 많이 평가된 item)
- That "best" item is the recommendateion for the new user
<Item-based collaborative filtering>
- When the number of users is hunge, it is computationally cheaper to find similar items rather than smilar users
- Alternative - when a user purchases an item, focus on similar items(상관계수, cosine 사용)
- When a user express interest in a particular item,
1. Find co-rated(co-purchased) items (by any user) with the item of interest
- calculate item smilarity between all the items(offline)
2. recommend the most popular or most correlated item among the similar items
'데이터 마이닝' 카테고리의 다른 글
Clustering Analysis (0) | 2023.04.12 |
---|---|
분류기 ROC (0) | 2023.03.21 |
분류 정오행렬 (0) | 2023.03.20 |