추천 시스템

07.AI 2024. 1. 11. 13:26
728x90
반응형
추천 시스템
사용자 선호상품 추천서비스, 내용기반,협업필터링,신뢰기반
콘텐츠 큐레이션 역할 수행
 
 
[개념] 개별 사용자 선호 상품 추천 서비스
          사용자의 콘텐츠 소비 이력을 학습해 맞춤형 콘텐츠를 제공하는 기술
[유형] 콘텐츠 기반(메타정보,상품정보), 협업기반 필터링(유사고객 프로파일)
 
1.협업 필터링 기반 추천 시스템
[개념] 사용자의 커뮤니티나 이웃 사용자들의 선호도 또는 유사도를 고려한 예측 기반 추천
[특징] 휴리스틱 기법 (사용자 기반 협업 필터링과 아이템 기반 협업 필터링)
 
[장점] 구현하기가 비교적 쉽고 추천 생성 시 제품의 콘텐츠 정보 또는 사용자 프로필 정보를 필요로 하지 않는다는 점
[단점] 유사도를 계산하기 위한 계산비용과 데이터가 작은 경우 성능이 저하된다는 점 등
 
2. 콘텐츠 기반 추천 시스템
[개념] 추천을 생성하는 데 개인화 수준을 목표로 하고 개개인의 선호도와 제품의 콘텐츠를 고려하여 추천하는 시스템
 
[워드 벡터모델]
1) TF-IDF
2) 코사인 유사도, 선호도 행렬
3) 토픽 모델링: CTR, CDL, ConvMF
 
 
[단계]
1)제품에 대한 콘텐츠 정보를 생성
2)사용자 프로필과 제품 특징에 관련된 선호도를 생성 (TF-IDF, 토픽 모델링, 코사인 유사도, 선호도 행렬)
3)추천을 생성하고 사용자가 좋아할만한 아이템 리스트를 예측
 
[장점] 협업 필터링 접근법에서의 콜드 스타트 문제 보완, 
[단점] 사용자의 선호도에만 집중된 추천사항을 생성. 사용자 선호도와 관련 없는 새로운 제품은 사용자에게 소개하지 않음, 에코 쳄버(추천 시스템에서 사용자는 유사한 입장의 정보만 지속적으로 되풀이되는)
 
3. 상황 인식 추천 시스템
[개념] 상황이라는 새로운 차원을 추가함으로써 상황 인식 추천은 3차원 문제로 하여 사전 필터링, 사후 필터링 수행
추천 = 사용자 \times 아이템 \times 상황
 
[단계]
1)사용자의 선호도에 따라, 즉 콘텐츠 추천 기반으로 각 사용자에 대한 제품 추천 리스트를 생성
2)현재 상황에 한정된 추천 사항을 필터링
 
4. 하이브리드 추천 시스템
[개념] 가중방식, 혼합방식, 케스케이드 방식 등의 다양한 추천 방식을 조합
[기법] 특징 조합, 특징증가, 메타 레벨
 
5. 모델 기반 추천 시스템
1) 확률적 접근법: 사용 가능한 데이터로부터 사전 확률(prior)을 이용해 확률 모델을 생성하는 나이브 베이즈 방식의 추천
 
2) 머신러닝 접근법: 로지스틱 회귀, KNN 분류, 결정 트리, SVM, 클러스터링 등과 같은 다양한 머신 러닝 기법을 사용하여 추천 엔진에 도입시키는 방법
 
3) 수학적 접근법: 행렬 인수 분해 모델과 특이값 분해 모델
 
[기법]  평점예측, 순위 예측 -> 벡터추출,추출정보 평점 프로파일 반영
 
[기술]
1)내용 기반:아이템 속성,메타데이터 기반 벡터 모델통한 연관 아이템 (CBF)
2)협업 필터링:item, contents, 사용자(거리측정,Z-score 평점)
3)신뢰 기반: 단방향/양방향 소셜 신뢰관계
4)모델기반:머신러닝, 나이브 베이지언, 뉴럴 네트워크
5)메모리기반:가정, 관계(유사도) 통한 사용자, 아이템
 
[문제]
1) ‘새로운 사용자 문제(new user problem)’
2) ‘새로운 아이템 문제(new item problem)’
3) ‘데이터 희소성 문제(data sparsity problem)’
4) ‘우연한 발견(serendipity)’
5)cold-start: e-Commerce 등 평판, 추천 시스템에서 신규 유입자 및 새로운 사용자에 대한 자료 처리시 전체 성능 저하를 개선하는 것
 
- 콜드 스타트 문제 해결: 콘텐츠 기반 추천
- 데이터 희소성 해결: 행렬 인수분해, 특이값 분해(SVD)
 
- 허위조작정보를 기준으로 한 법적 책임여부
 
 
[성능 측정지표] 유사도, 데이터 스케일별 가용성
평가지표 : 정확도, Error텀(MAE, RMSE), ROC커브, CTR, Duration Time(광고시청시간), Retention Time(재방문률)
구현시 고려사항 : Serendipity(우연성,신선한 아이템), 자유도(User Control), 공정성(편향된시각방지), 추천커버리지(이 영화를 봤던 사람들이 봤던 다른 영화들+이 영화장르/감독/배우들의 다른 작품)
 
레이팅 예측오차 관련지표
1)MAE(Mean Absolute Error):평균절대오차. 1~m까지의 에러의 절대값의 합을 m으로 나눈 값.
2)RMSE(Root Mean Squared Error):평균제곱상대오차. 모델의 예측값과 실제값간의 차이. Precision(정밀도)표현에 적합.
  타겟의 표준편차와 RMSE값이 비슷하다면 모델의 성능이 좋지 않다고 판단가능

평가 기법

  • 모형을 평가하는 과정에서 가장 중요하게 고려돼야할 사항은 다음과 같습니다.
  • k-fold Cross-Validation과 같이 교차검증을 통하여 모형의 정확도를 일반화시키는게 바람직하며 오차를 평가하는 기준은 평균 제곱근 오차(RMSE)나 평균 절대 오차(MAE)가 주로 쓰입니다.
  • 또한 정확도와 재현율 매트릭도 주로 쓰입니다.

(http://hochul.net/blog/recommendation-daisy/
 

Recommendation : 추천 – 알고리즘 : Item-Based Filtering

추천 (Recommendation) 데이터 분석의 가장 좋은 활용은 추천이 아닐까 한다. 데이터 마이닝(Data Mining) 이란? 데이터 분석, 추천을 얘기하기 전에 우선, 데이터 마이닝(Data Mining)을 먼저 살펴보면, “대

hochul.net

협업 필터링(Collaborative Filtering, CF)은 페이스북처럼 좋아요/싫어요, 별점/평점을 비슷하게 매긴 사람들은 비슷한 성향을 가졌을 것이라고 생각하고 필터링하는 방법이다.
 
컨텐츠 기반 필터링(Contents Based Filtering, CB)은 컨텐츠 자체 내용을 인공지능이 분석해 갖고 있다가 유사 컨텐츠를 추천하는 기술이다. 두 방식의 결과물은 상당히 다른 편이다.
 
콘텐츠 큐레이션 :  개인의 취향을 분석해 적절한 콘텐츠를 추천해주는 것
최적화된 콘텐츠를 노출하고 이를 추천하는 서비스
 
 

Artwork Personalization at Netflix

Artwork is the first instance of personalizing not just what we recommend but also how we recommend.

netflixtechblog.com

 
 
 
콘텐츠 큐레이션 시대
 
이미 넷플릭스가 사용자 취향을 고려한 영화 추천 서비스로 미디어계의 강자로 떠올랐고 쿼츠, 블렌들 등 큐레이션을 표방한 서비스들이 인기를 얻고 있다. 콘텐츠 큐레이션이 경천동지할 완전히 새로운 현상은 아니지만 최근 5~6년 사이 유독 각광 받는 이유는 미디어 환경의 급변과 맞물려 있다. 스마트폰이 콘텐츠 허브가 되면서 콘텐츠끼리 치열하게 경쟁을 하는 시대가 온 것이다.
 
큐레이션은 AI(인공지능)을 활용한 취향 분석이 기본이다. 사용자가 자주 보는 콘텐츠를 기반으로 비슷한 사용자들의 취향을 반영해 좋아할 만한 것들을 추천해주는 방식이다. 데이터베이스(DB)는 물론 취향을 반영하는 알고리즘 기술도 필수적
 
 

http://www.dt.co.kr/contents.html?article_no=2018022702102251047001

 

www.dt.co.kr

 


 
메타데이터 기반 벡터 모델
 
벡터 공간 모델: 텍스트 문서를 단어 색인 등의 식별자로 구성된 벡터로 표현하는 대수적 모델
사례: TF-IDF 가중치
활용: 정보 검색, 정보 필터링 및 검색 엔진의 색인이나 연관도 순위
비교항목: 불린모델
관련모델: 단어식별, 랜덤 색인 등
 

 
협업 필터링
[개념] 데이터 이용, 사용자 선호도 수집, 사용자 관심분야 자동 예측 알고리즘 
다양한 사용자의 선호도를 수집하여 사용자의 관심 분야를 자동으로 예측하도록 하는 방법
 
[특징] Big Data 기반 분석, 집단지성 활용, 수학적 계산 모델 이용, 신규 수익 창출
[모델] 피어슨 상관관계, 코사인 유사도, 타니모토, 유클리디안거리 수식
 
[유형] User-based, Item-based
가)User-based CF - 일반적으로 가장 많이 쓰임. Nearest Neighbor 알고리즘.
 - 같은 패턴을 가진 사용자 검색 > 같은 유형의 사람들 패턴을 예측 정보 제공
 
나) Item-based CF - 아마존이 처음 사용.  "Users who bought x also bought y"
 - 아이템 매트릭스 작성 > 사용자 일치 데이터 검색 후, 매트릭스에 대입 > 현재 사용자 선호도 예측
 
Similarity_Cosine: 
Manhattan Distance로 잘 알려진, 두 지점 간의 거리를 구하는 방법의 확장판으로, 
두 지점간의 거리를 구할 때 2차원의 좌표값을 사용했다면, 여기서는 이를 3차원 벡터로 확장한 알고리즘이다.
 
Cosine Similarity에서는 각 문서간의 유사도를 평가할 때, 두 문서의 각도를 척도로 삼는 다는 점에서 이 벡터 표기법이
더 큰 의미를 갖게된다. 
값의 범위: (-1~1), -1: 두 vector는 정확히 반대, 0: 두 vector는 독립, 1: 두 vector는 같다는 의미로 해석된다.
 
추천 시스템
 
[변화]
 
정적 Web 시스템내 유저-사이트간 커뮤니케이션 변화 정적인 경험 제공 -> 대화(커뮤니케이션) 기반 경험   제공
- 과거 구입 내역, 검색내역, 유저 행동 패턴 기반
[기술] 협업 필터링, 아이템 기반, 콘텐츠 기반
[유형]
1) 내용 기반: 아이템 속성,메타데이터 기반 벡터 모델통한 연관 아이템 (CBF)   2) 협업 필터링: item, contents, 사용자(거리측정,Z-score  평점)
3) 신뢰 기반: 단방향/양방향 소셜  신뢰관계
4) 모델 기반: 머신러닝, 나이브 베이지언, 뉴럴   네트워크
5) 메모리 기반: 가정, 관계(유사도) 통한 사용자,   아이템
 
[문제]
1) 신규이용자: 시스템을 새롭게 사용하는 사용자는 분석할 데이터가 충분하지 않으므로 정 교한 추천이 어려움
2) 신규아이템: 등록된 지 얼마 되지 않아 아직 이용한 사용자가 거의 없는 아이템은 추천이 거의 되지 않는  상황
3) 데이터 희소성: 협업 필터링, 사용자와 아이템의 수에 비해서 평점의 수가 극도로 적어, 사용자들의 취향을 정확하게 파악하기 힘든   상황
4) 우연한 발견: 사용자가 정말 좋아하지만 생각하지 못했던 아이템을 추천하는 것
5) cold-start: e-Commerce 등 평판, 추천 시스템에서 신규 유입자 및 새로운 사용자에 대한 자료 처리시 전체 성능 저하를 개선하는   것
 
[성공요인]
1) 추천 시스템 알고리즘  고도화
2) 데이터 증가
3) 컴퓨팅 파워  향상
 
[성능 측정지표] 유사도, 데이터 스케일별   가용성
 
문제2) 협업 필터링
 
[개념] 데이터 이용, 사용자 선호도 수집, 사용자 관심분야 자동 예측 알고리즘    [특징] Big Data 기반 분석, 집단지성 활용, 수학적 계산 모델 이용, 신규 수익 창출
[모델] 피어슨 상관관계, 코사인 유사도, 타니모토, 유클리디안거리   수식
[유형] User-based, Item-based
[구현] Memory-based, Model-based, Hybrid
[장점] 신규수익창출, DAU/ARPU 등 증가
[단점] Cold Start, Filter Bubble, 정확도 관련 문제
[동향] 1)구현방식:모델기반,메모리기반
2)서비스기반:정부3.0, 농업,엔터테인먼트,개인비서,금융
[고려] 정확도 개선, 데이터 분량 조절, Sbilling Attacks, Long Tail   Rating
과도한 타킷마케팅, 사생활간섭/침해, Information 고립현상, 특정 기사들 추천 배제, 자유도 제공
 
1)협업 필터링: 다수의 사용자 행동모델   기반
 
그림 1.협업 필터링의 단순한 예
 
그림 2. 협업 필터링으로 사용되는 유사요소와   차이요소
[추천엔진 사용 알고리즘] 1) 협업필터링
2) 클러스터링 알고리즘: K-means, 퍼지 C-means,  EM
3) 베이즈 신뢰도 넷(변수간 확률), 마코프 체인(순차적   예측)
4) 군집분석, 인공신경망, tf-idf(term frequencyinverse document frequency)
 
문제점)
1) 계산량이 비교적 많은 알고리즘이므로 사용자 수가 많은 경우 효율 적으로 추천할 수 없    는 단점이 있다. 앞서 간단하게 소개한 행렬분해의 경우, 사용자 수가 커짐에 따라 계산이     몇 시간에서 며칠까지 걸리는 경우가 종종   생긴다.
2)롱테일 문제: 비대칭적 정보 쏠림현상 (사용자들의 관심이 적은 다수의 항목은 추천을 위한 충분한 정보를 제공하지 못하는 경우)
 
2)컨텐츠 기반 필터링: 항목 분석 프로파일+사용자 선호도 추출 프로파일 = 유사성 계산
 
그림 3. 컨텐츠-베이스 필터링에서 차이랭킹(ranked differences)
 
문제점) 콜드 스타트 문제 해결가능  1) 다양한 형식의 항목 추천   어려움
[추천엔진 사용 알고리즘] 1) 협업필터링
2) 클러스터링 알고리즘: K-means, 퍼지 C-means,  EM
3) 베이즈 신뢰도 넷(변수간 확률), 마코프 체인(순차적   예측)
4) 군집분석, 인공신경망, tf-idf(term frequencyinverse document frequency)
3) 모델기반 협력 필터링  (넷플릭스)
기존 항목 간 유사성을 단순하게 비교하는 것에서 벗어나 자료 안에 내재한 패턴 을 이용하    는 기법
[특징] 연관되는 자료의 크기를 동적으로 변화,  잠재 모델(사용자 특정 항목    선호추정)
 
