알고리즘을 구성하는 세 가지 데이터
앞서 말했듯이, 알고리즘이 작동하기 위해서는 데이터가 필요합니다. 플랫폼마다 약간의 차이는 있지만, 추천에 활용되는 데이터는 크게 세 가지로 분류됩니다.
1. 유저데이터(user data)
유저데이터는 말 그대로 이용자에 대한 정보입니다. 유저의 이름, 사용하는 ID, 가입 일자, 구매한 상품, 성별, 연령 정보 등이 여기에 포함됩니다. 예를 들어 퍼블리를 이용하는 '최요한'의 유저데이터는 아래와 같습니다.

유저데이터를 많이 수집한다고 좋은 것은 아닙니다. 플랫폼의 특성에 맞게 꼭 필요한 정보만 효율적으로 수집하는 게 최선입니다. 사용하지 않으면서 수집·보관되는 데이터는 용량을 차지해 불필요한 서버 관리 비용을 발생시키며 데이터 처리 속도 저하의 원인이 됩니다.
가령 퍼블리는 이용자의 관심 분야와 직업·직군 등의 정보를 수집하는 것이 좋습니다. 이를 기반으로 이용자에게 개별적으로 해당 직무와 관련된 지식 콘텐츠를 생산하고 추천할 수 있기 때문입니다. 반면 넷플릭스는 이용자의 직군보다는 이용자가 선호하는 장르와 콘텐츠 유형을 수집할 것입니다.*
* 출처: 넷플릭스 개인 정보 수집 관련 방침
2. 메타데이터(metadata)
유저데이터가 이용자를 정의하는 데이터라면 메타데이터는 콘텐츠를 정의하는 데이터입니다. 콘텐츠의 장르, 연령 등급, 가격, 제작 국가, 주인공 직업, 성별 등을 기준으로 콘텐츠를 정의할 수 있습니다. 예를 들어, 영화 <기생충>의 메타 데이터는 아래와 같습니다.

메타데이터는 구체적이면 구체적일수록 좋습니다. 풍부한 메타데이터는 더 정확하고 다양하게 콘텐츠를 추천할 수 있는 기반이 되기 때문입니다. 그래서 플랫폼은 메타데이터 관리에 공을 많이 들입니다. 기본 메타데이터에서 확장된 항목을 만들기도 하죠. 바로 키워드, 컬렉션, 평점 등입니다.
키워드는 콘텐츠의 주제나 소재를 나타냅니다. 보통 장르의 보조 개념으로 활용되거나, 영화 전반의 이야기를 몇 개의 단어로 요약한 것이기도 하죠. 키워드를 활용하면 로맨스·액션과 같은 장르만으로 콘텐츠를 나눌 때보다 더 세밀하게 카테고라이징(categorizing)할 수 있어 보다 정확도 높은 추천이 가능합니다. IMDb(Internet Movie Database) 사이트에 가보면 영화 <기생충>에서 어떤 키워드들을 뽑아냈는지 알 수 있습니다.

