brunch

매거진 AI

You can make anything
by writing

- C.S.Lewis -

[카카오AI리포트]내 손안의 AI 비서, 추천 알고리듬

카카오의 AI 추천 플랫폼, ‘토로스(TOROS)’

이용자들이 무심코 지나쳤을지 모르지만 카카오의 다양한 서비스들에는 '내 손안의 추천 비서'가 이미 곳곳에 적용되어 있습니다. 카카오의 AI 추천 플랫폼 ‘토로스’는 글, 사진, 음악, 뉴스 등 다양한 영역에서 이용자들이 좋아할 만한 콘텐츠를 추천해주는 인공지능 알고리듬입니다. 우리 실생활 속으로 성큼 들어온 AI 기술들의 비밀을 함께 풀어보시기 바랍니다.


[카카오 AI 리포트] Vol. 4 는 다음 내용으로 구성되어 있습니다.


[1] Review - AI와 여성: Women in AI

01. 정수헌 : 페이페이 리의 꿈과 도전, ‘모두를 위한 AI’

02. 김대원 : 여성 AI 개발자들이 말하는 ‘AI와 나’ 


[2] Industry - AI 알고리듬의 비밀

03. 전상혁, 김광섭 : 내 손안의 AI 비서, 콘텐츠 추천 알고리듬 (이번글)

04. 최성준, 이경재 : 알파고를 탄생시킨 강화학습의 비밀


[3] Information

05. 김연지 : 카카오 북클럽 추천 AI 도서 모음


[카카오 AI 리포트] Vol. 4 전체글 다운받기

내용 중간의 [ ] 는 뒷부분에 설명 및 관련 문헌의 소개 내용이 있음을 알리는 부호입니다. 예를 들어, [1]에 대한 설명은 '설명 및 참고문헌'의 첫 번째에 해당합니다. 



우리는 매일매일 수많은 선택을 한다. 점심 메뉴를 선택하고, 새로 입을 옷을 선택하고, 재밌어 보이는 콘텐츠를 고른다. 하지만 내가 원하는 선택지를 찾는 것이 항상 유쾌하고 쉬운 것은 아니다. 선택지가 무수히 많은 인터넷 서비스에서 소비자들은 더욱더 새롭고 입맛에 맞는 양질의 콘텐츠를 원하고 있다. 하루에 쏟아지는 뉴스 기사는 수십만 건이 넘는다. 이 많은 기사를 전부 읽는 사람은 없으므로 사용자 마음에 들만한 기사를 수십 개 내외로 잘 뽑아서 제공하는 일이 필요하다. 당연히 어떤 기사를 제공하느냐에 따라 사용자들의 만족도가 크게 변하므로 사용자들이 좋아할 만한 선택지를 미리 잘 예측해 ‘추천’하는 것이 서비스의 품질과 직접 연결된다. 하지만 현실적으로 이 많은 콘텐츠 중에 사용자가 좋아할 만한 것을 뽑는 일을 사람이 손으로 매번 할 수 없으므로 기계학습 기반의 추천 기술은 필수불가결하다. 


[그림 1] 카카오의 다양한 추천 서비스 예시 (상단 왼쪽부터 다음뉴스, 다음스포츠, 1boon, 카카오 채널, 브런치, 카카오페이지, 카카오뮤직, 카카오TV)


카카오는 ‘토로스(TOROS)’라는 자체 개발 인공지능 추천 플랫폼을 보유하고 있다. 위의 [그림 1]은 토로스가 적용된 대표적인 카카오 서비스들이다.[1] 카카오는 다음뉴스, 1boon, 브런치, 다음웹툰, 다음카페, 다음T!P, 카카오TV, 카카오뮤직, 카카오페이지, 카카오메이커스, 카카오헤어샵 등 카카오에서 제공하는 다양한 서비스들에 토로스 추천 시스템을 적용했고, 앞으로는 카카오내비, 멜론 등의 서비스에도 확장할 계획이다. 서비스가 다양한 것처럼 추천이 사용되는 방식도 다양하다. 특정 콘텐츠를 소비한 후에 추가적인 소비를 이끌어내기 위한 연관 콘텐츠 추천을 제공하기도 하고, 사용자 콘텐츠 소비 이력을 통해 개인화된 맞춤형 추천을 제공하기도 한다. 또한 특정 콘텐츠를 좋아할 만한 사람들을 알고리듬으로 분석해 타겟팅 푸쉬를 하기도 한다. 이 기술들은 전부 다른 기술처럼 보이지만 모두 추천 기술이라는 큰 범주로 묶어서 설명할 수 있다. 


서비스와 필요한 기능이 다양한 만큼 여러 기술을 복합적으로 사용해야 한다. 추천 기술에 가장 많이 쓰이는 기술인 협업 필터링(Collaborative Filtering, CF) 기술은 물론이고, 콘텐츠 자체를 분석하는 콘텐츠 기반 필터링(Contents Based Filtering, CB) 기술도 사용하고 있다. 또한, 추천 결과를 더 풍성하게 하고 정밀하게 만들기 위하여 여러 전통적인 통계 모델이나 기계학습 방법들 역시 폭넓게 사용하고 있다. 다양한 기술들을 복합적으로 사용해야 하는 이유는 한 기술만 사용하는 것보다 여러 기술의 장점을 잘 조합했을 때 더 좋은 결과가 나오고 서비스에 따라, 혹은 심지어 같은 서비스라 하더라도 추천이 필요한 맥락(context)에 따라 추천해야 하는 목적과 대상이 달라지므로 다양한 상황에 적절히 대응하기 위함이다. 




협업 필터링(Collaborative Filtering): 너무나 비슷한 너와 내가 좋아하는 이건 어때?

협업 필터링(CF)은 사람들의 콘텐츠 사용 패턴을 분석해 추천하는 방법이다. 콘텐츠 사용 패턴이 비슷한 사람들이 서로 비슷한 선호를 가지고 있다고 가정하고 추천을 한다. 사용자의 클릭, 좋아요/싫어요, 혹은 직접 준 점수 등의 기호(preference) 데이터 등이 주로 사용된다. 아래 [그림 2]는 다양한 모습의 데이터로 사용자 행동 패턴을 표현한다. 어떤 데이터를 사용하느냐에 따라 적합한 모델과 알고리듬이 달라진다. 

[그림 2] 추천 데이터의 다양한 형태

가장 널리 쓰이는 CF 기술은 행렬 분해(Matrix Factorization, MF) 기법이다. MF는 먼저 사용자의 기호 데이터를 그림 2의 b와 같은 행렬로 만든다. 모든 사용자가 모든 콘텐츠를 소비할 수는 없기 때문에 이 행렬은 비어있는(sparse) 행렬이 된다. MF는 이렇게 표현한 행렬의 비어있는 부분을 채우는 기술을 통틀어 이르는 말이다.

 

토로스에서는 ALS(Alternating Least Square)[2], BPR-MF (Bayesian Personalized Ranking MF)[3], LMF(Logistic Matrix Factorization MF)[4] 등의 MF 기술을 사용하고 있다. 각각의 MF 기법마다 목적이 다르기 때문에 하나의 방법론만 사용하는 것이 아니라 여러 MF 기법들을 지속적으로 연구 개발하고 있다. 예를 들어 최근에는 딥러닝 기술이 발전하면서 추천 시스템 분야에서도 MF에 딥러닝을 접목한 심층 행렬 분해(Deep MF) 기법이 유튜브[5] 등에서 활발하게 연구되고 있다. 카카오 역시 연관 및 개인화 추천을 위한 자체 Deep MF 기술을 연구 개발하여 보유하고 있다. 


MF 이외에도 CF 기술은 다양하다. 스트림 데이터(그림2의 a)를 사용할 때는 언어 모델링(Language Modeling[6])에서 많이 사용하는 word2vec[7] 등의 기술들이 많이 쓰인다. 최근에는 LSTM 기반의 딥러닝 기술을 사용하는 추천 기술 연구들도 많이 진행되고 있다. 스트림과 행렬 데이터뿐 아니라 그림2의 c 그래프 데이터 역시 추천에 많이 사용된다. 이때는 주로 개인화 페이지 랭크(Personalized Pagerank[8])나 신뢰전파(Belief Propagation, BP[9])와 같은 그래프 알고리듬들을 사용한다. 


