제가 못찾은 것일 수도 있지만 리뷰가 하나도 없어서 고생 좀 했습니다. 완벽하게 100퍼센트를 이해하지 못한 점 양해 부탁드리고, 첫 리뷰 시작하겠습니다^^
1. Introduction
먼저 나온 배경에 대해서 설명 드리면, One class collaborative filtering(OCCF)문제를 해결하기 위해 나온 내용입니다. 모든 사용자가 이전에 평가한 아이템을 기반으로 특정 사용자의 아이템 선호도를 예측하는 걸 협업 필터링이라고 하는데요. 별점 같이 여러 가지 등급 혹은 점수로 표현되는 건 사용자가 명시적으로 선호도를 부여할 수 있지만, 클릭/비클릭, 북마크/비북마크와 같은 행동은 암시적인 평가이기에 얻기 쉽다는 장점이 있지만 데이터가 희소한 상황에서 부정적인 예를 식별하기 어렵다는 단점이 있습니다.
논문에서는 del.icio.us를 예시로 들지만 우리가 알기 쉽게 네이버 블로그나 포스트 같은 걸 본다고 할 때 이걸 북마크하거나 즐겨찾기로 해놓는 행위는 긍정적인 예시로 간주될 수 있습니다. 하지만 아무런 행동을 하지 않는 다면 두 가지 설명이 가능합니다. 첫째는 그 페이지가 원래 관심 대상이지만 제대로 안 본 경우, 두번째는 페이지를 읽어 보았지만 관심이 없다는 것입니다. 그래서 꼭 북마크하지 않은 페이지라고 해서 모두 부정적인 예라고 가정할 수는 없습니다. 클릭기록도 마찬가지로 개인화된 검색과 검색 결과 개선에 사용은 되나, 클릭하지 않은 페이지가 진짜 관심이 없어서인지, 아니면 콘텐츠의 부적절성 혹은 중복성 등의 이유로 클릭되지 않은 건지 여부를 판단할 길이 없습니다.
이 문제를 해결하기 위해 몇 가지 직관적인 방법이 있는데, 1. 첫번째는 부정적인 데이터에 대해서 레이블을 지정하는 것인데 이의 단점은 사용자가 시스템에 대한 긍정 혹은 부정의 정보를 많이 제공하도록 요청하면 나쁜 인상을 주고 시스템 사용을 거부할 수도 있다는 것입니다. 2. 두번째는 누락된 모든 데이터를 모두 부정적인 경우로 처리하거나 모두 알 수 없는 경우로 처리해버리는 것입니다. 이건 OCCF의 두 가지 극단 전략이지만 추천 결과를 편향시킨다는 결점이 있습니다.
이 논문에서는 누락된 데이터를 부정적인 경우로 취급하는 범위의 균형을 고려하여 두가지 방법을 제시합니다. 1. Weighted low rank approximation 가중된 낮은 순위 근사(?) 와 2. Negative example ampling 부정의 사례 샘플링(?) (제 식대로 번역했습니다..) 자세한 내용은 뒤쪽에서 설명드리겠습니다.
2. Related Works
2-1. Collaborative filtering
관련 기존 연구를 정리해보겠습니다. 많은 연구에서는 알고리즘 성능 향상을 위해 다양한 측면에서 협업필터링을 탐구했습니다. 하지만 긍정적, 부정적 사례(등급으로 나눈)가 있다고 가정하는 채점 체계를 사용해서 평가하는 데에 중점을 두어왔기 때문에 이진 데이터(yes or no)의 경우에 누락되는 평가에 대해서 어떻게 다뤄야 하는지 문제가 되어오고 있습니다.
2-2. one-class classification
단일 클래스 분류는 대부분 긍정적인 예시에서만 학습되어왔습니다. 하지만 어떠한 연구에서는 긍정적인 예시가 일정한 확률로 레이블이 지정되지 않은 경우, 양성 혹은 레이블이 지정되지 않은 예시에서도 학습이 가능하다는 걸 보여줬다고 합니다.
2-3. class imbalance problem
일부 클래스의 인스턴스가 다른 클래스보다 더 많은 분류작업에서 클래스 불균형 문제가 발생합니다. 이 문제를 해결하기 위해서는 샘플링을 통해 데이터의 균형을 재조정하거나, 비용에 민감한 학습이 사용되는 알고리즘 수준을 조정하는 것에 있습니다.
3. Weighing& Sampling based Approached
3-1. problem definition
이 논문에서는 AMAN과 AMAU사이에서 균형을 이루는 걸 목표로 한다고 했습니다. 1. 가중된 낮은 순위 근사법을 사용합니다. 이는 목적 함수에서 긍정적인 경우와 부정적인 경우의 에러 항에 다른 가중치를 부여하는 것입니다. 2. 샘플링 전략을 기반으로 일부 누락된 값을 부정적인 경우로 샘플링하는 것입니다.
문제 정의:
M명의 사용자, n개의 항목이 행렬 R에 저장되어 있습니다. 태스크는 R을 기반으로 누락된 데이터에서 잠재적인 긍정적인 예시를 식별하는 것입니다. 이걸 OCCF라고 부릅니다.
3-2. wALS for OCCF
첫번째 방법은 weighted alternation least square입니다.
M사용자 곱하기 n아이템으로 이루어진 행렬 R,
음이 아닌 가중치 행렬 W가 주어지면 (가중된 낮은 순위근사),
Frobenius 손실함수를 다루며 낮은 순위 행렬인 X로 R을 근사화합니다.
R-X는 낮은 순위 근사에서 흔히 볼 수 있는 제곱오차항이고,
W는 전체 목적항에 대한 항 최소화의 기여도를 반영합니다.
R에서 긍정적인 예는 1로 두고 누락된 모든 값은 0으로 바꿉니다.
R이 1일 때 높은 신뢰도를 가지므로 W도 1로 두지만, 반대로 단순히 누락된 데이터는 가중치를 낮춥니다.
과적합을 방지하기 위해서 정규화 항을 추가하면 다음과 같다고 합니다.
기존 연구에서 ALS 접근법이 낮은 순위 근사 문제를 해결하는 데 효율적이라고 했고, 이 논문에서는 그 방식을 wALS로 확장하였다고 합니다. 그걸 설명하기 위해 위 식을 통해 목적 함수 L을 최소화하는 걸 보여주는데 이해하지 못했습니다 죄송합니다…
W는 OCCF 성능에 중요한 역할을 한다고 합니다. 그래서 가중 체계를 다음과 같이 세 가지로 나누었습니다. 첫번째는 누락된 데이터가 부정적인 예인 경우 모든 사용자 또는 모든 아이템에 대해 동일한 기회를 갖는다고 가정합니다. 즉 부정적인 예에 대해 가중치를 균일하게 할당합니다. 두번째는 사용자가 긍정적인 데이터를 더 많이 가지고 있으면 다른 아이템을 좋아하지 않을 가능성이성이 높다고 가정합니다. 즉, 이 사용자의 누락된 데이터는 높은 확률로 부정적일 수 있는겁니다. 세번재는 아이템에 긍정적인 평가가 적으면 이 아이템에 대한 누락 데이터가 높은 확률로 음수라고 가정하는 것입니다. 세 가지 체계의 매개변수는 긍정 예시 가중치의 합과 부정 예시 가중치의 합의 비율입니다.
'PAPER REVIEW_📄' 카테고리의 다른 글
[추천] DKN: Deep Knowledge-Aware Network for News Recommendation (4) | 2023.12.03 |
---|---|
[NLP] Sequence to Sequence Learning with Neural Networks (2014) (1) | 2023.10.20 |
[추천] One-class Collaborative Filtering 논문 정리 (2) (0) | 2023.05.08 |