Diversely Regularized Matrix Factorization for Accurate and Aggregately Diversified Recommendation

  본 문서에서는 PAKDD'23 학회에서 발표된 "Diversely Regularized Matrix Factorization for Accurate and Aggregately Diversified Recommendation" 논문을 소개합니다. 논문에 대한 상세한 정보는 다음과 같습니다.

  • Title: Diversely Regularized Matrix Factorization for Accurate and Aggregately Diversified Recommendation
  • Authors: Jongjin Kim, Hyunsik Jeon, Jaeri Lee, and U Kang
  • Conference: PAKDD (2023)

Aggregately Diversified Recommendation

오늘날 소비자들은 수많은 상품들 중 자신이 원하는 상품을 찾기 위해 추천 시스템(recommender system)에 크게 의존합니다. 때문에 전자 상거래 플랫폼은 자신이 보유한 상품을 최대한 빠짐없이 다양하게 추천함으로써 기대 수익을 크게 향상시킬 수 있습니다. 다양화 추천 시스템(diversified recommender system)은 이와 같은 상황에서 일반적인 추천 시스템에 비해 더욱 다양한 아이템을 추천하는데 주안점을 둔 추천 시스템으로 관련 학계에서 큰 관심을 받고 있는 연구 분야이기도 합니다. 본 논문은 다양화 추천 시스템의 한 분야인 종합 수준 다양화 추천(aggregately diversified recommendation)을 가장 널리 쓰이는 협업 필터링 (collaborative filtering) 기법 중 하나인 행렬 분해(matrix factorization)을 통해 해결하는 방법을 다룹니다.

종합 수준 다양화 추천 문제는 추천 결과의 높은 정확도를 유지하는 것과 동시에 높은 커버리지(coverage)와 낮은 편향성(skewness)을 (혹은 높은 비편향성(non-skewness)을) 모두 만족시키는 것을 목표로 하는 문제입니다. 커버리지와 편향성의 구체적인 정의는 다음과 같습니다.
  • 커버리지
    • 커버리지는 전체 아이템 중 얼마만큼의 아이템이 추천 리스트에 등장했는지를 나타내는 지표입니다. 예를 들어 총 100개의 아이템 중 80개의 아이템이 모든 유저의 추천 리스트를 통틀어 한 번 이상 등장했다면 해당 추천의 커버리지는 80%입니다.
  • 편향성
    • 편향성은 추천 결과에 등장한 아이템들의 빈도가 얼마나 고른지를 나타내는 지표입니다. 예를 들어 추천 리스트에 등장했던 80개의 아이템들이 모두 10회씩 등장했다면 편향성이 최소이지만 10개의 아이템이 70회씩 등장하고 나머지 아이템이 한두번씩만 등장했다면 높은 편향성을 가지게 됩니다.

그림 1은 실제 추천 상황에서 정확도, 커버리지, 비편향성의 예시를 보여주고 있습니다. I, II, III의 세 가지 추천 결과는 모두 각 유저의 정답을 추천하므로 모두 높은 정확도를 가지는 추천 결과이지만 그 다양성은 모두 다릅니다. I은 햄버거에 편향되고 쌀밥이 배제된 추천 결과를 보여 커버리지와 비편향성이 모두 낮은 반면 II는 모든 아이템을 추천에 포함하여 높은 커버리지를 달성했습니다. III은 여기서 한 발 나아가 모든 아이템을 두 번씩 추천함으로써 낮은 편향성 또한 달성했습니다. 종합 수준 다양성 추천 문제는 III과 같이 높은 정확도를 유지하면서 커버리지와 비편향성을 함께 높이는 것을 목표로 합니다.


그림 1. 추천 시스템의 정확도, 커버리지, 비편향성 예시.

그러나 전통적으로 가장 널리 쓰이는 추천 기법 중 하나인 행렬 분해 기법은 데이터셋 자체의 편향에 취약하기 때문에 높은 종합 수준 다양성을 얻기 어렵습니다. 이를 해결하기 위해 다양성을 높이는 후처리 기법이 기존에 연구된 바 있지만 이러한 후처리 기법은 모델 자체가 이미 편향된 데이터로 훈련되었기 때문에 정확도와 다양성을 모두 고려했을 때 최적의 결과를 얻기에 한계가 있습니다. 따라서 본 논문은 모델 단계에서 정확도와 다양성을 모두 고려하여 최적화를 하는 방법을 제안하고 있습니다.

종합 수준 다양성 문제를 해결하기 위해서는 세 가지 과제를 해결해야 합니다. 첫째, 행렬 분해 기법에서 기존에 추천되지 않던 아이템들을 추천에 등장하게 하여 커버리지를 높여야 합니다. 둘째, 일부 아이템에게 집중되어 있는 행렬 분해 기법의 추천 결과가 분산되어 아이템들이 비슷한 빈도로 등장하게끔 해야 합니다. 셋째, 정확도와 다양성은 서로 상충되는 영역이므로 이를 동시에 최적화할 수 있는 적절한 학습 방법을 설계해야 합니다.