CF를 실제 서비스에 적용할 때는 규모성(scalability)을 반드시 고려하여야 한다. 예를 들어 다음뉴스는 하루 사용자 수가 수백만 명이나 되고, 새로 등록되는 기사의 개수도 하루에 수십만 개가 넘는다. 게다가 새로운 기사가 추가되기도 하고 오래된 기사가 추천 대상에서 제외되기도 한다. 이처럼 큰 데이터가 빠른 속도로 변경되기 때문에 분산처리나 증분 처리 그리고 알고리듬 최적화가 반드시 필요하다. 예를 들어 토로스에서 가장 많이 쓰이는 CF 알고리듬인 ALS와 word2vec은 다음뉴스 정도의 큰 행렬에서도 모델을 하나 학습하는 데에 평균적으로 수분이 채 걸리지 않는다. 만약 알고리듬의 실행 시간이 너무 오래 걸리는 경우에는 SIMD(Single Instruction Multiple Data) 연산이나, GPU 연산을 사용하는 등의 방법을 사용해 알고리듬을 더 빠르게 만들거나 음성 샘플링(negative sampling[10]) 등의 방법으로 알고리듬의 복잡도를 직접 낮추기도 한다. CF의 장점은 클릭 등의 사용자 선호 데이터를 직접 사용하기 때문에 대중적이고, 친숙한 결과를 얻을 수 있다는 것이다. 또한 사용자 선호 데이터를 직접 최적화하기 때문에 다른 추천 방법론들과 비교했을 때 성능이 우수한 편이기도 하다. 그러나 CF에도 여러 단점들이 있다. 먼저 기존 데이터에서 관측하지 못한 콘텐츠를 추천하는 것이 불가능하다. 이를 추천에서는 콜드 스타트(cold start) 문제라고 한다. 콘텐츠 소비 이력만을 사용하기 때문에 실제 내용이 매우 상이한 콘텐츠도 추천 결과에 노출될 위험이 있으며, 인기있는 콘텐츠만 추천 결과에 너무 자주 노출되는 인기 편향 문제(popularity bias)가 발생하기도 한다. 이런 문제를 해결 및 보완하기 위해서 CF뿐 아니라 다른 추천 기술들도 필요하다. 




콘텐츠 기반 필터링(Contents Based Filtering): 라디오헤드를 좋아하는 당신혹시 콜드플레이도 좋아하나요?


콘텐츠 기반 필터링(Contents Based Filtering), 줄여서 CB 추천은 콘텐츠 자체의 내용을 분석해 유사한 콘텐츠를 찾는 방법론이다. 예를 들어 라디오헤드 음악을 좋아하는 사람에게 라디오헤드와 분위기가 비슷한 콜드플레이 음악을 추천하는 것이다. CF가 하나의 기법만을 부르는 이름이 아니듯 CB 역시 여러 기법을 한데 묶어 부르는 이름이다. 우리가 추천할 콘텐츠는 글이 될 수도, 사진이 될 수도, 음악이 될 수도 있다. 그렇기 때문에 다양한 데이터 도메인을 위해 각기 다른 여러 종류의 CB기술이 필요하다. 예를 들어 라디오 헤드와 비슷한 음악을 추천하려면 음악의 파형을 직접 분석할 수 있는 신호처리 기술이 필요하다. 반면 야구 기사를 읽고 있는 사람에게 류현진의 등판 소식을 알리기 위해서는 자연언어처리(Natural Language Processing, NLP[11]) 기술을 사용해 글 내용을 분석해야 한다. 


텍스트는 카카오 서비스에서 가장 흔히 볼 수 있는 데이터이다. 예를 들어 다음뉴스, 다음카페, 1boon, 브런치 등의 서비스에서 공급하는 콘텐츠들은 모두 텍스트이다. 이를 위해 카카오는 단어를 실수 벡터(real number vector)로 바꾸는 단어 임베딩(word embedding) 기술을 사용한다. 대표적인 단어 임베딩 기술로는 word2vec 같은 인공 신경망 기법이 있다. 또한, 토픽 모델링(topic modeling)이나 클러스터링(clustering) 등을 사용해 비슷한 주제를 가진 글들을 묶어 사용하기도 한다. 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA) 같은 베이지안 통계 기반 기술이 대표적인 토픽 모델링 기술의 예시이다.


