brunch

You can make anything
by writing

C.S.Lewis

by 월급쟁이 Nov 22. 2017

악조건 속에서도 추천을 ‘잘’하고 싶다

카카오 뉴스 추천 AI 알고리듬과 나의 단상

카카오 정책지원파트가 발행한 ‘카카오 뉴스 추천 AI 알고리듬 ‘루빅스’의 비밀’을 읽으면서 든 생각을 적어봤습니다. 참고로 저는 추천 시스템의 '추'도 구경을 못해봤습니다. ;) 단상이라 비록 얻어가는 결과물은 없으실지라도 같이 생각을 공유해볼 수 있을까 싶어 적어봅니다. 


글을 읽기 전에...

내용 기반 필터링: 개인의 행동 정보를 반영하여 뉴스를 추천

협업 필터링: 개인의 프로파일과 유사한 프로파일을 보이는 타인의 성향을 반영하여 추천


‘추천 시스템’ 하면 들었던 생각

나는 유저 입장에서 협업 필터링에 의한 추천을 더 선호한다.(기록 기반으로 객관적으로 본다면 그렇지 않을 수도 있지만;)) 나의 화면/피드에 새로운 관심 내용(=나와 유사한 프로파일을 보유한 사람이 가졌던 관심 내용)이 등장하고 이를 클릭 혹은 구매한 내가 재미를 느낀다면 그 만족도는 내용 기반 필터링에 의한 만족도보다 크다. 인터넷 서점을 통해 도서를 구매할 때도 이런 추천을 기반으로 연속적으로 책을 구매하는 경우가 왕왕 존재한다. 소비자가 앞으로는 어떤 콘텐츠를 좋아할지 미리 알고 소개해주는 추천 시스템을 신뢰하여 그 회사의 서비스만을 쓰기도 한다.  

카카오 정책지원파트의 브런치 글을 보면서 추천 알고리즘의 정보 수집 정도와 활용 가능 범위에 대해서 생각해보게 되었다. 특히 정보가 존재하지 않은 신규 유저에 대해서 말이다.


1) 정보가 없는 고객의 패턴을 유추하기 위해서 이용하는 항목의 수는 생각보다 굉장히 적을 것 같다. 기껏해야 성별, 연령대, 이용시간대, 유입 채널 정도이지 않을까 유추해본다. 당사의 물건 혹은 서비스에 대한 아무 정보가 없는 상태에서 이 사람이 무엇을 좋아할지 유추하기 위해서 그들과 비슷한 프로파일을 보유하고 있는 선구매자를 이용하는데. 이 두 비교군이 공통적으로 가지고 있으면서도 valid한 프로파일 정보는 제한적일 수 밖에 없지 않을까?  그렇게 되면 머신러닝 기법을 활용한 추천 시스템은 포장용일 뿐이고, 결국에 실제로 참고하는 정보는 summary된 정보(40대 남성/50대 여성이 자주 읽는 기사)의 결과일 뿐 아닌가?


2) 내 추측이 틀릴 수 있다. 수집되는 항목의 수는 생각보다 많을 수 있다. 근데 만일 많다면 유의한 항목(즉, 고객을 segment 하는데 가장 큰 효과를 주는 변수들)은 어떻게 추릴까? 노이즈와 가비지성 데이터에 대한 처리가 궁금하다. null값도 많을 테고, 정보가 없는 고객 자체가 많지 않기 때문에 변수가 무엇을 대변(represent)한다고 정의하기 부담스러울 것이다. 추리고 추리면 결국엔 내가 1)에 이야기한 변수만이 추려질 거 같은데....


그래서 카카오가 선택한 방법은

정보가 없는 사람들을 ‘콜드 스타트 이용자’라고 하는데 카카오는 내가 앞서 말한 문제를 해결하기 이해 ‘맞춤형 멀티암드밴딧’ 알고리즘을 추천 시스템에 적용했다. 정확히 이 문제 때문에 위의 알고리즘을 적용했다고 표현하지는 않았지만, 그런 이유 때문이지 않을까 추측해본다.

