Recommender System/Recommendation

추천시스템이란?

eatchu 2022. 10. 9. 15:56
반응형

 

추천시스템은 개발자뿐만 아니라 실제로 많은 사용자들이 잘 알고있는 영역이다.

우리가 쇼핑을 할때나 유튜브를 볼때 등 이미 실생활에서 많은 추천 시스템을 경험하고 있다.

유튜브에서 내가 먹방 콘텐츠의 영상을 여러개 보았다면 이후에 내 피드에는 먹방과 관련된 영상이 뜨게 된며

패딩이 사고 싶어서 쇼핑앱에서 패딩을 검색해 보았다면 이후 더 다양한 패딩 제품이 나를 구매로 이끌기도 한다.

 

요즘같은 시대에 인터넷에는 너무나 많은 정보가 있다.

많은 정보는 사람들에게 유익하지만 그만큼 내가 원하는 특정한 정보만을 찾기 힘들게 만들기도 한다.

따라서 추천 시스템은 사용자가 정보를 수집하고 찾는 시간을 줄여주는 것이 목적이다.



Pull Information과 Push Information

  • 검색서비스(Pull Information)
    기존에 우리가 서칭을 할때 사용하는 검색 서비스는 우리가 무엇을 찾고자 하는지를 명확히 알고 있을때 활용할 수 있다.
    내가 특정 지역의 맛집을 찾고 싶었다면 인터넷에 "oo지역 맛집"이라는 검색어를 적어 얻고자 하는 정보를 얻을 수 있다.
    즉, 사용자가 스스로 찾고자 하는 정보를 알고 있으며 사용자의 요청 이후 결과가 발생한다.
  • 추천서비스(Push Information)
    하지만 추천서비스의 특성은 약간 다르다.
    사용자가 스스로 원하는 바를 정확히 알지 못하는 경우에 사용자가 원할 법한 정보를 미리 찾아 보여주는 것이 추천서비스이다.
    이는 사용자가 어떤 정보를 요구하기도 전에 발생하며 사용자의 과거 이력이나 사용자와 비슷한 다른 사용자의 정보를 활용해서 해당 서비스를 수행하도록 한다.



기업에서는 왜 추천시스템을 사용하는가?

  1. 더 많은 아이템을 판매할 수 있다.
    • 사용자가 원하는 제품을 추천함으로써 사용자의 구매를 이끌어 기업에게 이익을 가져다 준다.
  1. 더 다양한 아이템을 판매할 수 있다.
    • 1번과 같은 맥락으로 보이지만 많은 제품을 판매하는 것과 다양한 제품을 판매하는 것은 다르다.
    • 사용자가 원했지만 정보가 너무 많아 미쳐 보지 못했을 상품을 추천해줌으로써 구매를 이끌어낼 수 있다.
  1. 소비자 만족도가 증가
    • 사용자가 원하는 정보를 쉽게 얻으면서 해당 플랫폼의 만족도가 증가하게 된다.
  1. 충성도 높은 고객 증가
    • 사용자의 만족도가 증가하면서 해당 플랫폼에 머무르는 시간이 증가하게 된다.
  1. 고객이 원하는 것이 무엇인지 알 수 있다.
    • 기업이 각 고객의 니즈를 파악하게 되고 더 많은 데이터가 쌓을수록 추천알고리즘의 성능 향상하는 선순환이 이루어진다.



추천시스템에서 중요한 것

추천 서비스에서 중요한 것은 사용자 정보와 아이템 정보이다.

이 정보들은 우리가 추천시스템을 구현할때 필요한 학습변수로 작용할 수 있다.

사용자 정보에는 직접적인 정보와 간접적인 정보가 있다.

 

  • 직접적인 방법(Explicit) : 설문조사, 평가, 피드백
  • 간접적인 방법(Implicit) : 웹페이지에 머무는 시간, 클릭 패턴, 검색 로그

 

아이템의 경우 플랫폼마다 정의되는 종류와 특성이 다르다.

우리는 각각의 정보를 수집하여 분석된 사용자와 아이템 정보를 바탕으로 추천점수를 계산할 수 있다.



추천 시스템이 풀고자 하는 문제

  1. 랭킹 문제
    : 순위가 중요하기 때문에 평점이나 점수를 정확하게 예측할 필요는 없다.
    1. 특정 아이템을 좋아할만한 상위 n명의 유저를 선정할 수 있다.
    2. 특정 유저가 좋아할만한 상위 n개의 아이템을 선정할 수 있다.
  1. 예측 문제
    : 유저-아이템 조합에서 평점이나 점수를 예측한다.
    • 왼쪽 그래프는 (사용자, 아이템)으로 이루어진 평점 행렬이다. 즉, 첫번째 유저는 1번 제품에 1점을 부여했으며 두번째 유저는 1번 제품에 5점을 부여했다.
    • 오른쪽 그래프는 (사용자, 아이템)으로 이루어진 구매여부 행렬이다. 즉, 첫번째 유저는 1번 제품을 구매했으며 2번 제품은 구매하지 않았다.
    • 예측 문제에서는 위와 같은 행렬의 빈 공간(사용자의 제품에 대한 평점 또는 사용자의 제품 구매 여부)를 예측하는 것이 목적이다.