이미지 데이터는 잘 사용하면 추천 시스템의 성능을 크게 끌어올릴 수 있는 데이터이다. 예를 들어 연관 웹툰을 추천할 때 그림체가 비슷한 웹툰을 추천해주거나, 카카오TV의 섬네일(thumbnail)을 추천에 활용한다면 더 좋은 추천이 가능할 것이다. 카카오에서는 이미지 데이터 분석에 컨볼루션 신경망(convolutional neural network, CNN)을 사용한 이미지 CB 기술을 사용하고 있으며 꾸준히 연구 개발을 지속하고 있다. 카카오뮤직과 멜론이라는 국내 최대 음악 플랫폼이 있으므로 음악 역시 카카오에서 빼놓을 수 없는 중요한 데이터이다. 보통 음악을 분석할 때는 스펙트로그램(spectrogram[12]), MFCC(Mel-frequency cepstrum[13]) 등의 신호처리 기술들이 많이 쓰인다. 주어진 곡이 잔잔한 곡인지 신나는 곡인지 분류한다거나, 코드나 템포가 비슷한 곡을 찾는다거나 하는 등 서비스에서 요구하는 맥락에 따라 서로 다른 신호 처리 기술이 필요하다. 최근에는 전통적인 신호처리 기술들의 단점을 해결하기 위해 딥러닝을 사용한 음악을 처리 기술들이 많이 연구되고 있다. 카카오 역시 CNN과 AutoEncoder 등의 딥러닝 모델을 사용한 음악 CB 기술들을 보유하고 있다. 


CB 추천은 사용자들의 선호 데이터가 없는 콘텐츠도 추천할 수 있고, 내용을 보고 추천을 하기 때문에 생뚱맞은 콘텐츠가 덜 추천된다는 장점이 있다. 그러나 CF처럼 사용자들의 선호 데이터를 사용하지 않기 때문에 인기 편향 문제에서 자유롭지만, 이로 인해 다소 의외의 상황이 연출되기도 한다. 하지만 다양하고 참신한 추천을 위해서는 이러한 특징이 장점이기도 하다. CF와 CB는 각 방식이 가지는 장단점들은 상호 보완해줄 수 있는 부분이 많다. 



앙상블 기법(Ensemble Method): 

너무 다른 너와 , A모델과 B모델을 어떻게 조합해야 할까?


토로스는 CF와 CB 그리고 각종 통계 모델과 일반적인 기계학습 모델들을 포함해 적게는 3개, 많게는 5개 이상의 모델을 사용한다. 이 모델들이 항상 전부 다 중요한 것은 아니다. 추천 상황에 따라 CF보다 CB가 더 잘 동작하는 경우도 있고, 반대의 경우도 있다. 그러므로 모델별 추천 결과를 잘 조합하는 것은 중요한 문제다. 이런 문제를 앙상블(ensemble) 문제라고 부른다. 


앙상블 방법에는 여러 가지가 있다. 가장 간단한 앙상블 방법은 모델마다 가중치를 주어 모델별 결과를 가중합(weighted sum)하는 것이다. 상황에 따라 모델별 중요도가 바뀌기 때문에 이 가중치를 잘 설정하는 것이 중요하다. 이런 모델 가중치처럼 알고리듬을 최적화하는 것이 아니라 사람이 직접 설정해야 하는 매개변수를 하이퍼 파라미터(hyper-parameter)라고 부르는데, 모델 가중치 같은 하이퍼 파라미터는 경우의 수가 매우 많기 때문에 적절한 값을 찾는 것이 어렵다. 이를 해결하기 위해 TPE 알고리듬[14], HyperOpt 알고리듬[15], HyperBand 알고리듬[16] 등의 각종 하이퍼 파라미터 최적화 방법론을 사용한 하이퍼 파라미터 최적화를 연구하고 있다. 가중합은 가장 직관적이고 간단한 알고리듬이지만 항상 사용할 수 있는 것은 아니다. 가중합을 사용하기 위해서는 추천을 할 때 추천 점수가 항상 필요하지만 모든 모델이 항상 점수화된 추천 결과를 주는 것은 아니다. 게다가 모델별로 점수가 동일한 의미를 가지는 것도 아니기 때문에 선형합을 하는 가중합이 잘 동작하지 않는 경우가 많다. 이런 경우는 모델별 추천 순위(ranking)를 사용하는 앙상블 방법을 사용한다. 정보 검색(information retrieval[17])에서 많이 사용하는 순위 결합(rank aggregation[18]) 알고리듬을 주로 사용하는데, 대표적인 알고리듬으로는 상호랭킹결합(reciprocal rank fusion[19]), comb mnz[20] 등의 알고리듬들이 있다. 좋은 추천을 하려면 앙상블만으로는 충분하지 않다. 대부분의 앙상블 방법론들은 사용자 반응을 고려하지 않으므로 모델에 사용자 반응이 반영되기 전까지 사용자 반응에 둔감하기 때문이다. 그렇기 때문에 사용자들에게 추천 결과가 정적으로 느껴질 수 있고, 반응률이 좋은 콘텐츠를 추천 결과에 더 자주 노출하거나 반응이 나쁜 콘텐츠는 추천 결과에서 빼버리는 등의 메커니즘을 적용하기 어렵다. 사용자 반응을 알고 있을 때 전체 추천 결과의 반응률을 가장 최대화하는 방법은 반응률이 높은 순서대로 추천 결과를 정렬하는 것이다. 그러나 콘텐츠를 실제로 노출하기 전에는 콘텐츠들의 반응률을 알 수 없다는 문제가 있다. 




