추천화 시스템 01. 기초

최지수·2021년 6월 13일
1

추천화 시스템

목록 보기
1/8

안녕하세용~! 추천화 시스템에 관한 정리를 시작해봅니다!

예전부터 관심이 많았던 분야라 드디어 공부할 계기가 생겨 너무 기쁩니다! 꾸준히 작성해보겠습니다!

추천화 시스템 기초

추천화 시스템이란?

특정 유저에게 적합한 아이템을, 그리고 특정 아이템에 적합한 유저를 추천하는 시스템입니당.

필요성

과거엔 유저가 접하는 상품, 콘텐츠가 한정적이었어용. 그래서 원하는게 있으면 직접 찾는데에도 큰 문제가 없었고, 전반적으로 모든 콘텐츠가 소비되어 추천이란 개념이 크게 필요하지 않았습니당.

상황이 달라졌다!

웹/모바일 환경이 나타나면서 다양한 상품, 콘텐츠가 등장하게 되면서 소수의 유명한 아이템 Few Popular Items만 소비량이 증가하고 그 외 것은 소외되는 긴 꼬리 현상Long Tail Phenomenon이 일어나게 됩니당. 추천 시스템은 이런 문제를 해결하는데 도움이 되요!

소외되는 이유는 다양해요. 유저들이 소수의 인기있는 아이템만 찾거나, 원하는 콘텐츠가 있지만, 어떤 키워드로 찾아야 하는지 모르는 경우도 있습져.

추천 시스템은 이러한 현상을 해결해서 유저에게 보다 다양하고 적합한 Product를 제공함으로써 콘텐츠 소비를 통한 매출에 이익을 가져다 줄 수 있습니당.

추천 케이스

추천 시스템은 이미 현업에서 다양하게 활동하고 있습니다! 그 중 간단하게 예를 들어보시져

1. 유튜브 동영상 추천

동영상 조회수가 급증했습니다! 해당 영상과 관련이 있거나, 해당 영상이 업로드된 채널의 영상을 추천합니당

2. SNS 친구 추천

수천만 혹은 수십억명의 유저들 가운데 제가 알만한 사람들을 추천하는 것도 케이스 중 하나졉

사용하는 정보(Feature)

추천 시스템을 구축하려면 유저가 제공하는 정보Feature를 잘 활용해야 합니당. 정보 목록은 아래와 같아용

  1. 유저 정보
    1. 유저 프로파일링 : 추천 대상 유저에 관련된 정보를 구축, 개별 유저 또는 유저 그룹별로 추천
    2. 식별자(ID) : 유저 ID, 디바이스 ID 브라우저 쿠키
    3. 데모그래픽 : 성별, 연령, 지역, 관심사
    4. 유저 행동 정보 : 페이지 방문 기록, 아이템 평가, 구매 등의 피드백 기록
  2. 아이템 정보
    1. 추천 아이템의 종류
      1. 포탈 : 뉴스, 블로그, 웹툰 등 콘텐츠 추천
      2. 광고/커머스 : 광고 소재, 상품 추천
      3. 미디어 : 영화, 음악, 동영상 추천
    2. 아이템 프로파일링
      1. 아이템 ID
      2. 아이템의 고유 정보
        • 영화 : 장르, 출연 배우 및 감독, 소개글, 개봉년도
        • 상품 : 상품 카테고리, 브랜드, 출시일, 상품 이미지
        • 음악 : 아티스트, 작곡가, 장르, 음악 신호 그 자체(!)
  3. 유저 - 아이템 간 상호작용 정보
    1. 유저와 아이템의 상호작용 데이터
      • 유저가 오프라인/온라인에서 아이템과 상호작용 시 로그로 기록
      • 추천 시스템 학습하는 데이터의 Feedback이 됨
    2. Explicit Feedback
      • 유저에게 아이템에 대한 만족도를 직접 물어봄
        feat. 1~5 사이 평점
    3. Implicit Feedback
      • 유저가 아이템을 클릭하거나 구매한 경우
        feat. 쿠팡에서 유저 상품 구매 시 Implicit Feedback = 실제 결과Y

이걸로 무얼 하나?

전에 언급했듯이 특정 유저에게 적합한 아이템을, 특정 아이템에게 적합한 유저를 추천해주는 겁니당. 그리고 이를 위해서 유저-아이템에 대한 Score 값을 계산해서 추천을 해줍니당

추천 알고리즘 종류

1. Simple Aggregate(Popuplar, Average Score, Recent Uploads)

아이템 별로 인기도를 확인하는 방식으로 가장 간단합니당

2. 연관성 분석(Association Analysis)

Transactions의 집단에서 특정 항목의 발생을 예상할 수 있는 Rule을 찾는 방식입니당

3. 콘텐츠 기반 추천(Content-based Recommendation)

유저가 선호하는 아이템을 기반으로 해당 아이템과 유사한 아이템을 추천해용. 딥러닝Deep Learning이 나오면서 아이템이 가진 정보(이미지, etc)를 활용하기 용이해지면서 사용하기 시작했습니당

4. 협업 필터링(Collaborative-filtering)

유저와 비슷한 성향을 갖는 유저들이 선호하는 아이템을 추천하며, 아이템 Feature를 사용하지 않음에도 높은 성능을 보여 자주 쓰입니당!

5. Deep Learning Based Recommendation

쉽게 말해서 콘텐츠 기반 추천 + 협업 필터링입니당! 두 알고리즘을 적절히 활용해서 쓰는 방식으로 가장 많이 쓰이는 알고리즘이라 합니당

결론은 딥러닝!

실제로 콘텐츠 기반 추천이랑 협업 필터링 알고리즘이 현업에서 가장 많이 쓰인다고 합니당! 그래서 이 두개를 섞은 딥러닝 기반 추천 알고리즘을 잘 쓴다고 해용

추천 시스템의 문제점

그렇다고 마냥 이상적인 시스템은 아니라고 합니당. 추천 시스템을 사용 전, 후로 문제점들이 존재한다고 합니당

1. Cold Start

새로운 유저나 아이템이 등장할 경우 학습을 위한 데이터가 부족해서 협업 필터링 모델 구축이 어렵다고 합니당

2. Scalability

유저와 아이템이 크게 증가하면 데이터의 크기도 음청 커집니당. 이로 인해 학습이나 추천을 위한 추론에 걸리는 시간과 계산량도 음청 많아집니당.

3. Data Sparsity

유저-아이템 사이의 Feedback이 있는 경우보다 없는 경우가 훨씬 많죠 당장에 저도 리뷰나 후기 잘 안써요 헷. 이러한 경우에도 정보를 얻기가 힘들죵. 실제로 유저, 아이템 개수가 많아질수록 두드러진다고 합니당.

추천 시스템 서빙 예시

다음은 추천 시스템이 유저에게 서비스를 제공하는 과정을 담았습니당

요약하자면, 유저App에서 요청을 하면 서버가 이를 받아와 요청을 머신러닝 서버ML Server에 보냅니당. 그리고 머신러닝 서버ML Server에 적용된 모델을 통해 해당 유저에게 적합한 결과를 보내주는 방식입니당. 물론, 이를 위해 카카오 등 다른 곳에서 정보를 수집해야겠죠?

이렇게 추천 시스템은 정보를 수집하고, 수집한 정보를 기반으로 모델링을 하여 App을 사용하는 유저들이 좋아할 만한 콘텐츠를 제공합니당.

나머지 부분은 다시 정리해서 금방 올리도록 하겠습니당 ㅎㅎ

Github: https://github.com/pray92/recommendation_system

profile
#행복 #도전 #지속성

0개의 댓글