Recommender System
Utility Matrix
R: utility matrix
Alice
5
2
Bob
4
3
Carol
1
5
David
2
R=∣U∣×∣I∣
U: set of users
I: set of items
problem
R is sparse
cold start problem
새로운 item들에 대한 rating이 없음
새로운 user들에 대한 기록이 없음
Recommender Systems
1. Content Based
사용자가 이전에 높은 평가를 준 아이템과 유사한 아이템을 추천
아이템 간 유사성을 계산하기 위해 아이템의 특성(feature)을 활용
텍스트 기반의 데이터를 다룰 경우, 문서에서 중요한 단어를 추출해야 하며, 이를 위해 TF-IDF 사용
TF-IDF
TF-IDF=wid=TFid×IDFi, 값이 클수록 해당 단어의 중요도가 높은 것
TF(Term Frequency)
특정 단어가 문서 내에서 얼마나 자주 등장하는지를 나타냄
TFid=maxkfkdfid, fid: document d에 있는 term i의 빈도수
IDF(Inverse Document Frequency)
특정 단어가 전체 문서에서 얼마나 드물게 나타나는지를 나타냄
한 documnet에서만 나타나는 word가 중요하다는 것
inverse 하는 이유는 모든 document에서 발현되면 중요도를 줄이기 위함
IDFi=log(niN), term i가 총 document 개수 N의 ni에서의 빈도수
e.g. Document A=[b a b c a a], B=[a b c], C=[a d e f], D=[a d e g]
A: {a:3, b:2, c:1} -> 각 item이 document A에서 나타난 개수
TFaA=max(a=3,b=2,c=1)a=3=33=1
TFbA=max(a=3,b=2,c=1)b=2=32
A, B, C, D: {a: 4, b: 2, c: 2, d: 2, e: 2, f: 1, g: 1} -> 각 item이 나타난 document의 개
IDFa=log(a=4N=4)=log(44)=0
IDFg=log(g=1N=4)=log(14)=log4
Heuristic
Rxi=cos(x,i)=∣∣x∣∣ ∣∣i∣∣xTi
x: user profile, 사용자의 이전 활동으로부터 생성된 프로필 (e.g. 관심사, 과거 평점)
i: item profile, 아이템의 특성을 나타내는 프로필 (e.g. 키워드, 장르, 카테고리)
특징
장점
다른 사용자의 데이터 필요 없음
새롭고 인기 없는 아이템 추천 가능
단점
적절한 특징(feature)를 찾기 어려움
사용자의 컨텐츠 프로필을 벗어난 항목을 추천하지 않
2. Collaborative Filtering
나와 비슷한 선호도를 가진 user를 기반으로 추천
user-user collaborative filtering
item-item collaborative filtering
user-user collaborative filtering
나와 유사한 user가 rating한 것을 기반으로 rating
centered cosine similarity(=pearson correlation coefficient: 선형 관계 데이터만 설명 가능)
normalize as rating - mean of row rating
cosine similarity
rxi=∑y∈NSxy∑y∈NSxyryi
x,y: user
Sxy=sim(x,y)
e.g. N=2일때, user1의 item5에 대한 rate을 예측하여라
user1
1
5
3
3
?
user2
1
4
4
user3
4
4
3
5
user4
1
4
5
각 user 별 평균 계산
user1=41+5+3+3=3
user2=31+4+4=3
user3=44+4+3+5=4
user4=31+4+5=3.3
null 값이 아닌 경우 평균을 빼주고 null 값인 경우 0으로 정규화
user1
-2
2
0
0
0
user2
-2
1
0
0
1
user3
0
0
-1
0
1
user4
-2.3
0.7
0
0
1.7
cosine similarity 계산(소숫점 둘째자리 반올림)
sim(user1,user2)=(−2)2+22+02+02+02(−2)2+12+02+02+12−2×−2+2×1+0×0+0×0+0×1=0.87
sim(user1,user3)=0
sim(user1,user4)=0.72
rate 계산
user1과 가장 유사한 2명의 user는 user2(sim=0.87)과 user4(sim=0.72)
item5(user1)=0.87+0.720.87×4+0.72×5=4.45
item-item collaborative filtering
예측하고자 하는 item과 유사한 item에 대해 user가 rating한 것을 기반으로 rating
user-user와 계산 방식 동일(user x item을 item x user로 바꿔 계산)
user-user 보다 더 나은 성능을 보임(user는 다양한 취향이 고려되어야하는 반면 item은 단순함)
baseline predictor collaborative filtering
rxi=bxi+∑j∈N(i:x)Sij∑j∈N(i:x)Sijrxj
bxi=μ+bx+bi: user
Sij=sim(i,j)
N(i:x): user x가 item i와 유사하게 rating한 item의 집합
bx: user x의 rating 편차
bi: item i의 rating 편차
example
μ=3.7,bi=0.5,bx=−0.2
bxi=3.7+0.5+(−0.2)=4.0
3. Latent Factor Models
R을 P(items×factors)와 Q(factors×users)로 decomposition
Rxi=Qi⋅Px
Qi: Q의 row i
Pi: PT의 col x

만약, item1에 대한 user5의 rate을 예측한다면 → R5,1=[0.1,−0.4,0.2]⋅[−2,0.3,2.4]=3.4
Stochastic Gradient Descent
concept
gradient descent: f(x) 값이 최소가 되는 x를 찾는 과정
graidnet(▽f(x)) 계산
x′=x−η▽f(x), η:learning rate
x=x′
until convergence: ∣x′−x∣<ϵ or set number of iterations
stochastic gradient descent
gradient descent는 전체 학습 데이터셋을 이용해 에폭 한번 당 gradient를 업데이트(비효율적)
stochastic gradient descent는 batch size로 학습 데이터 안에 subset 데이터를 만들고 이를 이용해 gradient를 업데이트(효율적)
loss
J(P,Q)=minP,Q ∑(x,i)∈R(rxi−qipx)2+[λ1∑x∣∣px∣∣2+λ2∑i∣∣qi∣∣2]
J(P,Q,b)=minP,Q,b ∑(x,i)∈R(Rxi−R^xi)2+λ[∑x∣∣px∣∣22+∑i∣∣qi∣∣22+∑x∣∣bx∣∣22+∑i∣∣bi∣∣22]
R^xi=μ+bx+bi+qipx
Correlation
e.g. study times과 exam score 사이의 상관관계
A
10
75
B
8
60
C
12
85
D
6
55
E
7
90
Pearson Correlation: 선형 관계 측정, 이상치에 민감(크기 정보 활용하기 때문)
calculate mean of data
study times: 510+8+12+6+7=8.6
exam score: 575+60+85+55+90=73
substract
studentstudy timesexam scoreA
1.4
2
B
-0.6
-13
C
3.4
12
D
-2.6
-18
E
-1.6
17
cosine similarity
r=1.42+(−0.6)2+3.42+(−2.6)2+(−1.6)222+(−13)2+122+(−18)2+1721.4×2+(−0.6)×(−13)+3.4×12+(−2.6)×(−18)+(−1.6)×17
r=0.4
Spearman’s Rank Correlation: 단조 관계 측정, 이상치에 덜 민감(순위 정보 활용하기 때문)
rank data
studentRank(study times)Rank(exam score)A
2
3
B
3
4
C
1
2
D
5
5
E
4
1
calculate
Di=Rank of study timesi−Rank of exam scorei
student
Di
A
-1
B
-1
C
-1
D
0
E
3
calculate
ρ=1−n(n2−1)6∑i(Di)2=1−5(52−1)6[(−1)2+(−1)2+(−1)2+02+32]
ρ=1−0.6=0.4
Last updated