신사(SinSa)
article thumbnail

얼마 전 우연치 않은 기회에 추천 시스템도 돈을 버는 추천 시스템이어야 하고 그래서 결제를 하는 고객과의 연계를 통해 더 수익이 늘어나는 추천 시스템을 고안했다는 글을 보았다. 사실 이 글과 유사한 글들에서 느낀 것은 결과적으로 추천 시스템이 잘 작동하고 있고 만족도가 높아진다면 BM이 적절히 존재하는 서비스(특히 해당 글의 필자들이 언급했던 서비스들)라면 당연히 비용을 지불한 고객이 늘어나야 정상적이다. 사실 비즈니스 로직을 살펴보면 추천 시스템을 도입하거나 작동하게 하는 당연한 이유인데 비즈니스 로직을 모르는 사람들을 대상으로 '나는 추천 시스템을 활용하는 것을 넘어 돈을 벌 수 있게 했다.'라는 뉘앙스는 그 프로덕트에 대한 비전 공유가 잘 된 것인지 의문이 든다. (작성하면서 혹시라도 다른 글이 있을까 걱정되어 검색해보니 최근 특정 컨퍼런스에서 이런 유사한 주제로 발표도 하신 것도 있는데 해당 내용은 들은 적이 없어서 그 발표와는 무관함을 알린다.)

 

일단 추천 시스템을 설명함에 있어 협업 필터링(collaborative filtering)은 빼놓을 수 없는데 그 이전에 추천 시스템이 무엇인지 간단하게 정의를 해보면 '사용자가 좋아할 만한 컨텐츠를 먼저 제시하고 추천(또는 큐레이팅)하는 것'이라고 할 수 있을 것 같다. 그리고 이를 위해 여러 연구가 오래전부터 진행되어 왔고 1992년 David Goldberg[1]가 고안한 협업 필터링이 현존하는 가장 우수한 성능을 가진 추천 시스템이라고 알려져 있다. 이 협업 필터링은 그 뒤로 지속적으로 튜닝되었고 특히 단점으로 지적되었던 과도한 데이터 스캔과 콜드 스타트 문제를 해결하기 위해 여러 도전들이 이어졌다. 여기서 과도하게 엔지니어링 섹터로 진입하지 않고 설명하면 협업 필터링은 기본적으로 전체 대상들이 어떤 경로를 가지고 있는지, 그리고 우리가 타깃 하는 이용자와 얼마나 유사한지를 산출(코사인 유사도)하여 가장 높은 확률로 선호할 것이라고 예상되는 콘텐츠를 추출하는 알고리즘이다. 물론 여기서 조금 더 진입하면 사용자를 기반으로 추천을 할지, 아이템을 기반으로 추천할 지에 따라서도 어떤 데이터의 유형이냐에 따라서도 그 성능은 천차만별이다.

 

일반적으로 아이템(콘텐츠)을 중심으로 협업필터링을 사용하면 콜드 스타트가 줄어든다고 하는데 사실 실제 활용해보면 서비스 자체의 콜드 스타트 단계에서는 사실상 무용지물이나 다름없는 데다가 추천 시스템을 처음 도입하는 대부분의 기업들은 아이템이든 사용자든 보유하고 있는 데이터 자체가 추천을 적용할 만큼 잘 정돈되어 있지 않은 것이 대부분이다. 게다가 협업 필터링은 새로운 콘텐츠들의 지속적인 유입에 대해 지속적으로 전체 내용을 연산해야 하는 문제가 있는데 이를 해결한 일부의 연구는 전체의 20%, 10% 정도만 연산을 하게 하고 일반화시키는 방식으로 접근하거나 콘텐츠의 유사도 또는 거리를 가늠하여 해당 거리를 기준으로 일부에 해당하는 것들을 다시 연산하게 하는 방식을 활용하는 것이 추천의 성능 저하를 최소화한다고 이야기하고 있다. (추천 시스템에 대한 더 자세한 이야기는 아래 블로그를 살펴보면 좋다.)

 