아무튼 이 알고리즘의 목적은 “어차피 신규 유저에 대해서 우리는 아는 것이 없으니 몇 번의 테스트를 해보고 최대한 빠른 시간 안에 그들이 원하는 뉴스를 골라주자.”이다.


이 알고리즘은 여러 개의 슬롯머신에 대해 계산을 해보고 가장 승률이 높은 슬롯머신에 집중(소프트맥스 적용) 하는 전략을 세우는데, 만일 표본 수가 충분하지 않을 경우에는 당연히 예측하는 승률이 부정확하다는 단점이 있다. 엉뚱한 곳에 배팅할 가능성이 다분하다는 것이다. 그래서 이를 leverage 시키는 방법으로 UCB를 적용한다. 정보 부족으로 탈락되는 뉴스에 더 많은 테스트 기회를 부여하는 것이다. 탈락되었다고 무조건 배제하거나, 승률이 높아 선택되었다고 무조건적으로 활용하는 경우를 줄여주는 효과를 기대하는 방법론이다.  이 두 알고리즘을 적당히 배분하고 반복적으로 실행하여, 최종적으로는 비용을 덜 들이면서도 높은 뉴스 클릭률을 달성하는 유의미한 결과를 얻어낸다.


추천 시스템을 금융상품에 적용해볼 수 있을까

금융업권에서도 thin-file이라 불리는 대상이 있다. 금융정보가 전혀 없는(대출도 받아본 적이 없고, 신용카드도 없었던 고객) 고객을 일컫는데, 이들에 대해서는 아무 정보가 없으므로 그들을 받아들이는 금융사 입장에서는 thin-file 고객이 가지고 있을 연체 잠재율과 수익 가능성을 예측하는 것이 도전 과제이다. 


이들에 대해 '루빅스 알고리듬'을 적용해 무언가라도 얻을 수 있지 않을까 하는 생각(어떻게든 끼워맞춰보려고 고민해봤다라는 표현이 맞겠다.)으로 잠시 고민해보았지만, 적용이 어려울 것 같다는 결론으로 도달했다. 


첫 번째 이유는 목표가 달라서이다. 뉴스 추천의 경우 높은 클릭률을 목표로 여길 테지만 금융 상품은 thin-file 고객의 수익과 리스크를 예측하는 것이 궁극적 목표이다. 기준으로 두어야 할 축이 하나가 아닌 두 개다. 그리고 이 두 개의 축은 trade-off 관계를 성립하고 있어 의사결정권자로 하여금 딜레마에 빠지게 한다. 


두 번째 이유는 ‘뉴스 추천’과 ‘금융 상품 추천’은 전제 조건도 상이하고 결정에 대한 위험도 수준이 다르다. 뉴스는 노출 후 반응이 예상한 결과가 아니라면 회수하고 곧장 다른 추천을 제공하면 되지만, 고객에게 맞지 않는 엉뚱한 금융 상품을 추천했으면 고객은 휴면 고객으로 변이 될 수 있고, 또는 그들의 실제 상환 능력 대비 과도한 상품을 추천하여 연체가 발생한다면 회사는 막대한 손해를 입을 수도 있으므로 조심스러운 접근이 필요하다. 


셋째로, 두 비교군은 채널이 다르다. 뉴스 추천 시스템은 이용 채널이 ‘인터넷(모바일/pc)’로만 나뉘는 반면 금융상품의 이용 채널은 ‘대면(방문 고객)/에이전트/홈페이지/광고(인터넷/비인터넷)/기타 등등’이 있을 것이다. 만일 루빅스 알고리듬을 적용하겠다면 온라인(pc/모바일 이용자)을 통한 비대면 상품 구매 희망자에 한해 적용해야 하지 않을까 생각된다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari