AI & Data를 활용하는 기술경영자

추천 시스템 톺아보기(2022/06/05~2022/06/18) 본문

Recommend_System

추천 시스템 톺아보기(2022/06/05~2022/06/18)

Data_Lover 2022. 6. 18. 21:37
728x90

 

Intro

Killing Time 지킴이 결정 장애 해소, 고객의 만족도 향상 등 우리의 삶 속에서 깊이 스며든 추천 시스템에 대해서 어렵지 않게 이야기해보려고 합니다.

 

추천 시스템과 친해지기

추천 시스템을 알려면 해야 할 것은 추천 시스템의 역사, 정의, 특징, 활용 예시, 한계. 등등을 알아야겠죠?

 

등장 이유

우리는 현재 인터넷이라는  수많은 정보가 쏟아지는 공간에서 삽니다.

물론, 이로 인해서 편리성을 얻기는 했지만 때로는 수많은 정보와 데이터로 인해서 선택의 연속의 삶을 살고 있고 더 나아가 적절한 결정을 내리기 어려웠던 경험들이 있다고 생각합니다.

예시: 오늘 무슨 프로그램을 볼까? , 저녁은 뭐 먹지? , 오늘 뭐를 먼저 해야 하지?, 무슨 선물을 사지?, 이 옷 이쁠까?.. 등등

 

그로 인해서, 우리는 간혹 이러한 상상을 하곤 합니다.

"차라리 누가 나에게 알려줬으면 좋겠다." 

맞습니다. 우리의 수많은 결정을 해야 하는 삶 속에서 합리적인 도움을 줄 수 있는 방법, 그것이 추천 시스템입니다.

정의 및 Simple-Flow

정보 필터링 기술 중 하나로, 사용자가 관심을 가질만한 정보를 선호도 여부를 판단하여 추천을 하는 것으로 사용자(user)와 아이템(item)으로 구성된 시스템입니다.

 

선호도 여부는 유저가 확실하게 긍정/부정을 나눌 수 있는  Explicit Feedback(평점, 좋아요 등)과 나누기 어려운 Implicit Feedback(사용자의 행동 패턴, 상품 click 수, 상품 구매 여부, 접속 시간 등)을 기반으로 가장 적절한 item점수를 계산합니다.

 

주의할 점은 전자는 노이즈가 많이 없지만 후자는 노이즈가 많기에 주어진 데이터에 대한 신뢰의 여부를 판단하기 어렵다.

이미지 출처:Intro to Recommendation Engines (srose.biz)

 

그래서,  계산된 값을 바탕으로 가장 관련 있는 아이템 순서를 리스트 형태로 제시합니다.

 

목적

모든 기술에는 지향점이 있는데 추천 시스템은 4가지로 분류됩니다.

  • Relevance : 적절한 아이템을 유저에게 추천하는가?
  • Novelty : 진부한 아이템(예: Sales Top 100)이 아닌 유저가 탐색하지 못한 색다른 아이템을 추천하는가? 
  • Serendifity : 유저가 경험해보지 못한 정말 새로운 아이템을 추천하는가?
  • Diversity : 다양한 아이템을 추천하는가? 

위의 목적들을 수행하려면 무슨 데이터를 써야 할까요?

데이터 종류 

데이터는 items, users, transactions으로 크게 세 가지로 나뉩니다.

 

 

Items

 

추천할 항목으로 가치와 데이터의 복잡함에 따라서 구분이되기에 플랫폼마다 정의하는 items의 종류가 다릅니다.

그래서,  모든 것을 추천해주는 플랫폼은 없고, 플랫폼마다 관련 있는 상품 혹은 item만 추천합니다.

 

Items 속 정보는 주로 items ID, items의 고유 정보(크기, 색, 가격.. 등등), item을 좋아하거나 구매한 사용자의 정보 정도입니다.

 

예시

  • 책, 전자제품, 옷 등 웹사이트 내 웹페이지
  • SNS에서 비슷한 게시글이나 사진
  • 여행지, 음식점 등 지역 혹은 장소 정보
  • 영화, 음악, 동영상, TV 프로그램 등 다양한 영상

 

Users

 

여러 목적과 특징을 갖는 집단이기에 행동 패턴으로 유저 모델링을 합니다.

그래서, 주로 협업 필터링 알고리즘 혹은 사회적 요인(유행, 분위기)을 활용한 추천 시스템을 만듭니다.

 

