대학원 수업/sns 분석

[HMM12] - Recommendation in Social Media

따옹 2023. 6. 18. 21:50

 

Difficulties of Decision Making

- 어떤 카메라를 살지, 휴일을 어디서 보낼지, 무슨 영화를 빌릴지, 누구를 팔로우 할지, 재밌는 기사를 어디서 발견할 것인지,...

 

선택이 너무 많고 정보가 부족할 경우 선택이 어려움

-> 추천시스템으로 사용자에게 정보 제공

 

ex) 넷플릭스, 유튜브 알고리즘

 

Main Idea behind Recommender Systems

과거의 선호도를 기반으로 미래의 선호도를 예측

a recommender system takes a set of users U and a set of items I and learns a function f such that:

f : U x I -> R

 

Recommendation vs. Search

검색으로는 한계가 있음, customize 한 정보가 아님

Consider the query “best 2014 movie to watch

– The same results for an 8 year old and an adult

 

Challenges of Recommender Systems

1. The Cold Start Problem (항상 있는 문제)

초기 사용자에 대해서는 과거 history가 없기 때문에, 추천이 쉽지 않음

->Netflix : 사용자의 취향을 물음

2. Data Sparsity

가입한 지 오래 되었지만, 지금까지 사용자가 이용한 데이터가 많지 않음(개인마다 본 영화가 많지 않음)

sparse matrix

3. Attacks

fake user에 대한 별점 올리기

4. Privacy

5. Explanation

이걸 왜 추천했는지에 대한 자세한 설명 제공 x

 

Classical Recommendation Algorithms Social Media

1. Content-based algorithms

사용자에게 추천되는 상품은 사용자의 profile과 유사(유사도가 높을 수록 추천)

사용자의 관심사와 유사할 수록 사용자가 pick 할 확률이 높아짐

1. Describe the items to be recommended

2. Create a profile of the user that describes the types of items the user likes

3. Compare items with the user profile to determine what to recommend

 

상품과 사람의 속성의 유사도를 어떻게 측장할까?

TF-IDF를 사용해서 벡터화

 

2. Collaborative filtering

협업 필터링 : 협업을 통해 정보를 select

Advantage: we don’t need to have additional, 사용자들의 구매 이력만 보고 추천

 

Rating Matrix

Explicit ratings: 유저가 직접 주는 것

Implicit ratings: 음악을 들은 list를 보고 사용자의 선호도를 파악, 홈페이지에 머무른 시간 정보를 가지고 선호도 파악

 

Collaborative Filtering

Memory-Based Collaborative Filtering

User-based CF

내가 예측하고자하는 사용자와 가장 가까운 사용자를 찾고 추천

U2와 가장 비슷한 U를 찾음(Cosine 유사도) -> U1, 일때 U2I4 = 4

 

Item-based CF

내가 예측하고자하는 item과 유사도가 가장 높은 item을 구하고 추천

I3와 가장 유사한 아이템은 I4

 

Collaborative Filtering: Algorithm

1. Weigh all users/items with respect to their similarity with the current user/item

2. Select a subset of the users/items (neighbors) as recommenders

3. Predict the rating of the user for specific items using neighbors’ ratings for the same (or similar) items

4. Recommend items with the highest predicted rank

 

user 기반보다는 item 기반을 많이 사용함

user 정보는 변화에 민감하기 때문에 보다 안정적인 item 기반을 많이 사용함

 

User-based CF

유저 u의 아이템 v에 해당하는 rating 예측 =

user u의 평균 rating + (사용자의 v 평점 - v의 평균 rating)/(user u와 가장 유사한 k개의 neighbor를 한 뒤 그들간의 유사도 합)

1. 사용자의 별점 평균

2. jane과 사용자 간의 유사도 측정

3. jane과 가장 가까운 사용자는 (size=2) joe, jorge를 가지고 jane의 Aladdin 예측

 

Item-based CF

1. 각 아이템에 대한 평균 별점 구하기

2. aladdin과 각 item cosine 유사도 구하기

3. (size=2)lion king, anastasia 를 가지고 lion king 별점 예측

 

3. Recommendation Constrained by Social Context

social context에서 추천을 어떻게 할 것인가?

social network 라는 제한 정보를 가지고 추천

– S(i) is the set of k most similar friends of an individual

어떤 개인과 k개의 가장 유사한 친구를 집합으로 함 -> 소셜 네트웍 연결이 되어있는 가장 유사한 사용자 k개

 

(수식)

유저 u에 대한 아이템 i rating =

user u 평균 rating  +

그들간의 유사도*(유저u의 친구  v가 아이템 i에 대해서 rating 한 값- 유저 v의 평균 rating)/유저 u의 가장 유사한 k명의 친구을 도출하고 그들간의 유사도 합

 

social network 정보를 가지고 k개를 도출

Jane, john 이 유사한데, 친구인지 아닌지도 같이 판별

jill x johm 고려 x -> jorge 데려와 (친구네)

 

그럼 Jane, jorge 데려와 그리고 위 수식 적용해