728x90
728x90
728x90

추천 시스템 모델을 개발하고 나면, offline metric을 통해 먼저 성능을 가늠해본다.

여기서는 각 offline metric의 정의와 장점, 단점, 단점보완법 등을 알아보자.

 

상황:

tester는 주어진 기간에 구매한 상품set이 존재하고 B = set(bitem_1, bitem_2, ..., bitem_N])

recommendation engine은 각 tester마다 추천 상품 list가 존재 R = [ritem_1, r_item2, ..., ritem_K]

 

Hit rate

-유저마다 Top-k recommendation에서 hit한게 존재하면 hit += 1

-#hit/#user

-고객의 내역 중 time-axis가 존재한다면

  -train/test를 특정 time으로 나눠 계산 가능

  -혹은 고객별 first J data를 활용하여 train후 J+1부터를 test로 삼아 계산 가능

-time-axis가 존재하지 않는다면 leave one out cross validation 사용

장점:

-해석이 아주 간편함

-time-axis가 존재하지 않을 때, 계산량은 많으며 굉장히 낮은 값을 가짐

단점:

-rank-unaware방식

 

ARHR

-Average Reciprocal Hit Rate

-sum(1/rank)/#user

장점:

-rank를 고려하지만...

단점:

-first의 rank만 고려함

 

P@K

-Precision at K

-R의 first K개 중 relevant items의 개수 비율

-Decision-support measure 

ex)

B = set([티셔츠, 반바지])

R = [음료수, 거울, 티셔츠, 반바지]

P@1 = 0/1  # [음료수](1) 중에 set([티셔츠, 반바지])가 존재하는 개수(0)

P@2 = 0/2  # [음료수, 거울](2) 중에 set([티셔츠, 반바지])가 존재하는 개수(0)

P@3 = 1/3  # [음료수, 거울, 티셔츠](3) 중에 set([티셔츠, 반바지])가 존재하는 개수(1)

 

AP@K

-Average Precision at K

-P@1, P@2, ..., P@K의 평균

-Decision-support measure 

장점:

-ranking에 sensitive하다, R 내에서 순서를 바꾸면 score값이 바뀜

-stable, R 내에서 순서를 "조금"만 바꾸면 AP@K값도 "조금"만 바뀜

-ranking이 높은 item이 큰 weight를 갖는다.

-recall-oriented factor가 존재, 즉 tester의 모든 relevant items를 고려해서 AP@K값이 나온다.

단점:

-해석이 어렵다, 이 숫자가 0.03이라고해서 즉각적인 해석이 되지 않는다. 게다가 기본적으로 작은 값들을 가질 때가 많은데, 프로젝트 보고서를 작성할 때 높으신 분에게 이 숫자를 보여주면 기겁할 수 있으니 PM들이 다른 수치가 없냐고 묻는다. 그럴 때엔 다른 수치를 대체하여 사용하거나, 비슷한 도메인에서의 paper에서의 metric을 들고와서 부연설명을 하는게 필요하다.

ex)(위의 예 이어서)

AP@1 = P@1/1 = 0

AP@2 = (P@1+P@2)/2 = (0+0)/2 = 0

AP@3 = (P@1+P@2+P@3)/3 = (0+0+1/3)/3 = 1/9

 

MAP@K

-Mean Average Precision at K

-각 tester마다 AP@K를 구하고, 전체 tester에 대한 AP@K값의 평균

-Decision-support measure 

-장단점은 AP@K와 같다.

 

DCG(Discounted Cumulative Gain), IDCG(Ideal DCG), NDCG(Normalized DCG)

-Decision-support measure

-Gain = Relevancy level

장점

-MAP는 relevance에 대해서만 고려한다면, DCG형태의 concept은 relevancy의 level에 주목한다.

(즉 MAP는 관련이 있다vs없다 지만, DCG형태는 관련이 x(float)만큼 있다. 형태의 관점)

-

단점

-Bad recommendation에 대해서 penalty 부과를 하지 않는다. 대안책으로 bad에 대해 negative score(원래는 zero score를 부과하지만)를 부과하면 해결이 된다. 이 때 전반적으로 score가 낮아지는 경향을 띄며, precision이 recall보다 중요할 때 사용

