` 1

Abstract

Deep learning techniques have become the method of choice for researchers working on algorithmic aspects of recommender systems. With the strongly increased interest in machine learning in general, it has, as a result, become difficult to keep track of what represents the state-of-the-art at the moment, e.g., for top-n recommendation tasks. At the same time, several recent publications point out problems in today’s research practice in applied machine learning, e.g., in terms of the reproducibility of the results or the choice of the baselines when proposing new models. In this work, we report the results of a systematic analysis of algorithmic proposals for top-n recommendation tasks. Specifically, we considered 18 algorithms that were presented at top-level research conferences in the last years. Only 7 of them could be reproduced with reasonable effort. For these methods, it however turned out that 6 of them can often be outperformed with comparably simple heuristic methods, e.g., based on nearest-neighbor or graph-based techniques. The remaining one clearly outperformed the baselines but did not consistently outperform a well-tuned non-neural linear ranking method. Overall, our work sheds light on a number of potential problems in today’s machine learning schol- arship and calls for improved scientific practices in this area.


딥러닝 기술은 많은 추천 시스템 연구자들에게 선택받기 시작했다.

최근 머신러닝에 관한 관심이 급격하게 증가하면서 상위 n개를 추천하는 작업과 같은 분야에서 SOTA 방법을 추적하기 굉장히 어려워졌다.

이와 동시에 새로운 모델을 제안할 때 baseline을 선택하는 과정에서 최근 논문들은 재생산성 부분에서 문제를 제기하고 있다.

이번 논문에서는 top-n 추천 작업에서 사용되는 다양한 분석 방법들을 리뷰한다.

작년에 주로 연구된 18 가지 알고리즘을 고려해보았지만, 그 중 7개 방법만이 재생산성을 실현할 수 있었다.

또한, 이 중 6개 방법이 기존에 사용되던 NN이나 graph-based와 같은 휴리스틱 알고리즘보다 더 나은 성능을 보여주었다.

그 외 나머지 방법은 baseline보다 나은 성능을 보여주긴 했지만, 잘 조정된 비신경망 선형 방법의 성능을 일관성있게 뛰어넘지는 않는 것을 보여주었다.

따라서 우리는 추천 시스템 분야에서 활발하게 사용되고 있는 머신러닝 방법에서 나타날 수 있는 잠재적 문제를 다루고, 과학적으로 실현할 수 있는 방법을 제안한다.


요약

  • 이미지나 자연어 처리에서 딥러닝이 성공적인 모습을 보여주고 있는만큼 추천시스템에서도 딥러닝 관련 논문이 다양하게 publish되고 있긴 하지만, 실질적인 진전이 일어나고 있는지는 의문이라고 합니다.
  • 현재 추천시스템에서 진전이 일어나지 않는 이유는 세 가지로 표현해볼 수 도 있는데, 다음과 같습니다. 1) basline의 부재 2) 새로운 방법론으로 채택하기엔 너무 빈약한 방법들 3) 결과의 재생산성과 비교의 어려움
  • baseline 문제는 publish 논문에서 비교하기엔 너무 쉬운 수준의 데이터셋이나 성능을 baseline으로 잡는 경우가 있고, 특히 제공된 baseline이 적절하게 fine-tune 되지 않아 문제가 되는 경우가 있습니다. 특히, 이 문제는 딥러닝 방법을 채택했을 때 다른 딥러닝 baseline을 비교하고자 하는 경우에 주로 발생한다고 합니다.
  • 특히 이 논문에서는 재생산성(Reproducibility)와 진전성(Progress)를 중점적으로 리뷰하고자 합니다.
  • 또 논문의 저자들은 선정한 논문(총 18편)을 직접 구현해보거나 실행해보았는데, 그 중 딥러닝 관련 논문은 대부분이 추천 시스템에서 사용되는 nearest-neighborhood 방법들보다 일관적으로 outperform하지 않다는 점을 발견했다고 합니다. 또한, 18편 중 단 7편만이 재생산성을 실현할 수 있었다고 합니다.
  • 이 논문에서 사용한 baseline은 다음과 같습니다. TopPopular, itemKNN, UserKNN, ItemKNN-CBF, ItemKNN-CFCBF, graph-based 방법
  • 이 다음 내용부터는 논문에서 저자가 위의 baseline 방법과 publish된 deep learning류의 방법들과 비교한 방법들입니다. 저는 이를 검증할 방법이라고 표현하겠습니다.

- 검증할 방법: CMN(Collaborative Memory Networks)
    - Attention mechanism을 활용한 방법입니다.
- 데이터셋: CiteULike-a, Pinterest, Epinions
- 평가지표: HR@5, NDCG@5, HR@10, NDCG@10

  • CiteLike-a와 Pinterest 데이터셋에서는 적어도 두 가지 이상의 baseline이 CMN보다 우수한 성능을 보여주었습니다.
  • 놀라운 점은 Epinions 데이터셋에서 개인화에 집중되지 않은 TopPopular baseline이 다른 모든 방법보다 훨씬 우수한 성능을 보여주었다는 것입니다.
  • 뿐만 아니라 Epinion 데이터셋에서는 CMN이 TopPopular 방법을 제외한 다른 모든 baseline의 성능을 뛰어넘었는데요. 
    CMN이 다른 baseline 성능을 뛰어넘은 이유는 다음과 같습니다.
    1) 데이터셋이 비교적 작은 경우
    2) 데이터셋이 sparse한 경우
    3) 데이터셋에 포함되어 있는 데이터의 분포가 고르지 않은 경우

- 검증할 방법: MCRec(Metapath based Context for RECommendation)
- 데이터셋: MovieLens100k, LastFm, Yelp
- 평가지표: Precision, Recall, NDCG

  • ItemKNN 방법이 가장 좋은 성능을 보여주었으며, 그 외에 방법들은 MCRec 방법이 outperform 했습니다. MCRec 논문을 보면 모든 방법에 있어서 최고 성능을 낸다고 발표하고 있지만, 실제로는 그렇지 않은 것으로 보아 부적절한 test-set, epoch 선택이 있었던 것 같습니다.

- 검증할 방법: CVAE(Collaborative Variational AutoEncoder)
    - content와 rating을 고려한 unsupervised 방법입니다.
- 데이터셋: CiteULike 135k(sparse version) and 205k(dense version)
- 평가지표: REC@50, REC@100, REC@300

  • 짧은 길이의 추천 항목에 있어서는 기존 CF 방법이 우수한 성능을 보여주었으며, 긴 길이의 추천 항목에서는 ItemKNN-CFCBF가 우수한 성능을 보여준다고 합니다.
  • 추천 항목의 길이가 100이거나 그 이상인 경우 CVAE가 대부분의 방법보다 outperform한다고 합니다.

- 검증할 방법: CDL(Collaborative Deep Learning)
    - stacked denoising AE(SDAE)와 CF를 혼합한 방법이라고 합니다.
- 데이터셋: CiteULike-a
- 평가지표: REC@50, REC@100, REC@300

  • content의 deep representation을 학습하기 위해 deep learning 기법을 사용합니다. CDL은 추천 항목의 길이가 100이 넘는 경우 higher Recall 성능을 보여준다고 합니다.
  • 하지만 표와 같이 대부분의 CF 방법이 CDL 방법보다 우수하며, CVAE 방법이 항상 CDL 방법보다 뛰어납니다.

- 검증할 방법: NCF(Neural Collaborative Filtering)
    - 추천시스템에서 흔히 사용되는 Matrix Factorization을 Neural Architecture로 대체함으로써 다양한 표현을 배우도록 한 방법입니다.
- 데이터셋: MovieLens1M, Pinterest
- 평가지표: HR@5, NDCG@5, HR@10, NDCG@10

  • 이 방법은 Pinterest 데이터셋은 대부분 CF 방법의 성능이 좋았지만, MovieLens1M 데이터셋에는 완벽하게 NCF 방법이 우수한 성능을 보여주고 있음을 알 수 있습니다. 
  • 추가 평가를 위해 저자는 Simple Linear Model(SLIM, 여기서는 scikit-learn에서 사용할 수 있는 ElasticNet을 뜻함)을 평가에 사용했는데, MovieLens1M 데이터셋에서 NCF보다 우수한 성능을 보여주었다고 합니다.

- 검증할 방법: SpectralCF(Spectral Collaborative Filtering)
    - Spectral Graph Theory를 사용하며, cold start 문제를 해결하기 위해 고안된 방법입니다.
- 데이터셋: MovieLens1M, HetRec, Amazon Instant Video
- 평가지표: Recall, MAP(Mean Average Precision)

  • spectralCF는 실제 논문에서는 모든 측면에서 baseline보다 나은 성능을 보여줬다고 합니다.
  • 이를 검증하기 위해 실제로 저자가 직접 결정한 하이퍼파라미터와 data split을 통해 결과를 확인해보니 오히려 반대의 결과를 만나볼 수 있었다고 합니다. 그 이유는 train/test data의 distribution이 굉장히 다르기 때문이라고 하네요.
    (그럼 spectralCF 원 논문에서는 좋은 감만 따서 썻다는 말이 되겠군요.....;;)

- 검증할 방법: Mult-VAE(Variational Autoencoders for Collaborative Filtering)
- 데이터셋: binarized datasets(movie ratings or song play counts)
- 평가지표: REC, NDCG

  • 저자가 직접 방법을 실행시켜보니 꽤나 좋은 성능, 그리고 일관적인 성능을 얻을 수 있는 방법 중 하나였고, SLIM 모델을 튜닝해서 사용해본 결과 성능이 우수하진 않았지만 비슷한 결과를 얻을 수 있었다고 합니다.
  • 저자가 추가로 실험한 부분에선 조금이나마 SLIM이 우수한 평가지표도 존재했는데, 이는 평가지표 선택에 따라 SLIM과 mult-VAE의 성능 차이가 결정될 수 있다고 언급합니다.
  • 이를 제가 다시 해석해보면, 역시 논문 특성상 Mult-VAE도 SLIM이 좋을만한 평가지표는 빼고 제공해주었다는 점이 되겠네요.

  • 위의 결과처럼 추천 시스템을 논문을 보고 직접 구현할때는 반드시 재생산성을 확인해봐야 한다고 합니다.
  • 학회 요구에 따라 모델 구조 등은 공유될 수 있겠지만, 데이터 전처리, 하이퍼파라미터 최적화 과정, 평가 방법 등은 아직 많은 논문이 공유하고 있지 않습니다.
  • 많은 딥러닝 방법들을 살펴보았지만, 여전히 신경망 기반의 방법들은 아직 기존 방법을 뛰어넘지 못하고 있습니다.
  • 최근들어 많은 딥러닝을 활용하여 추천시스템을 구현한 논문들이 NCF(Neural Collaborative Filtering) 방법을 baseline으로 사용하고 있는데, 이는 적절치 않다고 합니다. 그 이유는 단 한 가지 데이터셋에서만 성능이 좋다는 것을 확인할 수 있었고, 다른 데이터셋에서는 좋은 성능을 보여주지 못했다고 합니다.
  • 추천 시스템 논문들은 평가지표와 public dataset(무려 20개)이 너무도 많아 baseline을 확실히 결정하기가 어렵다고 합니다.

Reference

Dacrema, M. F., Cremonesi, P., & Jannach, D. (2019, September). Are we really making much progress? A worrying analysis of recent neural recommendation approaches. In Proceedings of the 13th ACM Conference on Recommender Systems (pp. 101-109).

 

Youtube, NexFlix, Amazon 등 다양한 글로벌 및 국내 기업에서 추천 시스템은 매출 향상에 핵심적인 시스템이라고 표현해도 과언은 아닙니다. 또, 카카오, 네이버 등 음악이나 상품 서비스를 제공하고 있는 기업은 지금은 당연스럽게 사용하고 있는 기술이기 때문에 필수적으로 알아두면 좋습니다.

그뿐만 아니라 추천 시스템을 구성함에 있어서 최근 동향은 전통적인 통계 방법도 사용되지만 딥러닝 모델을 활용한 추천 시스템이 굉장히 많이 사용되고 있고, 전환되고 있는 것 같습니다.

이번 글에서도 간략하게 언급하겠지만, 모델 구조라던가 상세한 내용에 관해서는 아래 리뷰 논문을 자세히 살펴보는 것을 강력히 추천드리고, reference를 쫓아쫓아 공부하다 보면 2019년까지의 추천시스템 동향은 전부...

Are We Really Making Much Progress? A Worrying Analysis of Recent Neural Recommendation Approaches, RecSys 19


기본적으로 기존에 사용되던 추천 시스템은 협업 필터링과 콘텐츠 기반 필터링으로 나눌 수 있습니다.

 >> 협업 필터링(Collaborative Filtering, CF)

협업 필터링은 집단지성을 적극 활용한 기술입니다. 즉, 사용자의 행태를 분석하고 이와 유사한 행태를 가진 사용자에게 같은 제품을 추천하는 방식입니다. 이를 사용자 기반 협업 필터링(User-based Collaborative Filtering)라고 할 수 있습니다.
추가로 여기서 말하는 필터링(FIltering)이란, 여러 가지 항목 중 적당한 항목을 선택하는 것을 의미하는 용어입니다.

대표적으로 행렬 분해(Matrix Factorization), k-NN 등 방법이 사용됩니다.

하지만 협업 필터링에는 크게 세 가지 단점이 있습니다.

  1. 콜드 스타트(Cold Start)
    - 기존 데이터에 완전히 포함되지 않는 새로운 유형의 데이터를 만났을 때입니다. 당연히 협업 필터링은 기존 데이터를 기반으로 추천을 수행하기 때문에 큰 문제에 해당합니다.
  2. 계산 효율성
    - 기존 딥러닝에서 성능과 속도의 Trade-off 관계를 떠올리면 쉽게 이해할 수 있습니다. 기존 데이터를 많이 활용할 수록 정확한 추천을 수행할 수 있지만, 계산 측면에서 비효율적입니다.
  3. 극소수 데이터를 무시
    - 정규 분포를 떠올리면 쉽습니다. 사용자들이 유명한 제품을 주로 구매하는 것은 자명한 사실이죠. 기존 데이터가 쏠려있음으로서 소수 사용자들에게 선택받은 제품이 다른 사용자에게 추천되지 못하는 상황을 만듭니다.

 >> 콘텐츠 기반 협업 필터링(Content-based Collaborative Filtering)

콘텐츠 기반 협업 필터링은 아이템 기반 협업 필터링(Item-based Collaborative Filtering)이라고 표현하기도 하며, 협업 필터링처럼 사용자가 제품을 구매하면서 남기는 행태나 기록을 데이터로 사용하지 않고, 사용자가 선택한 항목을 분석하여 이와 유사한 항목을 추천해주는 방법입니다.

  • 음악을 분석하는 경우에는 장르, 비트, 음색 등 다양한 특징을 추출하여 이를 분석하고 유사한 형태의 곡을 사용자에게 추천해주는 것이죠.

대표적으로 딥러닝을 활용한 방법, 자연어 처리에 사용되는 latent vector 방법, tf-idf 등이 사용됩니다.

콘텐츠 기반 필터링 방법은 항목 자체를 분석하기 때문에 신규 고객에게도 유사한 항목을 추천해줄 수 있어 콜드 스타트를 해결할 수 있다는 장점이 존재합니다. 하지만 데이터 특성을 구성하는 과정이 조금 어렵다는 단점도 존재합니다.

  • 예를 들어, table data와 image data 특성을 어떤 형태로 concat해서 모델에 입력시킬 것인지 등.

위에서 살펴본 기존 두 가지 방법은 현재도 (변형해서)사용되고 있는 꽤나 훌륭한 방법입니다. 하지만 단점도 존재하기에 장점만 혼합한 방법을 사용하면 더 좋지 않을까 싶습니다.

 >> 하이브리드 협업 필터링(Hybrid Collaborative Filtering)

하이브리드 협업 필터링은 간단하게 협업 필터링과 콘텐츠 기반 필터링을 함께 사용하는 겁니다. 새로운 데이터가 들어왔을때 콜드 스타트 문제를 해결하기 위해 콘텐츠 기반 협업 필터링을 사용하다가 새로운 유형의 데이터가 시간이 지남에 따라 쌓인 후에 사용자 기반 협업 필터링으로 전환하는 방법입니다.

 

Reference

www.kocca.kr/insight/vol05/vol05_04.pdf