본문 바로가기
STORAGE

인공지능 기반 추천 시스템의 모든 것! From A to Z

2022. 5. 30. 09:26

추천시스템

추천 시스템이란?

추천 시스템이란 사용자가 관심을 가질만한 콘텐츠(상품, 영화, 이미지, 뉴스 등)를 추천하는 것으로 사용자의 선호도 및 과거 행동을 토대로 사용자에 적합한 콘텐츠를 제공하는 것입니다. 이미 현대 사회에서 추천 시스템은 다양한 분야에 활용되고 있는데 현대인이 즐겨보는 유튜브와 넷플릭스에서 시청한 영상과 유사한 영상을 추천하고 아마존 및 쿠팡 같은 온라인 마켓에서 사용자가 과거에 구매하거나 관심을 가진 물건과 유사한 물건을 상단에 보여주는 등의 경험을 할 수 있습니다.

 

추천 시스템의 필요성

특정 방송사에서 콘텐츠를 생성하는 과거와는 달리 현재 우리는 다양한 플랫폼에서 많은 콘텐츠가 생산되고 볼 수 있는 사회에 살고 있습니다. 이러한 사회에서 본인이 정확하게 원하는 콘텐츠가 있지 않은 이상 콘텐츠를 고르기까지 많은 시간이 걸린다고 합니다. 이러한 소비자들의 불편한 부분을 해결하고자 미국의 대기업들은 추천 시스템이라는 인공지능 기반 기술을 기반으로 사람들에게 개인화된 콘텐츠를 노출해주고 있습니다. 사례 부분에서 더 자세하게 언급하겠지만 넷플릭스 같은 경우 넷플릭스 구독 회원의 총 넷플릭스 시청 시간의 70%~80%는 넷플릭스 추천 시스템 기반으로 추천된 콘텐츠를 시청한다고 합니다. 또한, 아마존 구매 중 35%의 제품은 아마존이 추천한 제품을 구매하고 있다고 합니다. 이와 같이 추천 시스템은 소비자의 불편을 덜어줄 뿐만 아니라 기업의 매출 향상에도 도움을 주어, 많은 기업에서 기술을 도입하는 추세라고 합니다. 

 

추천 시스템의 역사

처음 추천 시스템의 필요성을 인지하고 연관상품 추천 방식을 토대로 추천 시스템 방식이 시작되었습니다. 그 후 2006년에서 2009년까지 넷플릭스에서 자신들이 가지고 있는 데이터 기반 추천 시스템 대회를 개최하였습니다. 이때 우승한 머신러닝의 SVD (Single Vector Decomposition) 방식을 기반으로 한 협업 필터링 방식이 우승하게 되었고 이 알고리즘을 기반으로 추천 시스템 모델의 연구가 활발히 진행되었습니다. 그 이후 구글의 알파고에 힘입어 딥러닝이 발달하면서 딥러닝을 이용한 추천 시스템이 발달하게 되었으며 현재는 Factorization Machine, 강화학습, 딥러닝 방식을 이용한 초개인화 추천 시스템으로 발전해 나아가고 있습니다.

 

추천 시스템에서의 딥러닝 활용

딥러닝이 추천 시스템에 활용되는 이유는 머신러닝과 달리 딥러닝은 대용량 콘텐츠를 가공 없이 입력 데이터로 사용할 수 있기 때문에 대용량 콘텐츠의 특징 추출할 때 유리합니다. 또한, 딥러닝은 선형 모델들과 달리 알고리즘이 가지고 있는 비선형성 때문에 사용자와 콘텐츠 간의 복잡한 관계도 추출할 수 있는 장점이 있습니다. 이뿐 아니라 머신러닝에 비해 딥러닝은 많은 데이터를 학습시켰을 경우 학습 데이터와 거리가 먼 새로운 데이터가 input 데이터로 주어지더라도 유연한 처리를 통해 만족스러운 결과 도출이 가능하므로 딥러닝을 활용한 추천 시스템이 많이 개발되고 있습니다.

 

추천 시스템 기본 알고리즘

Content-Based Recommender System (콘텐츠 기반 추천 시스템)

콘텐츠 기반 추천 시스템은 아이템에 대한 세부 정보를 토대로 사용자가 과거에 소비했던 콘텐츠와 유사한 콘텐츠를 추천해주는 방식입니다. 아래 그림처럼 사용자가 이전에 높게 평가했던 콘텐츠(빨간색)와 가장 유사한 콘텐츠(파란색)를 추천해주는 방식이라고 생각하면 됩니다.

 

콘텐츠 기반 추천 시스템
콘텐츠 기반 추천 시스템 정의