-다 맞힌 NDCG@3과 다 맞힌 NDCG@5를 생각하면, 후자가 더 높은 점수여야하는데 보정이 안된다. 이 때, 전자는 missing 2 target으로 생각하고 minimum relevance를 설정하여 부과하여 전자도 NDCG@5로 계산하면 보정이 된다.

(즉 더 높은 k에 대해서 더 잘맞춘 경우 점수가 더 높게 설정이 필요)

 

MAE

-Mean Absolute Error

-tester마다 B의 rating과 R의 predicted rating간의 차이의 합(의 평균, 이 때 평균낼 때는 B 중에서도 tester가 rating한 상품들의 개수가 분모로 간다.)

-Error metrics

특징:

-모든 user를 만족할 필요 없을 때 사용, 즉 몇몇 유저에게는 bad recommendation이 등장할 수 있음

-여러 tester에 대해 MAE를 구할 때, 각 유저마다 상품마다 차이를 구하고, 개별tester기준으로 평균을 하는 이유는, 한 user에게 비교적 predict이 우수했음에도 불구하고 error계산하는 상품이 많았다면, 단순히 error값이 커지기 때문, 즉 all users contribute equally하기 위함

-전체 tester들의 B 중에서 rating한 items가 많은 경우, 그 중 popular item과 not popular item이 존재하는 경우 popular/not popular 으로 divide해서 측정하기도 한다. 이는 popular item이 not popular보다 prediction power가 높기 때문에, 비교적 not popular item이 얼마나 예측력을 가지는 것을 따로 보기 위함(long-tail item에 대한 평가)

-Error metrics이기 때문에, 모든 items를 동일한 weight를 갖고 error 측정, 즉 ranking이 중요하지 않은 형태, 즉 not rank-aware metric으로 Top-k recommendation 관점에서는 부적절

-Recommendation system을 평가할 때는 각 tester마다의 MAE를 구하고 전체 tester에 대해 평균

 

MSE, RMSE

-Mean Squared Error, Root Mean Squared Error

-Error metrics

특징:

-큰 error는 더 큰 error로 해석하기에, bad recommendation이 등장하지 않아야하는 조심스러울 때 유용

-여러 tester에 대해 MSE/RMSE를 구할 때, 각 유저마다 상품마다 차이를 구하고, 개별tester기준으로 평균을 하는 이유는, 한 user에게 비교적 predict이 우수했음에도 불구하고 error계산하는 상품이 많았다면, 단순히 error값이 커지기 때문, 즉 all users contribute equally하기 위함

-전체 tester들의 B 중에서 rating한 items가 많은 경우, 그 중 popular item과 not popular item이 존재하는 경우 popular/not popular 으로 divide해서 측정하기도 한다. 이는 popular item이 not popular보다 prediction power가 높기 때문에, 비교적 not popular item이 얼마나 예측력을 가지는 것을 따로 보기 위함(long-tail item에 대한 평가)

-Error metrics이기 때문에, 모든 items를 동일한 weight를 갖고 error 측정, 즉 ranking이 중요하지 않은 형태, 즉 not rank-aware metric으로 Top-k recommendation 관점에서는 부적절

-MSE는 단위가 rating의 제곱, RMSE는 rating과 같음

-Recommendation system을 평가할 때는 각 tester마다의 MAE를 구하고 전체 tester에 대해 평균

 

참고자료:

www.amazon.com/Building-Recommender-Systems-Machine-Learning/dp/1718120125/ref=cm_cr_arp_d_product_top?ie=UTF8

 

Building Recommender Systems with Machine Learning and AI: Help people discover new products and content with deep learning, neu

Building Recommender Systems with Machine Learning and AI: Help people discover new products and content with deep learning, neural networks, and machine learning recommendations.

www.amazon.com

https://trec.nist.gov/presentations/TREC8/intro/tsld039.htm

 

Average Precision

Average Precision Advantages sensitive to entire ranking: changing a single rank will change final score stable: a small change in ranking makes a relatively small change in score has both precision- and recall-oriented factors ranks closest to 1 receive l

trec.nist.gov

https://www.amazon.com/Practical-Recommender-Systems-Kim-Falk/dp/1617292702/ref=sr_1_1?crid=UK2XQNNRKLEG&dchild=1&keywords=practical+recommender+systems&qid=1602080875&sprefix=practical+recommen%2Caps%2C462&sr=8-1

 