https://khanrc.tistory.com/entry/추천-시스템Recommendation-System

 

추천 시스템(Recommendation System)

이번 소프트웨어 마에스트로 과정 1차 프로젝트에서 가장 중요한 건 추천 시스템이다. 추천 시스템은 본 과정 뿐만 아니라 수많은 스타트업들의 핵심 컨텐츠로 자리하고 있으며, 미래에는 ‘추천’이라는 개념 자..

khanrc.tistory.com

그리고 이 추천 시스템이 딥러닝으로 대표되는 머신러닝 시장이 커지면서 다시 한번 주목받고 있는데 실제 협업 필터링이 갖는 단점을 해소하지 못했고 오히려 단점이 더 늘어나는 현상도 생겼다. 대표적으로 도메인마다 다른 콘텐츠의 종류와 유형, 기업마다 다른 형태로 갖고 있는 데이터, 데이터 가공을 위해 알아야 하는 도메인 전문 지식 등이 나타났다. 물론 어텐션(Attention)과 Bert모델이 나오면서 어느 정도 문장 내에서 유의미한 데이터를 보다 쉽고 정확하게 찾아낼 수 있지 않냐는 제안도 있었다.

 

2018/11/15 - [프로덕트 매니지먼트] - Attention and Augmented Recurrent Neural Networks

 

Attention and Augmented Recurrent Neural Networks

순환 신경망은 신경망이 텍스트, 오디오 및 비디오와 같은 일련의 데이터로 작업할 수 있게 하는 심층 학습의 필수 요소 중 하나이다. 이는 높은 수준으로 시퀀스를 이해함으로서 시퀀스에 주석을 남긴다거나 새로..

puture.tistory.com

또한 추천 시스템을 적절하게 잘 도입하여 서비스의 안정성과 고객 만족도를 동시에 높인 성공 사례도 있다. 넷플릭스의 경우 자체 추천 성능을 높이고자 공모전을 한 적이 있는데 100만 달러의 상금이 걸린 이 대회에서 협업 필터링을 고도화한 모델 기반 협력 필터링(Model-based Collaborative Filtering algorithm)이 이 상금의 주인공이 되고 이 추천 알고리즘은 그대로 넷플리스에 도입되어 넷플릭스가 OTT 서비스로 세상에 돌풍을 일으킬 수 있게 해 주었다. 그리고 지금은 이 알고리즘보다 더 주목받고 있는 것이 잠재(latent) 모델에 기반을 둔 알고리즘이다. 잠재 모델은 특정 사용자가 어떤 콘텐츠를 왜 좋아했는지 그 방식을 유추 해나가게 하는 것인데 추천 정확도가 현저히 높아질 것으로 기대되고 있다. 그럼에도 불구하고 처리해야 하는 연산량과 도입하고자 하는 기업들의 데이터 유출에 대한 우려와 높은 비용은 여전히 추천 시스템의 도입 장벽으로 남아있다.

 

그럼 어떻게?


여기서부터는 제가 운영 중인 제품에 대한 이야기를 제 목소리로 풀어내고 있어 약간 광고 같은 느낌을 받을 수도 있기에 추천 시스템에 대해 궁금해서 읽기 시작하신 분들은 과감히 블로그의 다른 글로 넘어가시거나 창을 닫으셔도 무관합니다.

 