멀티암드밴딧(Multi-armed Bandit):  많은 콘텐츠 중에서 사람들이 정말로 좋아하는 것은 무엇일까

[그림 3] Multi-armed bandit (MAB)

토로스는 앙상블 알고리듬만으로는 사용자 반응을 반영하지 못하는 문제를 해결하기 위해 멀티암드밴딧(Multi-armed Bandit, MAB) 기술을 사용한다. MAB는 서로 다른 승률을 가지고 있는 여러 슬롯머신이 있고 정해진 횟수만큼 슬롯머신을 시도해볼 수 있을 때, 어떤 순서로 슬롯머신을 시도해야 가장 돈을 많이 벌 수 있는지 찾는 문제이다. [그림 3]은 간단한 MAB 문제의 예시이다. 각 슬롯머신 별 승률이 그림 3의 a 처럼 정의되어있고, 슬롯머신을 총 T번 시도할 수 있을 때, 가장 좋은 전략은 그림 3의 b 처럼 A만 계속 시도하는 전략이다. 그러나 맨 처음에는 A의 승률이 80% 인지 알 수 있는 방법이 없기 때문에 여러 슬롯머신을 번갈아가면서 시도해야 한다. 가장 간단한 전략 중 하나는 10%의 확률로 아무 슬롯머신을 시도해보며 정보가 부족한 슬롯머신들의 승률을 유추하고 90%의 확률로는 지금까지 관측한 슬롯머신 중 승률이 제일 좋은 것만 시도해 이익을 최대화하는 것이다. 임의로 아무 슬롯머신을 시도해보며 슬롯머신들의 승률을 유추하는 과정을 탐색(explore) 이라고 부르며, 지금까지 승률이 제일 높았던 슬롯머신을 시도하는 것을 활용(exploit)이라고 부른다. 탐색과 활용은 서로 트레이드오프(trade-off) 관계이기 때문에 이 둘을 잘 조정하는 것이 MAB의 핵심이다. MAB에는 이를 조정하기 위한 많은 방법론이 있으며 토로스에서는 톰슨 샘플링(Thompson sampling) 기술을 사용한다. [그림 3] 에서 슬롯머신을 콘텐츠로, 슬롯머신을 시도하는 것을 콘텐츠를 추천 결과에 노출하는 것으로, 보상을 클릭으로, 승률을 반응률로 바꾸면 우리가 해결하고 싶은 문제와 동일한 문제가 된다. 그러나 현실에 MAB를 적용하기 위해서는 풀어야 할 문제가 많아 이를 바로 사용할 수는 없다. 


먼저 일반적인 MAB는 그림3의 c처럼 한 번에 하나의 슬롯머신만 시도할 수 있지만, 현실에서는 한 번에 여러 콘텐츠를 추천할 수 있으므로 여러 슬롯머신을 시도하는 상황으로 문제를 바꾸어야 한다. 또한 슬롯머신들의 승률이 한 번 정해지면 같은 승률을 가진다고 가정하는데, 실제로는 콘텐츠 수명이나 트렌드 때문에 시간에 따라 승률이 계속 변한다.[21] 심지어 같은 시간이라도 추천하는 위치에 따라 편향이 발생해 위치에 따라 승률이 다르다. 이외에도 새로운 슬롯머신(콘텐츠)이 계속 추가될 때 초기화를 어떻게 하느냐 등의 이슈가 있다. 기술적으로 생기는 문제들도 있다. 이론적인 MAB는 슬롯머신을 시도할 때마다 결과를 바로 알 수 있지만, 현실에서는 추천 결과를 노출하자마자 사용자들이 반응하는 것이 아니므로 약간 지연된 결과를 얻는다. 