여러 정보를 활용하여 사용자 혹은 사용자 그룹을 구분하여 분석한 후 개인별 혹은 사용자 그룹별로 추천 시스템을 구축합니다. 이로 인해서 사람들이 알고리즘에 한 번 빠지면 쉽게 나오지 못하는 것입니다.^~^

 

정보 예시

  • 사용자 ID(나이, 성별, 지역, 학력.. 등등)
  • 쿠기, 인터넷 주소
  • 웹페이지 방문 기록, 클릭 패턴 등 사용자 행동 정보

정보 수집 방법

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

 

Transactions

 

유저가 인터넷에 남긴 로그에서 중요한 정보를 추출한 핵심 데이터로 유저와 아이템 간의 상호작용을 알 수 있기에 추천 시스템의 성능과 연관이 있습니다.

 

예시

  • 해시태그
  • 평점
  • Implicit 한 정보는 모두 활용 가능하다.

추천 시스템이 많이 쓰이는 OTT와 SNS의 대표적인 앱인 NETFLIX와  Instagram 간단하게 톺아봅니다.

활용 예시

1. 넷플릭스: 콘텐츠 추천

  • 계정 생성 시 선택된 '좋아하는 콘텐츠'를 기반으로 추천을 합니다.
  • 신규 가입자에게도 적절한 추천을 할 수 있게 됩니다.

2. 인스타그램: 팔로우 추천

  • 팔로잉을 하고 있는 계정 유형과 피드에서 자주 클릭한 계정을 분석하여 피드 광고를 노출시킵니다.
  • 계정을 팔로우할 경우 해당 계정과 비슷한 계정을 추가적으로 추천합니다.

 

Challenges

 

추천 시스템이 풀고 싶은 문제들에 대해서 이야기할게요

 

Ranking vision of Problem

 

학습 데이터를 통해서 유저의 선호도를 정확하게 예측하는 것이 목적인 문제입니다.

이때, 정확한 수치를 예측하는 것이 아닌 랭킹을 고려합니다.

그래서, 두 가지 Top-K가 가능합니다.

  • 특정 아이템을 좋아할 만한 Top-K유저를 선정합니다.
  • 특정 유저가 좋아할 만한 Top-K 아이템을 선정합니다.
  • EX:) 유저 A는 1,2,3,4번 상품 순으로 선호를 할 것입니다.

Prediction vision of Problem or Matrix Completion problem

 

선호도 기준 상위 N개의 아이템을 선택하는 문제로 학습 데이터를 통해서 유저의 선호도를 정확히 예측하는 것입니다.

EX:) 유저 A가 1번 상품을 선호할 것입니다.

 

왜 Matrix Completion problem이라고도 불릴까요?

유저-아이템 조합에서 평점 혹은 점수를 예측 것뿐만 아니라 유저-아이템의 행렬을 채우는 문제 수행하기 때문입니다. 

그 과정 속에서 유저(m명)-아이템(n) 개의 mXn행렬이지만 아래의 그림처럼 비어있는 부분도 존재하기에 채워야 합니다.

Explict ratings는 실제 평점같이 점수화를 할 수 있는 값이고 Implicit ratings는 이진적으로 좋아한다/아님을 나타내는 값을 채운 것입니다.

 

정의만 놓고 보았을 때는, Prediction version of Problem을 사용한 추천 시스템이 많을 것 같지만 실제는 그렇지 않습니다.

왜냐하면, 우리는 상품 A와 B를 고를 때 상대적으로 좋은 것을 사지, 점수를 매겨서 사진 않기 때문에 비즈니스 측면에선 추천 시스템의 목적은 아이템 판매량을 높이는 것이기에 Ranking version of Problem을 활용하는 게 효율적입니다.

 

그렇다면, 좋은 추천 시스템이란?

좋은 추천 시스템을 만들기 위한 고려사항

  • 적절한 아이템을 빠르게 찾고, 해당 아이템을 추천한 이유에 대해서 설명 가능한 추천 알고리즘
  • 추천 알고리즘을 만들기 위한 좋은 데이터를 수집하여 적절한 추천을 위한 후보군 설정
  • 추천 시스템을 통해서 비즈니스 역량 확대, 매출 증대. CTR증가 
  • 플랫폼에서 추천 시스템이 주요한 기능이고 필수인지 혹은 옵션인지에 관한 역할 정의
  • 사용자에게 어떤 정보를 받고, 어떤 환경에서 서비스를 이용하는 것인지 확인 필요

 

