본문 바로가기
인공지능/추천 시스템

Implicit feedback 추천 모델 평가 방법 이해 (negative sampling, nDCG, HR)

by judy@ 2023. 8. 9.

이 글은 NCF 논문을 리뷰하며, implicit feedback 환경에서 item recommendation의 일반적인 평가 방법에 대해 알게 된 내용을 예제를 통해 풀어 재해석한 내용이다. NCF 논문 4.1 Experimental Settings - Evaluation Protocols. 파트를 참고하여 작성하였으니, 원문을 읽고 싶다면 해당 부분을 참고하면 된다. 

 

NCF 논문 내 평가 방법론 해석

우선 논문(4.1 Experimental Settings - Evaluation Protocols.)에서 언급되는 내용을 약간의 번역+해석하면 아래와 같다.

 

1. leave-one-out evaluation

  • 평가를 위해 일반적으로 아이템 추천에서 많이 사용되는 leave-one-out evaluation을 적용
  • 유저가 가장 최근에 상호작용한 아이템(latest interaction)을 test set으로 하고, 나머지 데이터를 학습에 활용하는 방법

2. 평가 데이터 구성

  • positive data (1개): 유저가 가장 최근에 상호작용한 아이템
  • negative data (99개): 유저와 상호작용하지 않은 아이템 중 100개의 아이템을 무작위로 샘플링
  • 위 100개의 데이터에 대해서 상호작용을 예측하고, positive에 대해 negative보다 높은 값으로 예측하는지를 평가함

3. 평가 매트릭

  • nDCG@K: topK 중 positive가 얼마나 높은 순위에 위치하는지 설명함. positive가 1순위일 때의 DCG가 IDCG이며, 각 유저에 대해서 nDCG값을 구한 뒤, 평균을 내어 계산함
  • Hit Rate@K: topK 아이템 중 positive 아이템이 있는지 없는지 측정

 

예시 기반 평가 방법 이해

위의 평가 방식을 영화 추천을 예로 들어 살펴보면 아래와 같다

 

상황 세팅

유저 A가 아래 영화를 순서대로 시청했다고 가정하자.

 

leave-one-out evaluation 기반 positive data split

적용 시 train/test 데이터는 아래와 같이 분배된다. 최신 데이터를 평가, 나머지 데이터를 학습 데이터 세트로 한다. 단 이 데이터는 only positive 데이터로, 학습 및 평가를 위해서는 추가적인 negative sampling을 통해 데이터 세트를 구성해야 한다.

 

학습 데이터 세트 구성

학습 시에는 위에서 할당한 train 데이터를 positive sample로 하고, 매 epoch마다 무작위로 negative sampling을 수행하여 데이터 세트를 구성하고 모델을 학습해야 한다.

negative sampling은 유저마다 positive:negative 데이터의 비율을 1:4~6 정도로 설정하여 수행한다. 예제에서 유저 A의 positive 데이터는 인시디어스, 스마트폰.., 피기, 스마일 이렇게 4개 이므로, negative 데이터로는 16개를 샘플링하면 된다. 그러니까 전체 아이템 중에서 유저와 상호작용하지 않은(위 5개를 뺀) 아이템 중 16개를 무작위로 뽑으면 된다.

이러한 샘플링은 유저A 뿐만 아니라 다른 유저에 대해서도 각각 수행해야 한다. 또, 에폭마다 샘플링하지 않고 고정된 negative 아이템을 사용하면 학습이 잘 이루어지지 않으므로, 매 에폭마다 학습 데이터 세트를 새로 구성해주어야 한다.

 

평가 데이터 구성

평가 데이터의 positive item은 위에서 선택한 아이템(서치 2)이며, 나머지 negative 샘플은 아래와 같이 전체 아이템 목록 중 유저가 시청하지 않은 영화를 무작위로 99개 선택하면 된다.

 

예측 및 평가

앞서 유저가 가장 최근 상호작용한 아이템과 무작위로 선택한 아이템들의 상호작용을 예측한다

 

예측한 결과를 내림차순으로 랭킹하였을 때, 유저와 상호작용한 데이터가 높은 순위에 있을수록 좋은 모델이 된다. Hit Ratio의 경우, Top K 목록 중 유저와 상호작용한 데이터가 있으면 Hit(1), 없으면 0임. NDCG의 경우, 상호작용한 데이터가 높은 순위에 있을수록 패널티를 적게 받아 1에 가까운 값을 가지게 된다.

아래 예처럼, GT(Ground Truth)의 경우 유저 A에 대해 두 매트릭이 모두 1이다. 모델 1은 1,0,0,0의 값으로 예측하지는 않아도 positive를 가장 높은 상호작용 값으로 예측하였기 때문에, 랭킹 매트릭이 GT와 같은 값을 가지게 된다. 모델 2의 경우, positive 아이템이 Top5 중 4에 위치하였기 때문에, HR은 1이지만, NDCG는 이보다 작은 값을 가지게 된다.

반응형