개발자 끄적끄적

Collaborative Filtering(콘텐츠 기반 추천) 본문

데이터 마이닝

Collaborative Filtering(콘텐츠 기반 추천)

햏치 2023. 4. 7. 00:03

<개인화 추천기술의 필요성>
- 콘텐츠의 증가
  - 콘텐츠의 증가로 인하여 사용자가 원하는 콘텐츠를 선택하기가 어려워짐
  - 사용자의 패턴이나 구매 내역을 분석해서 사용자 취향에 맞는 콘텐츠를 필터링하여 자동으로 제공하는 것이 요구된다

- 적용분야
  - 고품질의 추천 필요
  - 인터넷 쇼핑몰에서의 상품 추천(상품, 도서, 영화)

- 웹 환경에서의 웹 사이트, 웹 페이지 추천, 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