좋은 아이템을 추천하는 것이 좋은 해결책은 아닐 수도 있다는 것을 염두하라

  • 사용자가 추천된 리스트에서 결정하는데 어려움을 겪을 수 있다.(EX:결정장애)
  • 사용자 스스로 정보 혹은 지식이 부족해서 추천된 아이템 내에서 선택이 불가할 수 있다.(EX:장바구니에는 담아있지만 구매를 하진 못하는 케이스)

 

사용자와 플랫폼 간의 소통이 되어야 한다

  • 사용자 스스로 추천된 아이템 중에서 선택할 수 있도록 소통한다.
  • 플랫폼은 사용자의 취향을 더 정확하게 파악할 수 있도록 의견을 수렴해야 한다.
  • Interactive process를 통해서 사용자가 플랫폼에 오래 머물 수 있도록 유도한다.

 

정보 검색과 정보 추천의 차이 극대화

 

검색 서비스는 Pull information으로 사용자가 요구한 후 작동을 하기에 사용자의 요구를 잘 압니다.

  • 일반적인 아이템과 정보 제공
  • 결과가 다양하고, 결과 내에서 사용자가 스스로 필터링을 해야 한다.
  • EX:) Internet Surfing

추천 서비스는 Push information으로 사용자가 요구하기 전에 작동하는 것으로 사용자의 요구를 잘 모릅니다.

  • 개인화된 아이템과 흥미롭고 유용한 정보를 제공합니다.
  • 제공된 리스트에서 사용자가 선택하는 과정입니다.
  • EX:) Youtube Algorithm

 

추천 시스템의 성능 확인 방법

 

Business or Service관점

 

추천 시스템을 적용하기 전/후에 따라서 달라진 점을 파악하여 실질적인 매출, 구독 등을 바탕으로 수익 향상 여부를 체크합니다. 추가적으로, Click Through Rate(CTR)을 바탕으로 방문자의 행동 변화 여부도 알아냅니다.

비교를 통해서 고객에게 긍정/부정적으로 영향이 갔는지 알게 됩니다.

 

Technique와 Operation관점

  • 다양성: 추천하는 아이템 종류의 변화
  • 참신함: 사용자가 한 번도 보지 못한 아이템 또는 뜻밖의 아이템이 추천되는지 여부
  • 관련성:  사용자와 얼마나 관련이 되어있고, 실제 구매로 이어졌는지에 대한 여부

 

A/B Testing

 

마케팅과 Web분석에서 주로 사용하는 실험으로 A와 B 2가지를 서로 변형된 방법을 사용하여 진행하는 대조 실험입니다.

가설을 직관이 아닌 데이터 혹은 결과로 증명이 되기에 의사결정에 도움을 줍니다.

 

Offline Evaluation

  • 추천 알고리즘 구현에 사용할 데이터를 Train/Valid/Test로 나누어서 평가
  • RMSE 등 정량적인 지표를 활용하여 객관적인 평가가 가능
  • 수집된 데이터를 바탕으로 평가가 이뤄지지만 실제 서비스에선 다르게 적용되기도 함
  • 다양한 추천 알고리즘을 쉽고 빠르게 설명이 가능하게 함

Online Evaluation

  • 추천 시스템이 적용된 플랫폼에서 사용자의 피드백과 평점을 활용
  • 수집할 수 있는 데이터의 한계는 있지만 실제 사용자의 데이터이기에 정확한 평가가 가능
  • 수집한 데이터는 추천 서비스 향상에 직접적인 도움을 줌

추천 시스템의 평가지표

다양한 평가지표를 보여드릴 텐데 상황에 맞게 사용하면 됩니다.

 

MAE(Mean Absolute Error)

 

정답 평점과 예측 평점 간의 절대 오차에 대한 평균으로 직관적이고 해석에 용이합니다.

그러나,  오차가 큰 이상치에는 쉽게 영향을 받는다는 것이 단점입니다.

#Function

import numpy as np

def mae(y_true, predictions):
	y_true, predictions = np.array(y_true), np.array(predictions)
    return np.mean(np.abs(y_true- predictions))
   
true = [1,2,3,4,5,6]
predicted = [1,3,4,4,5,9]

print(mae(true, predicted) #Returns:0.833

#라이브러리
from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test, y_pred)

 

RMSE(Root Mean Square Error)

 

평점 등 Prediction version problem의 추천 서능을 평가할 때 사용하는 지표이다.