분석 과정

위의 개념을 구현하기에 앞서 진행해야 하는 부분이 있습니다. 일단, 이미지, 자연어, 태그 등의 아이템에서 해당 아이템을 설명할 수 있는 특징을 추천 시스템 모델이 이해할 수 있는 형태인 벡터화 작업이 필요합니다. 해당 작업이 필요한 이유는 기계는 인지력이 뛰어난 인간과 달리 데이터를 있는 그대로 인식하지 못하기 때문에 데이터를 인식할 수 있는 형태로의 데이터 전처리 작업이 필요합니다. 이미지 같은 경우, 이미지를 벡터로 만들어주기 위해 딥러닝 기반의 모델인 CNN, ResNet, VGG 등의 다양한 알고리즘을 적용하여 수행할 수 있습니다. 자연어(text) 같은 경우, 기본적으로 TF-IDF, Word2Vec - CBOW, Bert 등의 자연어 처리 기술을 이용하여 아이템을 벡터 형태로 표현한 후 벡터 간의 유사도를 계산하여 아이템을 추천합니다. 유사도 계산하는 방법은 정말 다양하지만 전 주로 많이 사용되는 유클리디안 유사도, 코사인 유사도, 피어슨 유사도 등을 이용하며 하나의 유사도 방법을 택하긴 보단 여러 가지를 적용 및 비교하여 최적의 결과를 이용하면 됩니다.

장/단점

콘텐츠 기반 필터링의 장점은 크게 세 가지 정도 있다고 보입니다. 첫째, 다른 사용자의 데이터가 존재하지 않더라도 신규 사용자에게 콘텐츠를 추천할 수 있습니다. 둘째, 추천하는 콘텐츠에 대한 근거를 제시할 수 있습니다. 왜냐하면 벡터화한 콘텐츠 간의 유사성을 계산하여 높은 값을 가지는 콘텐츠를 추천하기 때문입니다. 마지막으로, 새로 추가된 콘텐츠나 유명하지 않은 콘텐츠도 추천이 가능하다는 장점입니다. 해당 장점이 콘텐츠 기반 추천 시스템이 현재에도 필드에서 많이 사용되고 있는 이유라고 생각됩니다. 하지만, 이러한 장점을 가지는 만큼이나 단점 또한 확실하게 존재합니다. 사용자가 과거에 흥미가 있거나 관심을 가진 콘텐츠를 제공하지 않는다면 추천하는데 어려움이 따릅니다. 이러므로 넷플릭스, 왓챠 등의 OTT 서비스를 처음 가입하면 서비스를 이용하기 전, 이전에 시청했던 영상에 대한 평가를 받습니다. 두 번째는 콘텐츠 특성 정보 간의 유사성을 계산하여 추천하기 때문에 사용자가 이미 알고 있는 유사한 콘텐츠만을 추천하는 문제가 발생할 수 있습니다.

Collaborative Filtering (협업 필터링)

협업 필터링은 많은 사용자로부터 수집한 구매 패턴이나 평점을 기반으로 하여 다른 사용자에게 콘텐츠를 추천해 주는 방법입니다. 협업 필터링 기술의 중요한 가정은 "많은 사용자로부터 얻은 취향 정보를 토대로 나와 비슷한 취향을 가진 사람들이 선호하는 콘텐츠를 나도 좋아할 가능성이 크다."입니다. 다시 말해, 집단 지성의 개념과 매우 유사하다고 볼 수 있습니다. 협업 필터링 방법에는 메모리 기반으로 추천해 주는 알고리즘과 모델 기반으로 추천해 주는 알고리즘이 있습니다.

 

Memory-Based Algorithm

가장 전통적인 접근 방식으로 사용자 간 또는 콘텐츠 간 유사도 계산 결과를 기반으로 예측이 필요할 때 새로운 사용자와 유사한 취향을 가지고 있는 다른 사용자가 선호하는 콘텐츠를 추천하거나, 특정 콘텐츠의 평점을 예측해야 하는 경우 다른 유사한 태깅이 되어 있는 비슷한 콘텐츠의 평점 결과를 토대로 예측하게 되는 방법입니다. 여기서, 사용자와 사용자 간의 유사도를 기준으로 추천해 주는 방법을 사용자 기반(User-Based)이라고 하고 아이템과 아이템 간의 유사도를 기준으로 추천하는 경우를 아이템 기반(Item-Based)이라고 합니다.

 

Model-Based Algorithm

