OTT 서비스
인터넷을 통해 방송 프로그램·영화·교육 등 각종 미디어 콘텐츠를 제공하는 서비스 (ex. 넷플릭스, 유튜브, 왓챠 등)
영화나 한 편 볼까 하고 OTT 서비스를 이용했다가 썸네일 화면만 보고 나오는 경험... 다들 있을 거라고 생각한다. 셀 수 없이 많은 콘텐츠들 중에서 내 취향에 쏙 맞고 2시간 이상을 투자할만한 콘텐츠를 찾아 재생하는 일은 정말 어려운 일이다.
하지만 위와 같은 문제점을 해결하기 위해서, 수많은 OTT 서비스들은 추천 알고리즘을 통해 사용자의 불편함을 해소해 주고 있다.
추천 알고리즘을 사용하는 OTT 서비스는 매우 많다. 하지만 오늘은 그 중에서도 넷플릭스를 대표로 추천 알고리즘을 알아보고 분석해볼 예정이다.
1. 넷플릭스 추천 알고리즘의 역사
넷플릭스는 원래 DVD 대여 사업을 하던 회사였다.
DVD 대여 사업을 하던 넷플릭스는 하나의 이슈를 발견하게 됐는데, 바로 "연체료"였다. 나와 동년배 혹은 그 이전에 태어난 분들은 아주 잘 알겠지만, DVD나 비디오를 대여할 때는 일련의 과정이 있다.
비디오 가게에 가서 원하는 비디오를 고르고 사장님한테 가져다준 다음 대여를 하고 나중에 반납하는 것. 그리고 반납 기한이 늦어질 경우엔 연체료를 주어야 한다. 그때 시장 안에 있던 비디오 가게 사장님 지금 뭐하고 계실까? (갑자기 추팔 타임)
이런 연체료 시스템은 오히려 사용자의 고충을 불러왔다.
기한 안에 비디오를 다 못 봤을 수도 있고... 사정이 생겨서 중간에 못 봤을 수도 있고... 다 봤는데 반납하는 걸 잊어버려서 부득이하게 연체료를 지불해야 하는 사례가 많았기 때문이었다.
DVD 사업을 하던 넷플릭스는 이 고충을 해결하기 위해서, 1인 최대 3개의 DVD를 무제한의 기간으로 대여할 수 있도록 했다. (지금의 넷플릭스 이용권과 비슷한 듯) 다만! 다른 영화를 대여할 때엔 기존 대여 DVD를 반납해야 하는 조건이 있었다.
넷플릭스는 이러한 DVD 대여와 동시에 DVD 배달 서비스를 제공했는데, 이 과정에서도 한 가지 이슈가 생겼다. 넷플릭스 직원이 직접 DVD 배달을 해주다 보니 소비자가 집에서 DVD를 받아보려면 며칠이 소요되었기 때문이다.
뿐만 아니라 소비자가 다음에 보고 싶은 DVD를 빨리 보려면 미리미리 주문을 해야 하는데, 자신의 취향에 맞는 영화가 무엇인지를 모르는 데에서 또 다른 이슈가 생겼다.
넷플릭스는 위와 같은 소비자의 고충을 해결하고 개인화된 추천을 제공하기 위해, 자체적으로 고객의 DVD 대여 정보를 기반으로 영화를 추천해 주는 알고리즘을 구축해내었다.
그때 알고리즘 이름이 바로 "시네 매치"다.
시네 매치로는 불만족스러웠는지, 넷플릭스는 여기서 한술 더 뜬다.
아예 영화 데이터 베이스를 공개한 다음 시네 매치 알고리즘을 개선하기 위해서, "넷플릭스 프라이즈"라는 대회를 열어버린 것이다.
이 넷플릭스 프라이즈에는 정말 많은 데이터 과학자들이 참가했는데, 넷플릭스 직원들이 한 땀 한 땀 만든 영화 메타데이터와 사용자들의 평점 데이터들을 모조리 제공했기 때문이었다고 한다. (so... 대단)
이런 방식으로 넷플릭스는 추천 시스템을 개선하고 또 개선해서 지금의 추천 알고리즘을 구축하게 되었다.
그렇다면 넷플릭스가 갈고닦은 추천 알고리즘이 무엇인지, 또 추천 시스템은 어떻게 굴러가는지 알아보는 시간을 가져~보자~
2. 협업 필터링 (Collaborative Filtering)
안에는 사용자 기반 필터링과 아이템 기반 필터링이 있음
협업 필터링은 사용자들에게서 모은 정보들을 기반으로 스스로 예측을 하는 기술이다.
추천 시스템에 빗대어 말하자면, 사용자들에게서 얻은 정보들로 어떤 콘텐츠가 취향에 맞을지 스스로 예측해서 추천을 해주는 것이다.
이 협업 필터링의 종류에는 여러 가지가 있는데, 이 중에서도 가장 간단한 Memory-Based 협업 필터링이 있다.
Memory-Based 협업 필터링은 유사도를 기반으로 동작한다.
사용자와 사용자 간의 유사도를 기준으로 하는 경우는 사용자 기반 필터링, 아이템과 아이템 간의 유사도를 기준으로 하는 경우는 아이템 기반 필터링이라고 한다.
그럼 사용자 기반 필터링은 무엇이고, 아이템 기반 필터링은 무엇인지 조금만 더 자세히 알아보는 시간을 가져보자.
3. 사용자 기반 필터링
사용자가 분석의 대상
사용자 기반 필터링은 사용자와 사용자 간의 유사도를 기준으로 콘텐츠를 추천해 주는 방식이다. 즉, 사용자 자체를 분석의 대상으로 삼고 콘텐츠를 추천해 주는 알고리즘이다.
말로만 하면 정말 어렵기 때문에, 예시를 한 번 들어보겠다.
사용자 A와 사용자 B는 <어벤져스>, <아이언맨>, <스파이더맨>을 시청했다.
이 두 사용자 (A와 B)는 같은 콘텐츠를 봤기 때문에 서로 유사한 사용자가 된다.
반면, 사용자 C가 <어벤져스>와 <아이언맨>을 시청했다.
사용자 C는 사용자 A, B가 시청한 두 가지 콘텐츠를 모두 시청했기 때문에, 유사한 사용자라고 가정한다.
그런 다음 세 콘텐츠 중 아직 시청하지 않은 <스파이더맨>을 추천해 주게 된다.
4. 유사 아이템 기반 필터링
영화와 영화간 시청 기록 파악
유사 아이템 기반 알고리즘은 아이템들의 유사도와 사용자의 선호도를 기준으로 콘텐츠를 추천하는 방식이다.
예를 들어서 사용자 A와 B는 각각 <어벤져스>, <아이언맨>, <스파이더맨>을 시청했다고 가정해보자.
이 시청 기록을 바탕으로 <어벤져스>, <아이언맨>, <스파이더맨>을 유사한 아이템으로 묶어버린다.
반면 사용자 C는 <어벤져스>, <아이언맨>을 시청했다. 따라서 사용자 C에게 앞 시청 기록과 유사한 콘텐츠(=아이템)인 <스파이더맨>을 추천해 주게 된다.
위의 두 가지 필터링은 추천 알고리즘의 가장 바탕이 된다. 유사도 계산, 예측 평점이 쉽기 때문에 실제로 넷플릭스뿐만 아니라 많은 플랫폼에서 사용되고 있다.
하지만 위 필터링은 몇 가지 단점과 문제점이 있다.
1. 콜드 스타트 : 새로운 사용자, 새로운 콘텐츠가 추가되었을 때 유사도를 계산할 수 있는 데이터가 부족하여 정확한 추천이 어렵다. 2. 계산량 : 사용자와 콘텐츠가 계속 추가되면, 계산량이 많아져서 부하가 증가된다. 3. 롱테일 : 일반 사용자들은 소수의 인기 항목에만 관심 있기 때문에 상대적으로 관심이 적은 비인기 항목은 추천 정보가 부족하다. |
이런 문제점을 또 해결하고자, 넷플릭스는 위 2가지 방식에 추가적으로 2가지 방식을 더 사용한다.
5. 내용 기반 필터링 (Content-based Filtering)
콘텐츠 내용이 곧 분석의 대상
내용 기반 필터링 (=콘텐츠 기반 필터링) 은 콘텐츠의 내용에 대해서 분석하고, 이를 기반으로 사용자에게 콘텐츠를 추천해 주는 기술이다.
우선 새로운 콘텐츠가 등록되면, 그 콘텐츠를 카테고리 별로 분류하고 태깅 하는 작업을 거친다.
여기에는 감독, 등장인물 등의 객관적인 정보뿐만 아니라 액션, 코미디와 같은 장르 태그와 훈훈한 분위기, 기이함, 여성 주도 등 추상적인 데이터도 함께 수집한다.
(+ 이런 콘텐츠의 특징을 태깅 하는 사람들을 "태거"라고 한다. )
https://brunch.co.kr/@herbeauty/31
예를 들어 사용자 A가 <어벤져스>를 검색했다면, 어벤져스 콘텐츠와 매우 유사한 콘텐츠인 <아이언맨>을 추천해 준다.
또한 <어벤져스>를 시청하고 평점을 높게 매긴 사용자들이 <스파이더맨>을 많이 본다고 한다면, 두 영화의 공통적인 특징을 뽑아낸다. 그 후 <어벤져스>를 시청한 사용자에게 <스파이더맨>을 추천해 준다.
내용 기반 필터링의 장점은,
1. 다른 유저의 데이터가 굳이 필요하지 않다. (왜냐면 개인 취향 기반이니까 1) 2. 개인의 독특한 취향을 고려한 추천이 가능하다. (왜냐면 개인 취향 기반이니까 2) 3. 새로운 아이템, 마이너 한 아이템도 추천이 가능하다. (왜냐면 개인 취향 기반이니까 3) |
이다.
+
여기에 진짜 엄청난 디테일 하나 더!
넷플릭스를 들어가서 다른 사용자와 썸네일을 비교해보면, 콘텐츠의 썸네일이 각각 다른 것을 볼 수 있다.
넷플릭스는 소름 돋게도 같은 콘텐츠 썸네일을 나라에 따라, 문화에 따라, 개인에 따라 다르게 적용시킨다.
https://netflixtechblog.com/artwork-personalization-c589f074ad76
예를 들어서 넷플릭스가 <라라랜드>를 추천한다고 치자.
내가 만약 "뮤지컬","음악" 취향이라면 두 주인공들이 춤추는 장면을 썸네일로 내보내고, "로맨스","로맨틱" 취향이라면 두 주인공들이 키스하는 장면을 썸네일로 내보낸다.
이렇게 다양한 이미지를 바꿔서 보여주면서 사용자의 반응(클릭하나 안 하나, 끝까지 보나 안 보나)을 또 수집한다.
6. 잠재 모델 기반 알고리즘
사용자와 콘텐츠에 내재된 잠재 모델의 패턴 이용
내가 만약 영화 <써니>를 시청한다고 해보자.
써니를 시청하는 데에는 많은 이유가 있을 것이다. 내가 주인공 성장 영화를 좋아해서 틀었을 수도 있고, 조연으로 나오는 천우희 배우가 좋아서 틀었을 수도 있다. 혹은 복고 장르에 관심이 있어서 틀었을 수도 있겠다.
즉 사용자마다 영화의 특정 장르를 선호할 수도 있고, 특정 배우를 선호할 수도 있으며 혹은 영화 속 특정 소재를 선호할 수도 있다는 것이다.
잠재 모델 기반 알고리즘은 이러한 특정 기준을 바탕으로 행과 열을 분해해서 예측 평점을 구해준다.
각 영화를 코미디와 액션, 두 가지 장르로 나누고 각 속성들에 점수를 매긴 표를 (가상으로) 만들어 왔다.
<신과 함께>는 코미디 속성이 0만큼 들어있고, 액션 속성은 5만큼 들어있다고 가정했다. 반면 <극한 직업>은 코미디 속성이 4, 액션 속성이 1만큼 들어간 영화로 가정했다.
사용자의 장르별 선호도도 표로 나타내보았다.
사용자 A는 코미디는 좋아하지만 액션은 싫어한다고 가정했다. 같은 방식으로 사용자 D는 코미디와 액션 장르를 모두 좋아한다는 것을 알 수 있다.
위 표 두 가지를 하나로 합쳐보았다.
사용자 A는 코미디는 좋아하지만 액션은 싫어하기 때문에, 코미디 속성이 2이고 액션 속성이 3인 <엑시트>의 평점을 2점으로 줄 확률이 높아지는 걸 알 수 있다.
같은 방식으로 사용자 B는 액션은 좋아하지만 코미디는 싫어하기 때문에, 코미디 속성이 4이고 액션 속성이 1인 <극한 직업>의 평점을 1점으로 줄 확률이 높아진다.
사용자 C는 코미디를 좋아하기 때문에, 코미디 속성이 0인 <신과 함께>의 평점을 0점으로 줄 확률이 높아진다. 이 때 사용자 C에게는 <신과 함께>를 추천해 주지 않게 된다.
(+ 사용자와 콘텐츠가 점점 많아지고 위와 같은 매트릭스가 점점 늘어나게 될 때, 이 매트릭스는 빅 매트릭스가 된다. 빅 매트릭스를 빅데이터라고 부름.)
여기서 의문점...
처음 사용자가 유입되면 정보가 매우 부족할 텐데, 대체 어떻게 취향에 맞는 콘텐츠를 추천해 주게 되는 걸까?
이럴 때는 데이터 값을 임시로 채워주는 것으로 문제를 해결한다.
<랜덤 값 넣기 전>
|
어벤져스
|
아이언맨
|
스파이더맨
|
배트맨
|
A
|
2
|
3
|
5
|
1
|
B
|
2
|
3
|
5
|
1
|
C
|
2
|
3
|
5
|
X
|
예를 들어 사용자 A와 사용자 B는 각 콘텐츠에 대한 평점을 2,3,5,1 순서로 매겼다.
반면 사용자 C는 각 콘텐츠에 대한 평점을 2,3,5라고 주었고 <배트맨>에 대한 평점은 아직 주지 않았다.
이때 사용자 C의 평점은 사용자 A와 B의 콘텐츠들과 평점이 같기 때문에, 임시로 <배트맨>에 대한 평점을 1로 채워 넣는 것이다.
|
어벤져스
|
아이언맨
|
스파이더맨
|
배트맨
|
A
|
2
|
3
|
5
|
1
|
B
|
2
|
3
|
5
|
1
|
C
|
2
|
3
|
5
|
1
|
이렇게 새로운 유저뿐만 아니라 새로운 영화, 비인기 항목들은 정보가 매우 부족하기 때문에 위와 같은 방법으로 추천 서비스를 제공한다.
여기까지! 넷플릭스의 간단한 유래(?)와 대표적인 추천 시스템을 알아보았다. 포스팅을 쓰면서 느끼는데, 문제를 발견하고 이를 해결하는 능력이 참 중요한 것 같다.
디스크립션 실력을 향상시키고 싶어서 열심히 블로그를 굴리고 있지만, 남에게 내가 알고 있는 것을 설명하는 건 여전히 ... 어렵다. 자동으로 글 써주는 기계가 있음 좋으련만...
이제 일하러 가야지,,
'🍅 Learning > 대저 아카이브' 카테고리의 다른 글
[UXUI] UXUI 디자인 차이, UX UI란 무엇인가? (0) | 2021.12.30 |
---|---|
[UXUI] UX피라미드 (유용성, 신뢰성, 사용성, 편의성, 감성, 의미성) (0) | 2021.12.29 |
메타버스 (Metaverse)란 무엇인가? / 메타버스 뜻 / 메타버스 유형 (0) | 2021.11.19 |