제곱을 하여 더 큰 양수인 오차를 만든 후에 제곱근을 씌우면 오차의 왜곡현상을 줄이기에 실제 예측값과 유사한 단위를 가진다.

 

RMSE가 낮을수록 추천 알고리즘의 성능이 좋다고 정량적으로 평가한다.

from sklearn.metrics import mean_squared_error

RMSE = mean_squared_error(y, y_pred)**0.5

 

Precision@K

 

1로 예측한 것 중에서 실제 1이 얼마나 있는지를 나태는 비율입니다.

다시 말하면, 내가 추천한 아이템 K개 중에서 실제 사용자가 관심 있는 아이템의 비율을 의미합니다.

 

예시

추천한 아이템이 5개이고 사용자가 좋아하는 아이템이 3개라면 Precision = 3/5 = 0.6

 

from sklearn.metrics import precision_score
y_true = [0,1,2,0,1,2]
y_pred = [0,2,1,0,0,1]
precision_score(y_true, y_pred, average='macro')
#0.22

 

Recall@K

 

실제 1 중에서 내가 1로 예측한 것이 얼마나  되는지를 나타내는 비율입니다.

그러므로, 사용자가 관심 있는 모든 아이템 중에서 내가 추천한 아이템 K개가 얼마나 포함되어 있는지에 대한 비율을 의미합니다.

 

예시

사용자가 좋아하는 모든 아이템은 6개이고 나의 추천에 포함되는 아이템이 3개라면 Recall = 3/6 = 0.5

from sklearn.metrics import recall_score
y_true = [0,1,2,0,1,2]
y_pred = [0,2,1,0,0,1]
recall_score(y_true, y_pred, average='macro')
#0.33

 

Average Precision @K

  • Precision@i는 추천한 아이템 개수 K 중에서 해당 인덱스까지만 고려했을 때의 Precision값이다.
  • rel(i)는 relevence로 해당 아이템을 사용자가 좋아했는지 여부를 0과 1로 나타낸다.
  • Precision x relevence: 정답 아이템이 추천 목록 중에서 딱 해당 순위에만 영향력을 준다.
  • 순서에 따라서 AP점수가 달라진다.
  • K=3, Precision@1 rel(1) + Precision@2 rel(2) + Precision@3* rel(3) 각각을 구해서 더한다.
  • m은 모든 아이템 중에서 사용자가 좋아한 아이템 수이다.
import numpy as np
from sklearn.metrics import average_precision_score
y_true = np.array([0,0,1,1])
y_scores = np.array([0.1,0.4,0.35,0.8])
average_precision_score(y_true, y_scores) #0.83

Mean Average Precision@i * rel(i)

  • MAP@K는 모든 유저에 대해서 Average Precision@K의 평균 의미
import numpy as np
from sklearn.metrics import average_precision_score
y_true = np.array([0,0,1,1])
y_scores = np.array([0.1,0.4,0.35,0.8])
AP = average_precision_score(y_true, y_scores) #0.83
MAP = mean(AP)
MAP

 

Normalized Discounted Cumulative Gain(NDCG)

 

특징

  • 랭킹 추천에 많이 사용되는 평가지표 이자 기존 정보검색에서 많이 사용하던 지표이다.
  • 순위에 가중치를 주어서 Top-N 랭킹 리스트를 만들고, 더 관심있거나 관련성 높은 이이템 데이터의 성향을 반영한다.
  • 순서별로 가중치 값(관련도, RELEVANCE)를 다르게 적용하여 계산한다.
  • MAP등 평가방법 보안
    • 추천 또는 정보검색에서 특정 아이템에 biased된 경우
    • 이미 유명하고 잘 알려진 인기있는 아이템 또는 한 명의 사용자에 의해서 만들어진 랭킹문제
  • 가장 이상적인 랭킹(정답 랭킹)과 현재 점수를 활용하여 랭킹 사이의 점수를 cumulative하게 비교한다.
  • 1에 가까울수록 좋은 랭킹이다.
  • log2i로 normalization하여 순위가 낮을수록 가중치를 감소한다.
  • 검색엔진, 영상, 음악 등 콘텐츠 랭킹 추천에서 주요 평가지표로 활용된다.

 

