think deeply
[추천시스템] 콜드 스타트 사용자에게 콘텐츠 추천, LINER 본문
1. LINER는 콜드 스타트 문제를 어떻게 해결했을까?
📌 포인트 사용자 선호 정보 입력 유도
선호 정보 기반 추천
어느 서비스를 처음 사용할 때 가입 과정에서 사용자가 어떤 주제에 관심을 가지는 지 선택한 경험이 있을 거에요. 신규 가입 사용자에게 가입 과정 중 ‘관심사’ 등 사용자 선호 정보 입력하도록 유도하여 선호 정보를 추천 시드로 활용하는 방법이에요.
2. 트렌드에 사용자의 관심사 반영
📌 포인트 트렌딩 스코어 정의
트렌드 기반 추천
실시간으로 적재되는 하이라이트 데이터를 활용해 현재 라이너를 사용하는 다른 사용자들은 어떤 글에 하이라이트하고 있는지 등의 인사이트가 녹아든 추천 경험을 제공하고자 했습니다. 이를 라이너는 ‘하이라이트 인터랙션 기반 트렌딩 콘텐츠 추천’라고 정의했어요.
단순 최신순이 아닌, 트렌드 기반의 추천을 수행하기 위해선 추천되는 문서가 ‘트렌딩’하다는 성질을 지녀야합니다. 예를 들어, 과거 특정 문서가 A 정도의 관심을 받았지만, 최근 A를 넘어 B 정도의 관심을 받아야만 해당 문서를 트렌딩하다고 규정할 수 있을 겁니다. 또 최근 업로드 되어 과거 로그 스트림에는 등장하지 않았지만, 갑자기 많은 관심을 받기 시작한 문서도 트렌드하다고 규정할 수 있겠죠.
라이너는 트렌딩함을 정랴오하하기 위해 ‘트렌딩 스코어’를 정의했어요.
3. 시간대에 따라 추천 시스템이 큰 영향을 받는다면
📌 포인트 로그를 국가코드 기준으로 그루핑
국가별 트렌드 추천
라이너는 미국, 영국, 호주, 인도 등 서로 다른 대륙에 거주한 사용자들이 사용하는 글로벌 서비스입니다.
이에 시간대에 따라 특정 국가의 로그가 트렌딩 추천 콘텐츠 형성에 크게 영향을 미칠 수 있다는 문제점이 생겼어요.
최신성에 가중치를 크게 부여하는 트렌딩 스코어 수식에 따르면 시간대별 특정 국자 사용자들이 트렌딩 콘텐츠 형성 작업에 미치는 영향이 크다는 거죠. 이를 라이너는 하이라이트 로그를 국가 코드 기준으로 그루핑해 트렌딩 스코어를 계산했다고 해요.
4. 최종적인 제공 형태
국가별 트렌드 콘텐츠 추천 로직
위 세 가지 해결방안을 종합해 라이너는 최종적으로 다음과 같은 형태로 추천 서비스를 제공해요.
- 트렌드 콘텐츠를 주기적으로 구워주는 작업 Airflow
- 배치 작업이 BigQuery에 적재된 하이라이트 로그를 활용해 트렌딩 스코어 계산
- 특정 Threshold 이상의 콘텐츠들을 대상으로 적재
- 사용자의 트렌딩 콘텐츠 추천 요청은 국가별로 캐시가 적용되어, 최초 요청자의 요청 이후 온보드된 사용자들에게는 캐시에서 콘텐츠 리스트를 받아와 반환해주게 됨
- 최초 요청자의 경우, 앞서 배치 작업을 통해 Cloud Storage에 적재된 국가별 트렌딩 콘텐츠 JSON 파일을 읽어와 반환
참고 문헌
https://blog.getliner.com/trending-recommendation/
'rainbow > 추천시스템' 카테고리의 다른 글
[크롤링] 멜론 플레이리스트 수록곡, 가사 크롤러 만들기 (1) | 2023.09.17 |
---|---|
TF-IDF(Term Frequency-Inverse Document Frequency) (0) | 2023.08.10 |
[추천시스템] 추천시스템의 종류 및 개념 (0) | 2023.08.03 |
[추천시스템] 개인의 취향을 반영할 수는 없을까, 스타일쉐어(2) (0) | 2023.08.03 |
[추천시스템] 연관있는 스타일은 무엇일까, 스타일쉐어(1) (0) | 2023.08.03 |