잠재 요인(Latent Factor) 협업 필터링 방법은 현재에도 자주 쓰이는 방법으로 사용자와 아이템 간의 평점 행렬 속에 숨어 있는 잠재 요인 행렬을 추출하여 내적 곱을 통해 사용자가 평가하지 않은 항목들에 대한 평점까지 예측하여 추천하는 방법입니다. 행렬 분해(Matrix Factorization)라는 방법을 통해 큰 다차원 행렬을 차원 감소시키는 과정에서 행렬에 포함되어 있는 잠재 요인을 추출할 수 있습니다.

 

잠재 요인 협업 필터링
행렬 분해 기법을 이용한 잠재 요인 협업 필터링 과정

 

추천 시스템 사례

넷플릭스(Netflix)

현재 OTT (over-the-top media service : 인터넷을 이용하여 방송 프로그램, 영화, 드라마 등 각종 콘텐츠를 제공하는 서비스)의 대표주자로 2020년 말 기준 전 세계 약 2억 명이 넘는 구독자의 시청 형태를 분석해 최적의 콘텐츠를 추천해주는 추천 시스템 기반의 플랫폼입니다. 넷플릭스 영화 시청의 약 70%~80%가 추천을 통해 이뤄지는 만큼이나 넷플릭스에서의 추천 시스템은 회사의 핵심 경쟁력이라고 합니다. 이러한 넷플릭스가 처음부터 추천 시스템을 개발하기 시작한 것은 아닙니다. 초창기에는 우편 배달을 기반으로 한 DVD 판매점이었으나, 미국 대형 DVD 대여점과의 차별성을 두기 위해 추천 시스템 알고리즘 개발에 투자하기 시작하였습니다. 앞서 언급하였듯이 2006년도부터 2009년까지 진행한 넷플릭스 추천 시스템 대회 기반으로 현재 100개가 넘는 다양한 추천 시스템 알고리즘을 토대로 2,000개가 넘는 취향 그룹을 생성하여 초개인화 추천 시스템을 구축하였습니다. 아래 그림처럼 넷플릭스는 현재 개인마다 다른 취향을 반영하여 다양한 콘텐츠를 제시함을 알 수 있습니다.

 

넷플릭스 추천 결과
넷플릭스 추천 결과
넷플릭스 추천 결과 예시 1과 2

인공지능 분야에서 가장 중요하다고 여겨지는 부분은 데이터의 품질과 양이라고 생각합니다. 이처럼 넷플릭스는 내부적으로 콘텐츠 분류 및 태깅을 크게 두 가지 방법으로 진행하였습니다. 첫째는 콘텐츠의 기본 데이터(출시 연도, 감독, 출연자 등 객관적 정보)를 정리하였으며 두 번째로는 넷플릭스 양자이론(등록된 콘텐츠들은 더 이상 쪼갤 수 없는 수준까지 쪼갠다는 의미)을 기반으로 콘텐츠 분석 전문가가 모든 콘텐츠를 감상하고 분석한 전문가 데이터(긴장감 넘치는, 불길한 기운, 두뇌 게임 등 주관적 정보)로 태깅되어 있습니다. 이러한 데이터뿐만 아니라 고객 데이터 중 사용자 의식 데이터로서 사용자가 콘텐츠를 보고 좋아요/싫어요. 결과와 좋아요/싫어요를 누르진 않았지만, 재시청했다면 관심 있는 영화라고 판단하도록 하였습니다. 이러한 콘텐츠 검사 및 분류 작업은 전문가들이 직접 수행하고, 해당 데이터를 토대로 추천 알고리즘 기술을 발전시키고 있습니다. 아래 그림은 넷플릭스 콘텐츠 하나의 예시로 `좋아요`를 표시할 수 있는 부분, 해당 콘텐츠의 기본 데이터 및 전문가 데이터 그리고 해당 콘텐츠가 얼마만큼 사용자의 취향과 유사한지를 퍼센트를 이용하여 알려주고 있는 예시입니다.

 

넷플릭스 데이터 태깅
넷플릭스 데이터 태깅 결과 예시

 

결론

현재 추천 시스템은 산업 및 기술계를 넘어 사회, 문화 등 사회 전반으로 영향력이 확산되어 가는 추세입니다. 이번 포스팅에는 추천 시스템의 개요 및 방법 그리고 대표적인 사례를 소개했습니다. 앞으로 추천 시스템은 바이오와 헬스케어 분야에서도 반드시 필요한 기술이라고 생각되기에 생물 정보 전문기업 인실리코젠에서도 다양한 연구를 진행 중에 있습니다.

 

참고자료


EDITOR

권영인

Insilicogen · Assistant Researcher

댓글