위 [표 1]은 미디어다음 뉴스 데이터에서 추천 피드백 지연 시간과 추천 시스템 성능의 관계를 나타낸다.[22] 추천 시스템의 성능 측정에는 노출 대비 클릭 비율을 의미하는 CTR(click through ratio)을 사용하였으며, 기본 대조군 로직 대비 상대 CTR을 사용하였다. [표 1]에서 확인할 수 있듯 사용자로부터의 반응을 빠르게 수집해 반영할수록 지표는 더 개선된다. 그러나 보통 수집 속도를 빠르게 할수록 시스템 부하가 커지고 리소스가 증가 되므로 추천 성능과 시스템 효율을 잘 조율하는 것이 무척 중요하다. 




A/B 테스트새로운 추천 로직은 기존보다 얼마나 좋은 걸까


이렇게 여러 모델과 알고리듬을 연구하고 개발하는 것도 중요하지만, 그 성능을 측정하는 것은 그보다 더 중요하다. 제대로 된 측정이 있어야 어느 로직이 더 나은지 비교할 수 있고, 전체 추천 시스템도 개선할 수 있기 때문이다. 보통 기계학습에서는 데이터를 학습(train)과 검증(validation)으로 나누어 학습 데이터로 학습한 모델이 검증 데이터에서 얼마나 잘 동작하는지 확인하지만 추천 데이터는 사용자가 관측한 콘텐츠에 대해서만 결과를 가지고 있으므로 그 방법이 쉽지 않다. 이를 위해 사용자들이 관측하지 않은 콘텐츠에 대한 반응을 유추하여 평가하는 방법도 있으나 실제 데이터를 사용하지 않았기 때문에 정확한 성능 비교가 어렵다. 그렇기 때문에 실제로 서비스에 적용하여 직접 지표를 확인해야만 한다.[23]


가장 간단한 측정 방법은 전후 비교이다. 새로운 로직 적용 이전과 이후의 지표를 비교하는 것이다. 그러나 이 방법은 공정하지 않다. 순간적인 유행의 변화, 새로운 콘텐츠의 등장, 요일이나 시간대에 따른 행동 패턴 변화 등 로직 이외에도 지표에 영향을 주는 요소가 많기 때문이다. 온라인 A/B 테스트는 사용자들에게 동시에 A와 B 결과를 노출하고 이 둘의 결과를 비교하는 지표 측정 방법론이다. 일부 사용자들에게는 A로직을 보여주고 다른 일부 사용자들에게 B로직을 보여주면서 더 반응이 좋은 로직이 무엇인지 비교하는 것이다. 이 방법은 동일한 조건에서 비교를 하므로 공정하다. 카카오에서는 신규 로직을 5%에서 10% 정도의 작은 확률로 노출해 기존 로직과 성능을 비교한다. 만약 기존 로직보다 좋은 신규 로직이 나타나면 그 로직이 기본 로직이 되고 또 다른 A/B 테스트를 반복한다. 


[그림 4] 토로스 추천 개요


위 [그림 4]는 토로스 추천 시스템의 개요이다. 개요에서 볼 수 있듯 토로스는 수많은 모델과 알고리듬들을 사용한다. 이 중 어느 모델 혹은 알고리듬을 선택하는 것이 좋을지 검증할 때 A/B테스트를 사용한다. 예를 들어 어떤 앙상블 알고리듬을 사용할지, 새로운 모델을 추가했을 때 성능이 어떻게 될지, MAB에 새로운 방법론을 적용했을 때 얼마나 추천 결과가 좋아질지 등을 검증하는 것이다. 이렇게 카카오의 추천 기술은 한 자리에 정지해 있지 않고 매일매일 발전하고 있다. 