추천시스템 알고리즘 종류

앞으로 추천시스템의 알고리즘들을 공부하며 포스팅을 하려고 한다.

여기에서는 추천시스템에 사용되는 알고리즘들을 간략하게 적어보겠다.

  • Contents-based Recommender System (컨텐츠기반 추천시스템)
    • 사용자가 과거에 좋아했던 아이템을 파악하고, 해당 아이템과 비슷한 아이템을 추천해준다.
    • 간단하게 예를 들어 사용자가 과거에 스파이더맨과 아이언맨을 즐겨보았다면 타이타닉보다는 캡틴아메리카를 추천해 줄 것이다.
  • Collaborative Filtering (협업필터링)
    • 비슷한 성향 또는 취향을 갖는 다른 유저가 좋아한 아이템을 현재 유저에게 추천해준다.
      컨텐츠기반의 추천시스템에서는 비슷한 아이템을 찾아 추천해줬다면 협업필터링에서는 비슷한 유저를 찾아 그 유저가 좋아했던 아이템을 추천해주는 것이다.
    • 예를 들어 A와 B라는 사용자 모두 스파이더맨과 아이언맨을 즐겨보았다. 그리고 A라는 사용자는 타이타닉 역시 즐겨보았다면 B 사용자에게 타이타닉을 추천해 줄 것이다. (콘텐츠기반이라면 타이타닉을 추천하지 않을 것이다.)
  • Hybrid Recommender System
    • 말그대로 위 두개의 방법을 결합한 추천시스템이다.
    • 콘텐츠기반의 추천시스템과 협업필터링의 장, 단점을 상호보완하였다.

 

가장 대표적인 컨텐츠기반, 협업필터링, 하이브리드 추천 시스템에 대해 간단하게 설명을 적어보았는데 이 외에도 다양한 방식의 추천 시스템들이 있다.

 

  • Context-based Recommendation
    • Context-aware Recommendation System
    • Location-based Reccondation System
    • Real-time or Time-Sensitive Recommendation System
  • Community-based Recommendation
    • 사용자의 친구 또는 속한 커뮤니티의 선호도를 바탕으로 추천
    • sns등의 뉴스피드 또는 sns 네트워크 데이터 활용
  • Knowledge-based Recommendation
    • 특정 도메인 지식을 바탕으로 아이템의 features를 활용
    • Case-based Recommendation
    • Constraint-based Recommendation
  • Deeplearning-based Recommendation
    • Wide & Deep
    • AutoEncoder
    • Neural Collaborative Filtering
    • Deep Factoriation Machine



추천시스템의 한계

  • Scalability : 이전에 학습하지 못한 새로운 상품이나 트렌드가 바뀌어 마주하게 되는 새로운 상황에 대한 대처가 어려움.
  • Proactive Recommender System : 특별한 요청이 없어도 사전에 먼저 제공하는 추천 서비스. 어디서나 유저에게 끊임없이 좋은 정보를 추천해줄 수 있는지.
  • Cold-Start Problem : 데이터가 부족한 상품에 대한 추천이 어려움. 기본적인 성능을 보장하는 협업 필터링 모델 구축이 쉽지 않음. → 데이터 부족이 가장 큰 문제
  • Privacy preserving Recommender System : 개인정보 등 유저 정보가 가장 중요하지만 직접적으로 사용하기 어려움.
  • Mobile devices and Usage Contexts : Personal Computing, Location-based Service(LBS) 위치 기반, 개별 상황 또는 환경 등에 따라 다른 컨텍스트를 사용하는게 어려움
  • Long-term and Short-term user preference : 개인 또는 그룹의 단기, 장기 관심 사항이 다름. 추천 받고 싶은 아이템이 현재 또는 과거 중 어느 시기에 관련 있는지 파악하기 어려움
  • Generic User models and Cross Domain Recommender System : 하나의 모델을 여러가지 데이터에 적용하기 어려움. 비슷한 도메인의 데이터를 활용해도 동일한 성능의 추천시스템을 기대하기 어려움.
  • Starvation and Diversity : 필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황.



추천시스템에 정답은 없다!!!



[click] 참고 자료

이 포스팅은 패스트캠퍼스 [딥러닝을 활용한 추천시스템 구현 강의]를 듣고 작성한 내용입니다.

반응형