CGp

  • rel: Relevance로 사용자가 특정 아이템과 얼마나 관련이 있는지 나타내는 값으로 추천의 상황에 맞게 정한다.
  • 상위 아이템 p개의 관련성을 합한 cumulative gain이다
  • rel(관령성)-> binary(관련여부) 또는 complex value(문제에 따라 세분화된 값) -상위아이템 p개에 대해서 동일한 비중으로 합한다
  • CG: Cumulative gain으로 추천한 아이템의 Relevance합으로 두 추천 모델이 순서에 관계없이 동일한 아이템 셋을 추천한 경우 두 모델의 CG는 같아진다.
  • 고로 CG는 순서를 고려하지 않은 값이다.

DCGp

  • 순서에 따른 할인 개념을 도입한 것이다.
  • 추천 아이템의 순서가 뒤에 있을수록 분모가 커지게 되어 전체 DCG에 영향을 적게 주도록 한다.
  • 개별 아이템의 관련성에 log normailzation을 적용한다.
  • 랭킹에 따라 비중을 discount 하여 관련성을 계산한다.
  • 하위권에 penalty 부여한다
  • 사용자별로 추천 아이템의 수가 다른 경우 정확한 성능 평가가 어렵다는 한계점이 있어서 Scale를 맞춰줄 필요가 있다.

 

Ideal DCG(IDCG)

  • 최선의 추천을 했을 때 받는 DCG값이다
  • 모든 추천 아이템 조합 중 최대 DCG값은 동일하다

 

Normailzed DCG (NDCG)

  • DCG의 한계점을 보안하기 위해서 정규화를 적용한 것이다.
  • 현재 모델의 추천 리스트 / 가장 이상적인 추천 조합을 통해서 현재 모델이 얼마나 좋은지를 나타내는 지표이다.
  • 정규화를 했으므로 NDCG는 0~1 사이의 값을 갖는다.

 

import numpy as np
from sklearn.metrics import ndcg_score
#ground-truth revlevance of some answers
true_relevance = np.asarray([[10,0,0,1,5]])
#predict some scores relevance for the answers
scores = np.asarray([[.1,.2,.3,4,70]])
ndcg_score(true_relevance, scores) #0.69

scores = np.assarray([[.05, 1.1, 1.,.5, .0]])
ndcg_score(true_relevance, scores) #0.49

#set k to truncate the sum
#only top k answers
ndcg_score(true_relevance, scores, k=4) #0.35