아래 [그림 5]는 카카오페이지 연관 추천 영역에서 여러 추천 로직들을 A/B 테스트해가며 지표를 측정한 결과이다.[24] 비교한 로직은 기본 추천 로직과 CB와 CF, 그리고 CB와 CF를 앙상블한 로직 총 네 가지를 비교하였다. 지표는 상대적인 값을 사용하였다. 이 값이 높을수록 추천 로직 성능이 우수하다. 그림 5의 a 는 CF와 앙상블 로직을 비교하였고 그림 5의 b 는 CB와 앙상블 로직을 비교한 결과이다. 두 경우 모두 기본 로직보다는 추천 로직이 성능이 좋고, 한 로직만 사용한 것보다는 두 로직을 함께 사용했을 때 더 좋은 결과를 낸다는 것을 알 수 있다. 


[그림 5] 여러 추천 로직의 성능 비교


마치며


과거에는 전문가가 편집한 콘텐츠나 인구통계학과 같은 단순 방법론으로 소비자에게 콘텐츠를 제안했지만, 이제는 추천 기술을 통해 콘텐츠를 소비하는 새로운 경험을 제안하고 있고, 성공을 거두고 있다. 추천 기술은 콘텐츠 서비스의 핵심 기술 중 하나이며, 그 중요도가 계속 증가하고 있을 뿐 아니라 적용 분야도 넓어지고 있다. 딥러닝을 통해 AI 기술이 재조명 받으면서 추천 시스템에도 파급 효과가 전달되고 있다. 추천 시스템의 기반 기술을 한 단계 끌어올리기도 하였으며, 음성 비서나 자율 주행과 같은 새로운 서비스와 환경에서도 추천이 필요한 상황이 되었다. 앞으로도 추천 기술의 중요도와 필요성은 계속 증가할 것이고 AI와의 관계도 더욱 밀접해질 것으로 보인다. 





글 | 전상혁 larry.chun@kakaocorp.com 
카카오의 추천 기술을 연구하고 개발하는 일을 맡고 있습니다. 제가 알고 있는 지식을 사용해 실제 세상의 문제를 풀 때 큰 즐거움을 느낍니다. 아직 부족한 것이 많아 요즈음 하루하루 빠르게 바뀌는 세상을 따라만 가기에도 벅차지만, 계속 연구와 개발에 정진해 둘 다 놓치지 않고 잘 해낼 수 있는 사람이 되고 싶습니다. 


글 | 김광섭 lucas.kim@kakaocorp.com
카카오 추천기술파트의 파트장을 맡고 있습니다. 기계 학습과 추천 시스템 전반에 관심이 많으며 매니저의 역할보다는 프로그래밍을 하는 것에서 더 재미를 느끼고 좋아합니다. 





[1] 참고 | 좌측 상단부터 순서대로 다음 앱의 ‘나를 위한 추천 뉴스’, 모바일 다음뉴스 하단의 ‘연관 추천 뉴스
와 동영상’, 1boon의 ‘연관글 추천’, 카카오톡 채널탭 인기 카페글 하단의 ‘지난 주 인기 카페글 추천’, 브런치 하 단의 ‘연관 브런치 글 추천’, 카카오페이지 작품 상세 영역의 ‘연관 작품 추천’ 카카오뮤직 뮤직룸의 ‘친구 추천’, 카카오TV 하단의 ‘연관 동영상 추천’. 이외에도 많은 서비스들에 토로스를 사용한 추천 서비스가 제공되고 있 다. 

[2] 논문 | Hu, Yifan, Yehuda Koren, and Chris Volinsky. "Collaborative filtering for implicit feedback datasets." Data Mining, 2008. ICDM'08. Eighth IEEE International Conference on. Ieee, 2008. 

[3] 논문 | Rendle, Steffen, et al. "BPR: Bayesian personalized ranking from implicit feedback." Proceedings of the twenty-fifth conference on uncertainty in artificial intelligence. AUAI Press, 2009. 

[4] 논문 | Johnson, Christopher C. "Logistic matrix factorization for implicit feedback data." Advances in Neural Information Processing Systems 27 (2014). 

[5] 논문 | Covington, Paul, Jay Adams, and Emre Sargin. "Deep neural networks for youtube recommendations." Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 2016. 

[6] 설명 | 단어 시퀀스(sequence)의 확률 분포를 추정하는 문제로, 자연언어처리 분야에서 활발하게 연구되고 있다. 

[7] 논문 | Mikolov, Tomas, et al. "Efficient estimation of word representations in vector space." arXiv preprint arXiv:1301.3781 (2013). 

[8] 설명 | 구글의 검색 알고리듬으로 유명한 pagerank를 추천에 적용한 기술 

