Collaborative Filtering for Implicit Feedback Datasets [논문 리뷰]

거친코딩·2022년 1월 15일
0

논문 리뷰

목록 보기
1/1
post-thumbnail

요약

  • 많은 서비스에서 추천시스템은 고객의 취향에 따라 선택에 도움을 주고, 고객 서비스 경험을 향상 시키는데 여러 산업에서 활용되고 있습니다. 이러한 추천시스템을 모델링하는 데이터의 원천은 서비스 성격에 따라 많이 달라질 수 있고, 이번 글에서는 implicit한 feedback 기반의 데이터를 통해서 고객의 경험을 향상시키는 추천시스템에 대해 다뤄볼 것입니다. 이 시스템은 각 유저의 선호 모델을 만들기 위해서 고객의 구매 경험, 습관, 브라우저 활동들을 트랙킹합니다. 하지만 explicit한 데이터(명확한 고객의 선호 및 비선호를 명시할 수 있는)와는 달리 Implicit한 데이터들은 유저들의 취향을 명확히 할 수 있는 명분은 부족하지만, 고객의 활동 수준에서 선호와 비선호로 간주할 수 있는 유니크한 활동들을 구분짓고 데이터를 쌓으면서 Implicit한 데이터를 통해서 추천시스템으로써 많은 산업분야에서 다뤄지고 있습니다.

소개

  • e-commerce의 인기는 점점 커져가면서, 가장 중요한 핵심은 많고 다양한 상품들 중에서 그들이 가장 잘 즐길 수 있는 상품을 어떻게 찾을지에 대한 것입니다. 이러한 핵심을 풀 키 요소는 고객과 상품을 어떻게 정의하고 서로를 연관지을 수 있는지에 대한 것일 것입니다. 컨텐츠 기반 전략 접근 방식을 통해서 영화를 예를들어 상품 프로파일링을 해보면 "장르는 무엇이고", "배우는 누구고", "대중 인기성은 어느정도 이고" 등일 것이며 유저 프로파일링은 인구통계학적인 정보일 것입니다. 하지만 각각의 프로파일링으로 서로의 연관을 지을 수는 있지만, 이러한 컨텐츠 기반 전략은 외부 정보를 모아야 하고, 심지어 해당 외부정보가 접근이 불가할 수도 있다는 한계가 있습니다.
    그래서 대체 전략으로 과거의 유저 행동을 활용해볼 수 있습니다. 이러한 접근은 우리가 흔히 아는 "Collaborative Filtering(CF)"라고 알려진 접근방식으로 유저와 상품간의 상호의존적 관계를 활용하는 것입니다. 이러한 CF를 활용한 추천 시스템은 넷플릭스에서 유저가 영상 매체에 남긴 별점을 활용하는 것처럼 질 좋고 명시적인 데이터를 활용하는 것이 가장 일반적이긴 합니다. 그런데 만약 그러한 데이터가 모든 서비스에서 늘 이용 가능한 것은 아닙니다. 그래서 대게 추천 시스템들은 유저 행동 관찰을 통해 파생된 간접적인 데이터(=Implicit Feedback)를 활용해야 합니다.
    하지만 알고리즘의 직접적인 사용을 방해하는 암시적 피드백의 고유한 특성을 먼저 아는 것이 중요합니다.
  1. 찾아보기 힘든 부정적 피드백

    • 유저들의 행동을 관찰해보면 그들이 좋아할만한 것들을 추론할 수 있지만, 확실하게 어떤 아이템을 좋아하고 싫어할지 신뢰가 높게 추론하기는 쉽지 않다. 예를 들어서 특정 쇼를 보지 않은 사람이 있다고 했을 때, 그 사람이 보지 않은 이유는 좋아하지 않아서일 수도 있고, 그 쇼 자체를 몰라서일 수도 있다. 하지만 explicit한 데이터를 보면 이 사람이 어떤 것을 좋아하고, 어떤 것을 싫어하는지 명확하게 알 수 있다. 그래서 explicit 기반 추천시스템은 우리가 흔히 아는 수집된 rating에 초점을 맞춰서 동작하는 경향이 있다. 하지만 implicit한 피드백은 우리에게 오판단 의사결정을 내리게 할 수 있는 긍정적인 데이터만 제공한다.(클릭, 페이지 뷰, 구매 등등) 따라서 우리는 missing data(부정적 피드백)이 발견되어질 곳을 최대한 찾아내려고 하는 것이 중요하다.
  2. 본직적으로 noise가 많은 피드백

    • 우리는 유저 행동들을 트랙킹하면서 그들의 선호 및 긍정적 신호를 발견하고 추론할 수는 있지만, 개개인들의 특정 상품 구매 행동이 반드시 상품에 대한 긍정적인 관점이라고 암시하는 것은 아닙니다. 단순히 선물로써 구매된 것일 수도 있고, 샀음에도 불구하고 상품에 대해서 실망했을 수도 있습니다. 그래서 쉽게 생각해보면 우리가 마치 텔레비전에 있는 특정채널을 보고 있는 것과 같습니다. 아마 텔레비전에 해당 채널에서 틀어놓고 잠이 들수도 있는 것이구요.
  3. explicit과 implicit feedback 수치값의 다른 해석

    • explicit feedback의 수치값은 선호를 암시하지만, implicit feedback 수치값은 자신감을 뜻합니다. explicit 데이터 기반 시스템은 유저들의 선호 수준을 1~5 의 별점과 같이 표현하게 하지만, implicit 데이터 기반 시스템은 유저가 얼마나 특정 쇼를 많이 봤나 혹은 얼마나 특정 물건을 많이 샀나와 같은 단순 행동에 대한 빈도를 표현합니다. 그래서 한 때 많이 보고 했던게 그 사람의 평생 취향은 아닌 것처럼, 단순히 큰 빈도의 수치가 반드시 특정 상품에 대한 높은 선호를 의미하는 것은 아닙니다. 하지만 이러한 수치적 피드백은 특정 관찰에 대한 자신감, 다시말해 확신이라는 워딩의 개념으로 작용할 수 있습니다. 한 때 특정 이유로 많이 본 영화는 유저의 선호가 관계가 없을 수 있지만, 이러한 패턴이 똑같이 발생하게 된다면 그때부터는 그것은 유저의 선호라고 확신할 수 있는 것입니다.
  4. 평가에 대한 절적한 지표 필요

    • 전통적으로 explicit한 데이터를 다룬 실험에서는 RMSE와 같은 명확한 numerical한 score를 가지고 특정 현상에 대해서 구분을 짓고 평가하였지만, Implicit한 모델에서는 특정 아이템간 혹은 현상에 대해서 서로 구분 짓고 평가할 수 있도록 설명 가능토록 실험 환경을 만들어야 합니다. 예를들어 텔레비전 시청과 관련된 데이터를 수집했을 때, 이전 보다 더 시청을 많이 했는지? 동시간대에 두 채널의 비교를 어떻게 하는지?

해당 글은 Collaborative Filtering for Implicit Feedback Datasets [Yifan Hu. AT&T Labs – Research. Florham Park] 논문 및 저자의 생각을 참고하여 작성되었습니다.

profile
데이터 분석 유튜버 "거친코딩"입니다.

0개의 댓글