넷플릭스, 네이버와 같은 콘텐츠도 사용자도 많고 추천 시스템을 돌리기 위한 연산 작업을 전문으로 하는 서버 몇 대 정도는 아무렇지 않게 도입할 수 있는 기업들과 달리 대부분의 기업들과 기관들은 이런 추천을 위해 본인들이 하고 있는 본연의 일에 지장을 받는 것을 꺼려한다. 예를 들어 연구를 위주로 하는 곳에서 연구 결과와 내용들을 공개하는 웹 페이지를 운영 중인데 추천을 잘해주었으면 좋겠다. 근데 서버를 새로 사야 한다거나 웹 페이지 자체의 성능을 저하시킨다면 추천 정확도가 100%가 나와도 무의미하다고 여길 수밖에 없다. (물론 추천 정확도는 일반적으로 10%만 돼도 어마어마하다.) 그래서 우리는 사용자들이 콘텐츠를 따라 어떻게 소비하고 다니는지에 집중했고 콘텐츠와 사용자들을 그룹으로 나누어 사용자 그룹과 콘텐츠 그룹이 서로를 대변할 수 있다는 가정을 했다. 그리고 이 사용자 그룹은 콘텐츠 그룹들을 넘나들기도 하는데 사용자 그룹과 콘텐츠 그룹은 중복되기도 하며 해제되기도 하고 새로 생성되기도 하는 유동적인 모습을 같게끔 구성해보았다.

 

그리고 콘텐츠 내비게이터라는 이름을 붙이고 우리는 이 추천 성능을 검증했다. 대부분의 수준에서 협업 필터링과 대등한 수준의 추천 성능을 보였고 협업 필터링이 사용하는 리소스 대비 10% 안팎의 리소스를 사용하기 때문에 추천 시스템의 도입을 부수적인 사업으로 생각하는 곳에서도 적절하게 도입될 수 있게끔 구성했다. 그리고 이러한 고객 홈페이지들의 HCI(Human-Computer Interaction)를 분석해본 결과 대부분의 외부 사용자들은 사람이 나누어 놓은 카테고리를 타고 다니기보다는 통합 검색을 통해 콘텐츠에 도달함을 알 수 있었다. 결과적으로 검색과 조회로 이루어진 최초의 행위들에 대해 Taste Information의 일부로 정의하기로 하고 부수적인 5개의 선호 표현과 해당 가중치를 관리자가 더 입력할 수 있게 오픈해두었다. 그리고 기초과학연구원의 특허성과확산지원시스템에 도입해서 추천 성능을 포함해 콜드 스타트 단계에서 추천의 수행 능력을 검증했고 검색과 추천을 조합했을 때 우리가 타깃으로 한 사용자들에게 유의미한 성능과 결과를 제시할 수 있다는 결론에 이르렀다. 그리고 우린 이 제품을 AIVORY(에이아이보리)라고 브랜딩 했다.

 

https://blog.nerdfactory.ai/2019/04/07/aivory-recommendation-story.html

 

너드팩토리

너드팩토리에서 운영하는 블로그 입니다.

blog.nerdfactory.ai

http://aivory.nerdfactory.ai 

 

http://aivory.nerdfactory.ai

 

aivory.nerdfactory.ai

 

특별히 재밌는 요소라면 협업 필터링을 기반으로 추천을 풀려고 하면 손실을 감수하고 접근한 경우가 대다수였던 반면 협업 필터링을 무시하고 새롭게 접근한 알고리즘(여기서 대부분은 물리학의 네트워크 이론을 차용했다.)이 대등한 성능에 협업 필터링의 단점들을 소화한다는 점이었다. 여기까지가 회사에서 지원받아 연구개발과제로 수행했던 것들인데 이게 제품이 되었고 이 과제를 수행했던 팀이 지금 나의 동료들이다. 아직은 내 능력이 부족해 이 친구들이 신나게 연구에만 집중하고 있지 못한데 보다 더 멋진 프로덕트 매니저로 연구에 집중할 수 있는 환경을 하루빨리 만들어주어야겠다.

 

http://nerdfactory.ai 

 

http://nerdfactory.ai

 

nerdfactory.ai

 

[1]David Goldberg, David Nichols, Brian M. Oki, and Douglas Terry, "Using collaborative filtering to weave an information Tapestry", 1992

profile

신사(SinSa)

@신사(SinSa)

포스팅이 좋았다면 "좋아요❤️" 눌러주세요!