[9] 설명 | 확률 그래프 모델 (probabilistic graphical model)에서 그 래프로 표현한 분포의 최대 사후 분포 (posterior) 혹은 최대 우도 (likelihood) 를 계산하기 위해 사용되는 알고 리듬 중 하나 

[10] 설명 | 계산량을 줄이기 위해 모든 값을 전부 사용하는 연산을 전체가 아닌 일부만 사용해 근사값을 사용하는 방법론. word2vec, LMF 등의 방법론에서 많이 사용한다. 

[11] 설명 | 사람이 사용하는 언어를 기계가 이해하고 분석할 수 있도록 하는 연구 분야를 통틀어 일컫는 말이다 

[12] 설명 | 소리나 파동을 이미지로 시각화하는 기술로, 시간과 진폭의 관계도인 파형(waveform)과 주파수와 진폭의 관계인 스팩트럼(spectrum) 의 특징을 동시에 표현할 수 있는 방법이다. 

[13] 설명 | 인간의 청각 시스템을 흉내내 만든 신호 처리 기법
으로 음성 인식 등의 분야에서 많이 사용하는 기술이다. 

[14] 논문 | Bergstra, James S., et al. "Algorithms for hyper-parameter optimization." Advances in Neural Information Processing Systems. 2011. 

[15] 논문 | Snoek, Jasper, Hugo Larochelle, and Ryan P. Adams. "Practical bayesian optimization of machine learning algorithms." Advances in neural information processing systems. 2012. 

[16] 논문 | Li, Lisha, et al. "Hyperband: A Novel Bandit-Based Approach to Hyperparameter Optimization." arXiv preprint arXiv:1603.06560 (2016).

[17] 설명 | 수없이 많은 정보에서 질의와 관련된 정보를 얻어내는 기술을 통틀어 일컫는 말 

[18] 설명 | 서로 다른 순위(rank)들을 결합해 하나의 순위를 얻어내는 기술 

[19] 논문 | ormack, Gordon V., Charles LA Clarke, and Stefan Buettcher. "Reciprocal rank fusion outperforms condorcet and individual rank learning methods." Proceedings of the 32nd international ACM SIGIR conference on Research and development in information retrieval. ACM, 2009. 

[20] 논문 | Fox, Edward A., and Joseph A. Shaw. "Combination of multiple searches." NIST SPECIAL PUBLICATION SP 243 (1994). 

[21] 설명 | 수학적으로는 승률이 변하지 않는 환경을 분포가 고정되어있다고(‘stationary’하다고) 표현하고, 승률이 계속 변하는 환경을 분포가 고정되어있지 않다고(‘non-stationary’하다고) 표현한다. 

[22] 설명 | 2017년 6월 5일 16시 부터 16시 15분까지 총 15분 동안 미디어 노출 Top 1 상위 아이템 연관 추천 영역에서 네 로직을 온라인 A/B 테 스트 한 결과 

[23] 설명 | 전자처럼 현실에 직접 적용하는 대신 정해진 데이터셋에서 성능 평가를 하는 것을 오프라인 평가라 부르고 후자처럼 직접 현실에 적용해 실시간으로 모델을 평가하는 것을 온라인 평가라 부른다. 

[24] 설명 | 2017년 6월 4일 13시부터 15시, 18시부터 20시까지 카카오페이지 연관 추천 영역에서 각종 로직을 A/B 테스트한 결과. 베이스 로직은 서비스에서 기존에 사용하던 기존 로직이다. 




[ 카카오 AI 리포트 Vol. 4 목차 ] 


[1] Review - AI와 여성: Women in AI

01. 정수헌 : 페이페이 리의 꿈과 도전, ‘모두를 위한 AI’

02. 김대원 : 여성 AI 개발자들이 말하는 ‘AI와 나’ 


[2] Industry - AI 알고리듬의 비밀

03. 전상혁, 김광섭 : 내 손안의 AI 비서, 콘텐츠 추천 알고리듬 (이번글)

04. 최성준, 이경재 : 알파고를 탄생시킨 강화학습의 비밀


[3] Information

05. 김연지 : 카카오 북클럽 추천 AI 도서 모음

매거진의 이전글 [카카오AI리포트]알파고를 탄생시킨 강화학습의 비밀

매거진 선택

키워드 선택 0 / 3 0
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari
;