Utility Matrix
R: utility matrix
Users \ Items
Avatar
LOTR
Matrix
Pirates
R=∣U∣×∣I∣
problem
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. 키워드, 장르, 카테고리)
특징
단점
사용자의 컨텐츠 프로필을 벗어난 항목을 추천하지 않
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
rxi=∑y∈NSxy∑y∈NSxyryi
Sxy=sim(x,y)
e.g. N=2일때, user1의 item5에 대한 rate을 예측하여라
users \ items
item1
item2
item3
item4
item5
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으로 정규화
item1
item2
item3
item4
item5
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
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
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
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 사이의 상관관계
student
study times
exam score
Pearson Correlation: 선형 관계 측정, 이상치에 민감(크기 정보 활용하기 때문)
calculate mean of data
study times: 510+8+12+6+7=8.6
exam score: 575+60+85+55+90=73
substract
student
study times
exam score
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
Spearman’s Rank Correlation: 단조 관계 측정, 이상치에 덜 민감(순위 정보 활용하기 때문)
rank data
student
Rank(study times)
Rank(exam score)
calculate
Di=Rank of study timesi−Rank of exam scorei
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