Proposed Method

본 논문에서는 높은 정확도를 유지하면서도 종합 수준 다양성을 향상시키는 행렬 분해 기법인 DivMF (Diversely Regularized Matrix Factorization)을 제안합니다. DivMF의 핵심 아이디어는 다음과 같이 요약됩니다.
  • 모델의 추천 점수를 아이템 단위로 평준화하는 커버리지 정규화기(coverage regularizer)를 도입해 모든 아이템이 추천에 등장하도록 유도합니다.

  • 모델의 추천 점수를 평준화하는 편향성 정규화기(skewness regularizer)를 도입하여 커버리지 정규화기가 아이템의 등장 횟수도 균일하게 만들도록 보조합니다.

  • 정확도를 먼저 최적화하고 그 후 다양성을 최적화하는 순차적인 훈련 과정을 통해 모델이 안정적이고 효율적으로 학습되도록 합니다.
각 아이디어가 구체적으로 어떻게 작동하는지 살펴보도록 합시다.

커버리지 정규화기

커버리지 정규화기의 원리에 대해 살펴보기 전에 먼저 어떻게 행렬 분해 기법에서 추천된 아이템과 추천되지 않은 아이템을 구분할 수 있는지 생각해봅시다. 행렬 분해 기법이 추론하는 각 유저가 각 아이템을 좋아하는 정도인 추천 점수(recommendation score)는 각 행이 유저를 상징하고 각 열이 아이템을 상징하는 점수 행렬의 형태로 구해집니다. 이 때 유저마다 k개의 아이템을 추천한다고 했을 때 추천되는 아이템은 각 행에서 가장 점수가 높은 k개 항목입니다. 따라서 점수 행렬의 각 행에서 가장 점수가 높은 k개 항목만 남겨놓고 각 열의 합을 구했을 때, 그 합이 0인 열에 해당하는 아이템은 추천되지 않은 것이고 합이 0이 아닌 열에 해당하는 아이템은 추천된 것입니다. 따라서 커버리지를 최대화하는 것은 점수 행렬의 각 행에서 가장 점수가 높은 k개 항목만 남겨놓은 행렬의 각 열의 합이 모두 0이 아닌 값이게 하는 것과 동치입니다. 이렇게 점수 행렬에서 추천되는 항목만 남겨놓은 행렬을 앞으로 추천 행렬이라 부르겠습니다.

이제 커버리지 정규화기가 어떻게 추천 행렬의 각 열의 합을 0이 아니게 하는지 살펴봅시다. 추천 행렬의 각 열의 합을 모두 곱했을 때, 어느 한 값이라도 0이면 전체 곱 또한 0이 될 것입니다. 따라서 각 열의 합의 곱을 최대화하여 0이 아니게만 만들면 커버리지를 최대화하기에 충분합니다. 이 아이디어를 바탕으로 DivMF에서는 커버리지 정규화기를 추천 행렬의 각 열의 합을 모두 곱한 값에 반비례하도록 정의하며 따라서 커버리지 정규화기를 최소화하는 것이 곧 커버리지를 최대화하는 것이 됩니다. 또한 이 과정에서 추천 행렬의 각 열의 합은 모두 같아지게 됩니다. 커버리지 정규화기의 구체적인 정의와 수학적인 증명은 논문을 참고하기 바랍니다.

편향성 정규화기

하지만 커버리지 정규화기를 통해 각 열의 합을 모두 같게 만들어도 종합 수준 다양성의 다른 요소인 비편향성까지 해결되는 것은 아닙니다. 이는 추천 행렬의 추천 점수가 아이템마다 다르기 때문입니다. 예를 들어 A 아이템은 0.1의 점수로 추천 행렬에 여섯 번 등장할 때 B 아이템은 0.2의 점수로 추천 행렬에 세 번 등장했다면 두 아이템의 추천 횟수는 다르지만 추천 행렬상에서 A 아이템에 해당하는 열의 합과 B 아이템에 해당하는 열의 합은 모두 0.6으로 같게 됩니다. 따라서 추천 행렬의 각 열의 합을 같게 만들어도 각 아이템의 추천 횟수가 같아지는 것은 아닙니다.

그렇다면 어떻게 하면 각 아이템의 추천 횟수도 같아지게 만들 수 있을까요? 문제가 일어난 원인이 각 아이템의 추천 점수가 달랐기 때문이므로 추천 행렬의 각 점수를 평준화시켜주면 각 열의 합을 같게 만드는 것으로 각 아이템의 추천 횟수도 같아지게 만들 수 있습니다. DivMF에서는 추천 행렬의 점수를 같게 만들어주는 편향성 정규화기를 정의하여 커버리지 정규화기와 편향성 정규화기를 모두 최적화했을 때 모든 아이템이 같은 횟수로 추천되도록 유도합니다. 마찬가지로 편향성 정규화기의 구체적인 정의와 수학적인 증명은 논문을 참고하기 바랍니다.