#the normalization takes k into account so a perfect answer
#would still get 1..0
ndcg_score(true_relevance, true_relevance, k=4 #1.0

#now we have some ties in our prediction
scores = np.asarray([[1,0,0,0,1]])
#by default ties are averages, so here we get the average(normalized)
ndcg_score(true_relevance, scores, k=1) # 0.75

ndcg_score(true_relevance, scores, k=1, ignore_ties =True) #0.5

 

DCG와 NDCG비교

 

 

 

Hit Rate@K

 

 

  • 적중한 사용자 수 / 전체 사용자 수
  • 방식
    • 사용자가 선호한 아이템 중 1개를 제외
    • 나마지 아이템들로 추천 시스템 학습
    • 사용자별로 K개의 아이템을 추천하고, 앞서 제외한 아이템이 포함되면 Hit
    • 전체 사용자 수 대비 Hit 한 사용자 수 비율을 구하면 Hit Rate

 

추천 알고리즘 simple-workflow

  1.  분석된 사용자와 아이템 정보를 기반으로 추천점수를 계산합니다.
  2. 사용자 혹은 아이템 프로필에서 어떤 정보를 사용할 것인지에 따라서 추천 알고리즘을 결정합니다.
  3. 사용자 혹은 아이템을 추천하기 위해서는 각각의 아이템 혹은 사용자에 대한 정량화된 기준이 필요합니다.
  4. 그래서, Top-K를 만드는 것이 중요합니다.
  5. 왜냐하면, 결국 추천 시스템의 목적은 Scoring을 하는 것입니다.
  6. 안정적인 추천이 완료됩니다.

 

MoveieLens를 활용한 실습

 

알고리즘을 짜기 위해서 먼저 해야 할 것은 데이터에 대한 이해도를 높이는 것입니다. 

그래서, 필연적으로 전처리와 시각화를 하는 것입니다.

 

아래의 링크를 따라서 데이터를 다운로드하시고, README.txt를 읽는 것을 추천드립니다.

데이터 다운로드

아래의 코랩을 통해서 movieLens 속 데이터를 보는 실습을 진행합니다.

 

https://colab.research.google.com/drive/1yZdCUU85QUqRdeqsuyn9RbvYOHPfv1SJ?usp=sharing 

 

MovieLens data 살피기

Colaboratory notebook

colab.research.google.com

데이터에 대한 이해를 간략하게 했다고 생각이 들기에 이젠, 직접 조건을 기반으로 간단한 추천 알고리즘 만들기를 실습합니다

 

간단한 추천 알고리즘 만들기

  1. 랜덤으로 평점 예측
  2. 영화 평균 평점기반 예측
  3. 사용자 평균 평점기반 예측
  4. Rule기반 영화 랭킹 예측

 

추천시스템의 간략한 역사,기초적인 용어 정리, 통계량, 그리고 실습까지 진행했지만 한 가지 안한 것이 있는데 그것은 바로 추천시스템의 한계점입니다.

 

추천시스템을 좋아하거나 공부를 하고싶은 분들이라면 항상 이 한계를 고려하면서 시스템을 구축해야합니다.

 

추천 시스템의 한계

 

Scalability

  • 실제 서비스 상황은 다양한 종류의 데이터
  • 학습 또는 분석에 서용한 데이터와 전혀 다른 실제 데이터

 

Productive Recommender System

  • 특별한 요청이 없어도 사전에 먼저 제공하는 추천 서비스
  • 모바일, 인터넷 등 어디서는 유저에게 끊임없이 좋은 정보를 추천할 수 있는 서비스

 

Cold-Start Problem

  • 추천 서비스를 위한 데이터 부족
  • 기본적인 성능을 보장하는 협업 필터링 모델 구축이 쉽지 않은 것이 일반적
  • 콘텐츠 기반 혹은 지식 기반의 방법 역시 서비스로 적용하기 어려움
  • 신규 사용자에게 어떠한 아이템도 추천할 수 없음

 

Privacy preserving Recommender System

  • 개인정보 등 유저 정보가 가장 중요하지만, 직접 적으로 사용하기가 어려움

 

Mobile devices and Usage contexts

  • Personal computing, location-based service(LBS)
  • 개별 상황 또는 환경 등에 따라 다른 contexts 사용

 

Long-term and Short-term user preference

  • 개인 또는 그룹의 단기/장기 관심사항
  • 추천받고 싶은 아이템이 현재 또는 과거 중 어느 시기와 관련 있는지 파악하기 어려움

 

Generic User models and Cross Domain Recommender System

  • 하나의 모델을 여러 가지 데이터에 적용하기 어려움
  • 비슷한 도메인의 데이터를 활용해도 동일한 성능의 추천 시스템을 기대하기 어려움

 

Starvation and Diversity

  • Starvation:필요한 컴퓨터 자원을 끊임없이 가져오지 못하는 상황
  • 유저/아이템이 다양하고, 모든 유저/아이템에 더 많은 관심을 부여

 

Filter Bubble

  • 인터넷 정보 제공자가 맞춤형 정보를 이용자에게 제공함으로 써 이용자가 걸러진 정보만을 접하게 되는 현상
  • 사용자의 입맛에 맞는 정보만 제공하기에 '콘텐츠 편식'이 일어난다.
  • 사용자의 취향까지 반영된 개인화된 정보를 얻는 장점이 있지만 고정관념과 편견을 강화한다.

 

Long Tail

  • 사용자들은 소수의 인기 있는 콘텐츠에 더욱 관심을 보인다.
  • 소수의 인기 콘텐츠가 전체 추천 콘텐츠의 많은 비율을 차지하는 비대칭적 쏠림 현상
  • 사용자들의 관심이 저조한 항목은 정보가 부족하여 추천되지 못하는 문제점이 발생한다.

추천 시스템을 알기 위한 전반적인 지식을 탐색했습니다. 다음 블로그부터는 추천 시스템의 전통적인 알고리즘에 대해서 소개를 할 것입니다.

 

 

"모두의 연구소에서 진행하는 "함께 콘텐츠를 제작하는 콘텐츠 크리에이터 모임" COCRE(코크리) 2기 회원으로 제작한 글입니다. 코크리란? 🐘"COCRE 2기 회원으로서 작성한 글입니다. (로고) COCRE가 궁금하다면!  클릭!

 

COCRE(코크리)를 소개합니다!

코크리는 AI와 데이터 분석을 주제로 다양한 콘텐츠를 제작하는 오픈소스 콘텐츠 크리에이터 모임입니다.

medium.com

 

 

728x90