[장점] 높은 정확도, 직관적 사용자 전달, 추천 신뢰성 [단점] 모델 생성시간  장기화
[개선] 내재 패턴 분석 위한 LDA(A(Latent Dirichlet Allocation), 베이지안 네트워크 (Bayesian Network)  알고리즘 사용
 
 
▲ 추천 프로그램을 설계하는 방법
  • 추천(Referral) 프로그램은 "5달러를 주고 5달러를 받는" 형태로 많은 앱에서 볼 수 있으며, 최근 몇 년간 인기를 끌고 있음
  • 사용자들이 제품 내에서 사용할 수 있도록 CAC(고객 획득 비용)를 사용자에게 제공함으로써, 구글이나 페이스북과 같은 유료 마케팅 채널보다 큰 이점을 가짐
  • 특히 고객 획득 비용이 높은 틈새 시장을 대상으로 하는 제품에 유용하며, 추천 프로그램은 전체 고객 유입 경로의 20-30%를 차지할 수 있음
  • 추천 프로그램이 만병통치약은 아니지만 다른 마케팅 활동을 보완하기 위해 추가할 가치가 있음

추천 프로그램의 역사

  • 최초의 문서화된 추천 프로그램은 기원전 55년 율리우스 시저가 군인들에게 친구를 군대에 모집하면 연봉의 약 1/3에 해당하는 300 세스테르티우스를 지급한 것으로 알려짐
  • 드롭박스의 혁신적인 추천 프로그램은 2008년경 시작되었으며, 많은 스타트업들이 비슷한 아이디어를 실험하는 데 영감을 줌
    • 친구를 초대하면 500MB 추가 저장 공간을 얻는 방식
    • 15개월만에 10만 사용자에서 4백만명이 됨. 매일 가입자중 35%가 추천에 의한 것. (20%는 공유 폴더 및 다른 바이럴 기능으로 부터)
  • 특히 이미 입소문을 통해 퍼지고 있는 제품에 매우 효과적. LTV가 낮은 제품에는 효과적이지 않음

추천 프로그램의 구조

  • 추천 프로그램은 Airbnb, Uber, Instacart, Coinbase, Wealthfront 등 다양한 회사에서 구현되며, 몇 가지 공통적인 패턴을 가짐
  • 프로그램을 구성할 때 다음과 같은 질문에 답해야 함:
    • 질문: 언제 사용자에게 추천을 요청할 것인가? 왜 추천을 요청하는가? 메시지는 무엇인가?
    • 대상: 어떤 사용자를 대상으로 할 것인가? 추천 금액은 어떻게 설정하는가?
    • 인센티브: 어떤 인센티브를 제공할 것인가? 외부($) 또는 내부(포인트, 저장공간등) 초대한 사람과 받는 사람에게 동일한 보상을 줄것인가?
    • 페이백: 프로그램의 성공 기준은 무엇인가? 카니발라이제이션에 대해 어떻게 생각하는가 ?
  • AirBnB를 이에 따라 생각해보면
    • 질문 : 집 전체 또는 개인 룸 하나를 임대할 수 있는 사람을 초대하세요
    • 대상 : 모든 에어비앤비 이용자
    • 인센티브 : $200 획득
    • 페이백 : CAC가 다른 마케팅 채널에 비해 더 우수하며 비교 가능(이 부분은 추측임)

추천 요청(The Ask)

  • 정말 중요한 것은 "어디에서 물어보는가?"임
    • 여러 번 물어 볼것. 여러 장소에서 다양한 메시지를 사용. 사용자에게 요청하는 상황에 맞게.
    • 배너에 추천 기능을 쓴다고 사람들이 이용하지 않음
  • 추천 요청 화면을 주요 화면의 일부로 만들어 더 자주 표시할 것
    • 사용자가 앱 내에서 무언가를 구매한 후나 친구와 상호작용한 후에 요청하는 것이 좋음
    • 온보딩 흐름에 추가하고, 사용자가 작업을 마치거나 하면 그때 참여를 유도할 수 있음
    • 절대 "광고"처럼 보이게 만들지 말 것
  • Uber는 추천 캠페인을 'holidizing'하여 운영 (휴일과 연계하여 추천 프로그램을 맞춤화하거나 조정하는 것)
    • 운전자들에게는 휴일이 다가오면 추천 프로그램에 참여해서 추가 수익을 얻으라고 알리거나
    • 주요 콘서트가 열리는 동네에서는 1명을 초대하면 X를 받지만 5명 초대하면 5*X를 받는 계층형 특별 캠페인을 실행하는 것도 가능
    • 주요 휴일 마다 새로운 금액/새로운 이미지를 이용하여 메시지를 업데이트하는 것도 좋음
  • 다양한 메시지와 맥락에 맞춰 여러 번 요청하는 것이 중요함

대상 설정(The Target)

  • 추천 프로그램은 "새로운 사용자"가 친구를 추천하도록 초점을 맞추어야 함
    • 초기 온보딩 흐름중에 사용자에게 메시지를 표시하고, 온보딩의 일부로 친구들의 이메일을 추가하도록 함
    • 초대를 보내기 전에 먼저 제품을 경험하라고 하는 의견과 정반대인데, 이용하고 빠지기 전에 먼저 초대하는게 좋고, 그래서 더 많이 보내는게 성공확율이 더 높아짐
  • 사용자의 가치에 따라 다른 추천 금액을 설정하는 것이 효율적일 수 있음
    • 많은 마켓플레이스 회사들이 이렇게 하고 있음
    • 뉴욕/샌프란 과 멤피스 라면 각 장소별 금액이 달라야 함

인센티브(The Incentive)

  • 드롭박스의 경우 저장 공간을 인센티브로 제공했으며, 이는 내부적 보상과 외부적 보상 사이의 딜레마를 보여줌
    • 내부적 보상은 비용 효율적이지만, 외부 사용자에게는 반응이 적을 수 있음(제품에 대해서 알지 못한다면 더더욱)
    • 드롭박스의 스토리지는 구체적인 가치 형태이기 때문에 내부/외부 중간적 위치임
  • 결과적으로 대부분의 추천 프로그램은 시간이 지남에 따라 달러로 향하는 경향이 있지만, 중요한 건 새로운 외부 사용자의 우선 순위를 정하고 인센티브를 최대한 구체적으로 만드는 방법에 대해 생각하는 것
  • 인센티브 금액 설정은 CAC/LTV 계산을 기반으로 하며, 더 큰 금액을 제공하는 계층적 오퍼가 더 효과적일 수 있음
    • 금액을 올리기 위해서는 "가입하면 $5" 보다 "가입하고 5개를 구매하면 $100" 같은 것도 가능
      • 가입 전환률과 재구매 전환률이 100x 까지 차이가 난다면, 인센티브를 20x 까지 안전하게 올릴 수 잇음
    • “give $20, get $5” 와 “give $5, get $20.” 에서 일반적으로 초대자 중심의 금액이 더 잘 작동함. 즉 초대자가 이익이 더 많은 쪽

보상(The Payback)

  • 추천 프로그램 전략을 추진하려면 일종의 ROI 지표가 필요하고, 이를 측정하기 위해 CAC/LTV 분석을 사용
  • 캐니벌라이제이션(기존에 무료로 유입될 사용자가 추천 때문에 유료로 유입시키는 현상)을 고려해야 함
    • 이를 위해서는 A/B 테스트를 통해서 "Cost Per Incremental Customer(증분 고객당 비용)" 같은 것을 측정해야함
    • 또는 간단하게 단순히 On/Off 테스틀 통해서, 추천 프로그램을 껐을때 신규 사용자수가 크게 감소한다면 추천 프로그램이 동작하고 있는 것

추천 프로그램의 한계

  • 드롭박스는 결국엔 추천 프로그램에 덜 의존하게 되었음
  • 시장이 성숙함에 따라 추천 프로그램의 중요성은 감소하며, 제품의 자연스러운 네트워크 효과가 사용자 획득을 주도하게 됨
    • Dropbox처럼 진정한 네트워크 효과가 있는 제품의 경우, 추천 보상과 같은 외적인 요소보다는 폴더 공유와 같은 내재적인 사용 사례가 결국 신규 사용자 확보를 주도하게 될 것
  • 추천 프로그램보다는 바이럴 기능을 구축하는 것이 더 지속적인 가치를 창출함
    • 바이럴 기능을 구축하는 것과 추천 프로그램을 구축하는 것은 사용자가 친구를 초대하도록 유도하는 비슷한 문제이지만, 공유와 소통을 중심으로 하는 진정한 바이럴 기능은 영속적이며 지속적인 가치를 창출
    • 이러한 기능은 사용자의 참여와 유지에 도움이 되며, 부수적인 효과로 신규 사용자도 창출할 수 있음. 신규 사용자를 무료로 플랫폼으로 끌어들일 수 있다는 것은 큰 이점.
    • Dropbox의 경우, 더 복잡한 추천 구조를 만드는 대신 팀원들을 프로젝트에 초대하거나 파일 공유 등의 제품 기능에 투자하는 것을 의미
    • Uber의 경우, '도착 예정 시간 공유'나 청구서 분할 또는 단체 음식 주문과 같은 기능에 바이럴을 구축하는 것을 의미
 
 
 

How to design a referral program at andrewchen

Above: Dropbox’s innovative growth initiative — A referral program to give/get storage Why a referral program? Referral programs — the “give $5, get $5” offers you see in many apps — have become popular in recent years. They have big advantages

andrewchen.com

 
 

 

 

728x90
Posted by Mr. Slumber
,