학습 알고리즘

기존에 추천 모델이 높은 정확도와 높은 다양성을 가지도록 동시에 최적화하기 어려웠던 이유가 무엇일까요? 두 아이템 A, B가 있을 때 높은 정확도를 가지기 위해서 A, B의 추천 점수가 변해야 하는 방향과 높은 다양성을 가지기 위해 A, B의 추천 점수가 변해야 하는 방향을 생각해봅시다. 이 때 A는 인기가 많은 자주 등장한 아이템이고 B는 인기가 많지 않은 적게 등장한 아이템입니다. 높은 정확도를 가지기 위해서는 A를 좋아하는 유저가 많으므로 A의 추천 점수를 B의 추천 점수보다 높도록 변화시켜야 합니다. 반면 다양성을 위해서는 반대로 적게 추천된 B의 점수를 높여야 합니다. 이처럼 학습 과정에서 정확도와 다양성을 위해 모델이 학습되어야 할 방향이 다르기 때문에 일반적으로 둘을 동시에 학습하는 것은 좋은 성과를 거두기 어렵습니다.

DivMF는 이런 문제를 어떻게 극복했을까요? DivMF는 모델이 정확도를 학습하는 과정과 다양성을 학습화는 과정을 분리하여 이런 문제를 해결했습니다. DivMF의 훈련 과정에서 모델은 먼저 정확도를 높이도록 학습된 다음 다양성을 높이도록 다시 학습됩니다. 학습의 각 과정에서는 하나의 목표만 학습을 하므로 충돌이 일어나지 않아 안정적이고 효율적인 학습이 진행됩니다. 또한 정확도를 학습하는 기간을 조절함으로써 모델의 정확도와 다양성에 어느 비율로 치중할 것인지를 조절할 수도 있습니다.

Experiments

본 논문은 DivMF의 성능이 뛰어남을 보이기 위해 종합 수준 다양화 추천을 위한 기존 기법들과 비교 실험을 제시합니다. 그림 2는 DivMF와 기존 기법의 추천 성능 실험 결과입니다. 가로축은 정확도를, 세로축은 다양성 지표를 의미하며 각 그래프에서 최고 성능 지점은 별표로 표시되어 있습니다. 다섯 가지 데이터셋에서 DivMF의 성능 곡선이 다른 기법들보다 종합적으로 최고점에 가까운 것을 확인할 수 있습니다. 특히 Yelp-15 데이터셋에서 DivMF는 가장 우수한 경쟁 상대보다 동일 수준 정확도에서 34.7% 높은 다양성을, 동일 수준 다양성에서 27.6% 높은 정확도를 보였습니다. 이는 DivMF가 기존 기법들보다 행렬 분해 기법에서 종합 수준 다양성을 높이는데 더 유용하다는 것을 의미합니다.

그림 2. 기존 기법들과 DivMF의 성능 비교 실험 결과.

Conclusion

본 게시글에서는 PAKDD 학회에 발표된 Diversely Regularized Matrix Factorization for Accurate and Aggregately Diversified Recommendation 논문을 소개하였습니다. 이 논문은 전통적인 행렬 분해 기법을 통한 추천의 종합 수준 다양성을 높일 수 있는 새로운 모델인 DivMF 모델과 이를 훈련하기 위한 적절한 알고리즘을 제안했습니다. 현실 데이터셋에서 실험 결과 기존의 다양성을 높이기 위한 기법들보다 DivMF가 행렬 분해 기법의 다양성을 더 잘 높인다는 것을 알 수 있었습니다.

본 연구는 실제 산업에서도 유용하게 활용될 수 있습니다. 예를 들어 온라인 쇼핑 플랫폼에서 수익을 극대화하기 위해서는 쌓여 있는 다양한 아이템의 재고를 최대한 소진할 수 있도록 여러 아이템을 고루 판매하는 것이 중요합니다. 이 때 고객들에게 다양한 아이템을 노출시킬 수 있는 종합 수준 다양화 추천을 사용하면 고객들이 다양한 아이템을 구매하게끔 유도할 수 있습니다. 한편 극장 등에서 티켓을 판매하거나 식당의 예약을 하는 등 제공할 수 있는 수량이 한정되어 있는 품목을 판매하는 경우 마찬가지로 다양한 아이템을 추천하는 것이 중요합니다. 이런 상황에서는 하나의 아이템만 계속 추천하면 해당 아이템이 매진되거나 예약이 꽉 찬 이후 추가적인 수익을 올릴 수 없기 때문입니다. 따라서 여기서도 종합 수준 다양화 추천 기법인 DivMF가 유용하게 쓰일 수 있습니다. DivMF에 대한 더 자세한 정보는 링크에서, 실험에 사용된 데이터셋과 코드는 링크에서 확인해보실 수 있습니다.