추천 시스템 적용으로 인한 매출, PV의 증가
새로운 추천 아이템으로 인한 유저의 CTR 상승
PV (Page View)
CTR (Click Through Rate)
광고가 노출되었을 때 얼마나 클릭을 했느냐라는 수치를 나타냄
일반적인 공식은 (클릭수/노출수)∗100
ex. 광고 100번 노출되었을 때 10번의 클릭이 일어났다면 CTR은 10%이다.
연관성(Relevance) : 추천된 아이템이 유저에게 관련이 있는지
다양성(Diversity) : 추천된 Top-K 아이템에 얼마나 다양한 아이템에 추천되는지
새로움(Novelty) : 얼마나 새로운 아이템이 추천되고 있는지
참신함(Serendipity) : 유저가 기대하지 못한 뜻밖의 아이템이 추천되는지
새로운 추천 모델을 검증하기 위해 가장 먼저 필요한 단계
유저로부터 이미 수집한 데이터를 Train/Valid/Test로 나누어 모델의 성능을 객관적인 지표로 평가
보통 Offline Test에서 좋은 성능을 보여야 Online 서빙에 투입되지만, 실제 서비스 상황에선 다양한 양상을 보임 (Serving Bias)
성능 지표: Precsion@K, Recalll@K, MAP, NDCG, Hit Rate, RMSE, MAE
논문이나 A/B Test에선 강조된 지표를 자주 사용한다.
Offline Test에서 검증된 가설이나 모델을 이용해 실제 추천 결과를 서빙하는 단계
추천 시스템 변경 전후의 성능을 비교하는건이 아닌, 동시에 대조군A과 실험군B의 성능을 평가함
대조군과 실험군의 환경은 동일해야 한다.
실제 서비스를 통해 얻어지는 결과를 통해 최종 의사결정이 이뤄짐
성능 지표: 매출, PV, CTR 등의 비즈니스 / 서비스 지표
대부분 현업에서 의사결정을 위해 사용하는 최종 지표는 모델 성능(RMSE, NDCG 등)이 아닌 비즈니스/서비스 지표를 사용한다.
이진 분류 Binary Classification의 Metric으로 사용되는 지표
Precision: True라고 예측한 것들 중 실제 True인 비율
Recall: 전체 True 중 True라고 예측한 비율
Precision@K: 우리가 추천한 K개 아이템 가운데 실제 유저가 관심있는 아이템의 비율
Recall@K: 유저가 관심있는 전체 아이템 가운데 우리가 추천한 아이템의 비율
Example
앞서 Precision@K, Recall@K는 모두 순서를 신경쓰지 않음
추천 시스템에서는 사용자가 관심을 더 많이 가질만한 아이템을 상위에 추천해주는 것이 매우 중요하며 이를 위해 성능 평가에 순서 개념을 도입한 것이 Mean Average Precision@K
Mean과 Average가 모두 평균이므로 혼란스러울 수 있으나 정확하게는 Average Precision의 Mean으로 해석
Precision@K와 다르게 연관성 있는 relevant한 아이템을 더 높은 순위에 추천할 경우 점수가 상승
Precision@i : 추천한 아이템 개수 K중에서 해당 인덱스까지만 고려했을 때의 Precision 값
rel(i) : relevence를 나타내며 해당 아이템을 사용자가 좋아했는지 여부를 나타냄 (0 or 1)
m: 모든 아이템 중에서 사용자가 좋아한 아이템 수
Precision에 relevence를 곱해주는 이유는 정답 아이템이 추천 목록 중에서 딱 해당 순위에만 영향력을 주도록 하기 위함
정답이 1개 있다고 가정할 때, 똑같이 3개의 아이템을 추천했어도 정답을 첫 번째로 추천한 경우가 두번째, 또는 세번째에 추천한 것보다 AP 점수가 높아진다.
example
User A
User B
User A와 User B 둘 다 전체 아이템 중 2개를 좋아했고, 하나가 추천 목록에 포함
하지만 사용자가 좋아한 아이템의 추천 순서가 높았는지 낮았는지에 따라 AP값이 크게 차이남
User A는 첫번째에 맞췄기 때문에 User B에 비해 점수가 훨씬 높음
이와 같이 순서를 평가 지표에 반영한 것이 AP
모든 유저에 대한 Average Precision 값의 평균
→ 추천 시스템의 성능
U : User 집합
|U| : 유저의 수
Example
NDCG는 원래 검색 분야에서 등장한 지표이나 추천 시스템에도 많이 사용됨
위의 두 평가 지표와 마찬가지로 Top K개 아이템을 추천하는 경우, 추천 순서에 가중치를 두어 평가
NDCG@K값은 1에 가까울수록 좋음
MAP는 사용자가 선호한 아이템이 추천 리스트 중 어떤 순서에 포함되었는지 여부에 대해 1 or 0으로만 구분하지만, NDCG@K는 순서별로 가중치 값(관련도, relevance)을 다르게 적용하여 계산
사용자가 특정 아이템과 얼마나 관련이 있는지를 나타내는 값
Relevance값은 정해진 것이 아니고 추천의 상황에 맞게 정해야 함
Example
User A의 아이템에 대한 Relevance
신발 추천인 경우 사용자가 해당 신발을 얼마나 클릭했는지의 클릭 여부(Binary) 등 다양한 방법으로 선정할 수 있음
Example
CG에 순서에 따른 할인 개념을 도입한 것
추천 아이템의 순서가 뒤에 있을수록 분모가 커짐으로써 전체 DCG에 영향을 적게 주도록 함
한계점: 사용자별로 추천 아이템의 수가 다른 경우 정확한 성능 평가가 어려움
Ex. 쇼핑몰에서 클릭한 신발 수가 5개인 사용자와 50개인 사용자에게 추천되는 아이템의 수는 다를 수밖에 없으며 추천 아이템의 수가 많아질수록 DCG값은 증가한다.
정확한 평가를 위해서는 Scale을 맞출 필요가 있음 (정규화)
Example
Example
예시에서 가장 이상적인 경우는 Relevance가 높은 순서대로 A(3), D(3), B(2) 3개를 추천하는 것
A, D, B를 추천했을 때, DCG값은 5.89
Example
NDCG@K는 가장 이상적인 추천 조합 대비 현재 모델의 추천 리스트가 얼마나 좋은지를 나타내는 지표
정규화를 함으로써 NDCG는 0~1사이의 값을 가지게 됨
다음은 K(x축, Rank)가 증가함에 따라, DCG과 NDCG가 어떻게 달라지는지 나타낸 그래프
좌측 그래프는 서로 다른 추천 모델(A~E, Ideal)의 DCG값이고, 우측은 NDCG값을 나타냄
DCG는 K가 증가함에 따라 지속적으로 증가하는 반면, NDCG는 어느정도 K에 독립적이어서 어떤 K가 적절한지 판단이 가능
NDCG가 작은 스케일을 가지기 때문에 비교가 더 용이
사용자가 선호한 아이템 중 1개를 제외 (Leave-One-Out Cross-Validation)
나머지 아이템들로 추천 시스템을 학습
사용자별로 K개의 아이템 추천, 앞서 제외한 아이템이 포함되면 Hit
전체 사용자 수 대비 Hit한 사용자 수 비율, Hit Rate가 됨
Example
정답 평점과 예측 평점 간 절대 오차에 대해서 평균을 낸 것
장점: 직관적이고 해석이 용이함
단점: 오차가 큰 이상치에 쉽게 영향을 받음
오차 제곱의 평균을 내고 루트를 취한 것
MSE(Mean Sqaured Error)는 제곱으로 인해 단위가 커지므로 루트를 씌워 실제 예측값과 유사한 단위를 가지도록 만듬
MSE는 제곱을 하기 때문에, 1미만인 오차는 더 작아지고 그 이상의 잔차는 더 크게 반영되므로 오차의 왜곡현상이 발생하는데 루트를 통해서 이를 완화