Amazon.com

Enter the characters you see below Sorry, we just need to make sure you're not a robot. For best results, please make sure your browser is accepting cookies.

www.amazon.com

https://www.vernier.com/til/1014

 

What are Mean Squared Error and Root Mean Squared Error? - Technical Information Library

The Mean Squared Error (MSE) is a measure of how close a fitted line is to data points. For every data point, you take the...

www.vernier.com

 

728x90
728x90

Paper:

https://dl.acm.org/doi/pdf/10.1145/3298689.3347012

 

Remarks:

-click|like|purchase 등의 활동으로 User-Item binary matrix 생성

(혹은 특정 threshold지정하고 그 값 이상은 1 아니면 0으로 binarize하기)

-

 

Remarks:

 

 

 

-논문에서 제시하는 모델을 살펴보면

  -X는 User-item binary matrix(user가 item을 클릭했다면 1, 아니면 0, 혹은 rating matrix로부터 threshold이상이면 1, 아니면 0으로 binarize해서 사용 가능)

  -

 

 

논문내용 쭉 정리

논문에서 말하는 장점(특히 missing value에 대한 얘기 등)위주로정리

 

728x90
728x90

NDCG

MAPK 등

정의와

예시

해석시 주의할점, 단점, 단점보강방법 등

 

728x90
728x90

Learning to rank란 

item의 정확한 score를 regression하는게 아니라, optimal ordering of list of items.

 

 

 

종류:Pointwise|Pairwise|Listwise

각각은 loss function에 들어가는 document의 개수에 따라 구분된다.

pointwise는 1개, Pairwise는 2개, Listwise는 

 

pointwise는 document가 query에 해당하는 relevancy를 학습하고, 실제 inference할 때는 각 document의 relevancy 순으로 출력, 즉 관건은, documents끼리 independent하다는 것, classical classification/regression을 사용

pairwise는 a pair of documents를 보고 ordering을 매김, the number of inversions를 줄이게끔 loss function을 정의하여 사용, relative order를 예측하는 게 좀 더 ranking의 본질에 가깝다. 단점은 training/inference가 시간복잡도가 크고 사실 낮은 ranking에 존재하는 pair끼리의 계산이나 상위 ranking에 존재하는 pair끼리의 계산이 동일하게 들어가는 점이 단점,  

listwise는 entire list of documents를 보고 optimal ordering을 찾는 것, 예를 들면, NDCG를 utility function으로 보고 학습, 장점이 training/inference의 시간복잡도가 낮음, 

 

Recommender system과 Ranking의 차이점은?

-ranking은 ordering이 결과임, 개별 item의 score도 predicted rating이 아니라, ordering으로서의 score이며 utility로서의 score가 아님

-ranking은 user의 input(query나 category선택, 지리적 정보 등)이 중요한 역할

 

가장 처음 드는 의문 점, labeled data를 어떻게 얻느냐?

 

1. Human (relevance) judgement

각 query마다

binary로 각 document가 relevant인지 irrelevant인지->pointwise용

document A가 B보다 더 relevant인지->pairwise용

document A,B,C의 ordering->listwise용, 다만 수집 비용이 큼(time consuming and exhaustive)

혹은

한개의 query당 얻은 document(item)의 relevance(perfect, excellent, good, fair, bad 형태의 five level이 한 예)를 judge

majority voting으로 query당 document의 label로 선정

 

2. query당 documents의 전체 고객들의 click number로 relative relevance 측정

대개 상위 ranking document가 더 클릭될 확률이 높은데 (click bias라 불림)

그럼에도 불구하고 lower ranked가 더 큰 클릭을 얻었다면 그것이 more relevant

 

각각이 단점이 존재, 둘다 noisy할 가능성이 있고

전자는 각 human이 query를 직접 관심갖고 입력한 상황이 아니므로 error가 발생할 확률이 높고

후자는 high frequency query만 labeling이 가능

 

 

 

참고자료:

medium.com/recombee-blog/introduction-to-personalized-search-2b70eb5fa5ae

 

Introduction to personalized search

Personalized search should take into account user preferences and interactions of similar users. We combined search engine and recommender.

medium.com

www.iro.umontreal.ca/~nie/IFT6255/Books/Learning-to-rank.pdf

 

728x90

+ Recent posts