컬렉션은 동일한 세계관을 갖는 영화들의 묶음입니다. 미드의 '시즌'과 유사한 기능을 하는 셈인데, 요즘에는 영화가 트릴로지로 구성되기도 하므로 컬렉션은 영화에도 많이 활용되는 메타데이터 항목입니다. 동일한 세계관의 영화를 몰아보거나 시간 순서대로 이어보는 이용자의 성향을 반영해, 플랫폼은 컬렉션을 주요 메타데이터로 관리하면서 추천 서비스를 운영하고 있습니다. 대표적인 컬렉션은 <마블 유니버스>, <반지의 제왕>, <스타워즈> 등입니다.
평점(혹은 좋아요 수)은 콘텐츠의 품질을 알 수 있는 지표입니다. 제작사가 입력하는 다른 메타데이터와 달리 이용자들이 직접 만들어가는 독특한 메타데이터입니다. 평점이 낮거나 '싫어요'가 많은 콘텐츠는 저품질 콘텐츠로 인식돼 추천 알고리즘이 걸러내기도 합니다.
3. 액션데이터(action data)
유저데이터가 이용자를, 메타데이터가 콘텐츠를 정의한다면 액션데이터는 이용자가 콘텐츠를 어떻게 소비하고 있는지, 그 맥락을 드러냅니다. 시청, 구매, 검색, '좋아요', 별점 평가*, 콘텐츠의 시청 중단 위치 등이 액션데이터에 포함됩니다.
* 이용자의 평가는 이용자가 입력한다는 측면에서 액션데이터이지만, 입력된 데이터의 합계가 콘텐츠 품질 지표로 사용된다는 측면에서 메타데이터이기도 합니다.
액션데이터는 다시 명시적 데이터(explicit data)*와 묵시적 데이터(implicit data)**로 구분할 수 있습니다.
* 콘텐츠에 대한 선호도를 이용자가 직접 표현한 정보. '좋아요'나 별점 평가가 여기에 해당된다.
** 검색, 시청 중단 위치, 반복 시청 여부처럼 이용자의 행동에 의미를 부여해 콘텐츠에 대한 선호도를 추정한 정보. 시청, 검색, 시청 중단 위치, 반복 시청 여부 등이 여기에 해당된다.
콘텐츠를 시청하지 않고 '좋아요'만 눌러도 이용자는 그 콘텐츠를 선호한다고 해석할 수 있습니다. '좋아요'라는 명시적 데이터가 있기 때문입니다. 반면 '좋아요'는 누르지 않고 콘텐츠만 시청한다면 이용자가 콘텐츠를 만족스러워했는지 알기 어렵습니다. 이때 묵시적 데이터인 '시청'과 '시청 중단 위치'를 활용해 첫 부분만 보고 이탈했는지, 영상의 끝까지 몰입해 시청했는지 분석한다면 콘텐츠에 대한 이용자의 만족도를 추정할 수 있습니다.
명시적 데이터는 이용자의 의사를 분명히 알 수 있는 장점이 있지만, 건건이 직접 클릭해야 생성된다는 단점이 있습니다. 반면 묵시적 데이터는 양은 많지만, 정확한 해석이 필요합니다. 대부분의 추천 알고리즘은 데이터 수는 적지만 의미가 명료한 '명시적 데이터'와 수는 많지만 종합적인 분석이 필요한 '묵시적 데이터' 모두를 활용해 이용자 맞춤 콘텐츠를 추천합니다.
도메인 널리지(Domain Knowledge)
양질의 데이터가 있어도 그것만으로 정확도 높은 추천 알고리즘을 만들 수는 없습니다. 여러 가지 데이터 중 어떤 데이터를 활용해 알고리즘을 설계할지는 결국 사람이 선택합니다. 알고리즘을 설계할 때 요구되는, 인간의 축적된 경험에서 나온 무형의 지식을 가리켜 '도메인 널리지(Domain Knowledge)'라고 합니다.
예를 들어 IPTV에서 'Top 10 콘텐츠'를 추천한다고 가정해 봅시다. 콘텐츠 시청 건수로 'Top 10'을 산정하면, 1편당 5분 내외인 키즈 콘텐츠가 순위권의 대부분을 차지하는 사태가 벌어집니다. 영화나 드라마를 시청하는 이용자에게는 굉장히 불편한 알고리즘이 되겠죠.
따라서 이럴 땐 '7세 미만의 키즈 콘텐츠를 시청하려는 이용자보다 영화·드라마 시청자가 훨씬 많다'는 것을 고려하여 시청 건수가 아닌 시청한 이용자 수를 기준으로 랭킹 알고리즘을 설계해야 하는데, 이러한 판단 자체가 바로 '도메인 널리지'인 것입니다.
지금까지 추천 알고리즘에 활용되는 여러 데이터에 대해 말씀드렸습니다. 다음 챕터에서는 넷플릭스가 2015년에 발표한 <The Netflix Recommender System: Algorithms, Business Value, and Innovation>이라는 논문을 통해, 콘텐츠 플랫폼에서 사용하는 추천 알고리즘*의 종류를 살펴보겠습니다.
* 추천 알고리즘은 매년 수십여 개가 새로 발표되고 등록되지만, 세부 기능과 활용 방법에 차이가 있을 뿐 기본 원리는 유사하다.