온라인 서비스 개선을 위한 데이터 사이언스: 문제와 해법

외부에서 저희 Data&Analytics팀에 대해 이야기를 할 때에 종종 정확히 어디까지가 데이터 사이언스 및 엔지니어링의 영역인지에 대해 궁금해 하시는 경우가 종종 있습니다. 특히 요즘처럼 머신러닝/인공지능이 뉴스를 많이 타는 시점에는 머신러닝만 잘 하면 되는게 아냐? 이렇게 생각하시는 경우도 종종 접합니다.

최근 시애틀의 한인 테크 커뮤니티인 창발에서 주최한 컨퍼런스에서 이런 질문에 대한 대답이 될만한 내용을 발표했습니다. (글미에 발표 영상 및 자료 포함) 저희 Data&Analytics 팀의 현재 프로젝트 및 내년 계획에도 대부분 포함된 내용이니 관심있게 보시면 좋겠습니다.

현대적인(modern) 온라인 서비스란?

우선 현대적인 온라인 서비스의 3요소인 인공지능 / 클라우드 / 모바일의 관점에서 왜 데이터 사이언스가 필요한지 생각해 봅시다. 주된 서비스의 형태가 모바일 앱이 된 상황은 서비스에서 사용자에 대한 데이터를 더 많이 모을 수 있다는 것을 의미하고, 이렇게 수집된 데이터를 클라우드에 저장하면 저비용으로 강력한 컴퓨팅 파워를 활용할 수 있습니다. 마지막으로 인공지능은 이런 데이터를 활용해 다양한 지능형 서비스를 제공하는 것을 가능하게 합니다.

What constitutes a modern online service?

온라인 서비스가 당면한 첼린지들

여기까지 보면 완성된 그림처럼 보입니다. 하지만 데이터를 수집해서 클라우드에 넣고 AI모델을 만들어 돌리면 성공적인 서비스의 런치, 그리고 지속적인 성장이 보장되는 걸까요? 아마 온라인 서비스를 만들어 보신 분이라면 현실은 그렇게 녹록치 않다는 점을 잘 아실 것이라 생각합니다.

기회 분석: 어떤 방향으로 서비스를 만들고 발전시켜야 하나?

우선 이런 첼린지의 큰 부분은 인공지능(=AI) 기술의 본질과 한계에 기인합니다. 흔히 AI라면 ‘내가 원하는 것을 정확히 가져다주는 마법같은 기술’로 생각하는 경향이 있고, 서비스 사용자 관점에서는 그런 경험을 제공되는 성공사례도 (주로 검색 및 추천 서비스의 형태로) 많이 있습니다.

하지만 서비스를 만드는 관점에서는 인공지능은 입력값에 따라 출력값을 내놓는 수학적 알고리즘에 지나지 않습니다. 그리고 구체적으로 이 알고리즘은 주어진 데이터를 바탕으로 개발자가 지정한 목적함수를 최적화하는 모델을 (정확히 말하면 이미 정해진 모델의 파라메터를) 학습합니다.

What AI algorithm does: model fitting based on data & objective function.

여기서 우리가 알 수 있는 것은 AI에게 데이터와 목적함수를 주는 것이 개발자의 역할이라는 것입니다. 따라서 AI 개발자는 AI가 어떤 모델을 학습해야 할지에 대한 방향을 목적함수 및 제약조건의 형태로 제공해야 합니다. 그리고 이런 방향성은 결국 고객의 요구사항을 정확히 이해하는데서 나옵니다.

따라서 제대로 된 온라인 서비스를 개발하는 조직에서는 고객의 목소리, 혹은 경쟁사와의 비교 결과를 개발 프로세스에 반영할 수 있는 방법이 필요합니다. 이를 위해서는 사용자들이 서비스를 사용하는 과정에서 남기는 로그를 바탕으로 퍼널 및 코호트 분석 등 다양한 형태의 기회 분석(Opportunity Analysis)을 할 수 있습니다.

Where do users come & go? Funnel Analysis

발표에서는 기본적인 퍼널 분석과 함께 Snapchat에서 논문화한 사용자 Journey분석 및 사용자 이탈 예측 모델링 프로젝트도 간단히 소개합니다. 논문에서 발췌한 아래 결과를 보시면 아시겠지만, 최근에서는 사용자의 행동을 모델링하는 프로젝트에도 다양한 딥러닝 모델을 활용하는 것이 추세입니다.

Use DNN models to predict and optimize user satisfaction / retention

또한 검색엔진과 같이 사용자의 검색 질의어에 따라 대체로 검색 페이지에 나오는 결과물이 결정되는 경우 다음과 같은 Side-by-side 비교를 통해 경쟁사 대비 서비스의 품질 분석을 수행하는 방법도 존재합니다. (관련 논문)

Competitive Analysis of Service Quality: Side-by-Side Evaluation

품질 평가: 개발한 서비스가 기존 서비스보다 더 나을까?

서비스가 개발된 이후에는 개발된 서비스가 기존 서비스보다 (혹은 경쟁사보다) 더 나은지를 평가해야 합니다. 질의어에 대한 문서별 품질 레이블 및 클릭 데이터에 기반한 평가가 비교적 용이한 검색엔진의 경우 이런 평가 기법이 수십년전부터 연구 개발되어 왔습니다.

저희 Data&Analytics팀에서 현재 주로 하고 있는 프로젝트가 이런 품질 평가 프로세스를 네이버 검색 조직 전체에 대해 플랫폼화하여 자동화 및 고도화하는 업무입니다. 이를 위해 저희는 올해 하반기에 레이블 기반의 검색 품질 평가 시스템 및 사용자 로그 기반의 검색 품질 평가 시스템을 개발하였으며, 그중 로그 기반의 A/B 평가 시스템은 최근 블로그 포스트에서 소개한 바 있습니다.

이중 A/B 평가 시스템은 한번에 여러 variant의 비교를 가능하게 하고, 실험 버전 관리를 통해 개발 프로젝트에 대해 기능 추가 및 버그 수정을 위해 여러 차례 iterate하는 것을 가능하게 하지만, 종종 수백 수천개의 파라메터 가운데서 최적값을 찾아야 하는 검색 및 추천시스템의 최적화에는 직접 활용하기 어려운 측면이 있습니다. 이를 해결하기 위해 주어진 컨텍스트에 (사용자 질의어 혹은 프로필) 대해서 사용자의 피드백을 기반으로 최적의 파라메터를 동적으로 탐색하는 Contextual Bandit 기법이 최근에는 각광을 받고 있습니다. 이를 통해 사용자의 피드백을 기반으로 스스로 개선하는 시스템을 만들 수 있기 때문에 최근 검색 및 추천 시스템에 널리 활용되고 있는 기술입니다.

Converge to the best action (max. reward) given a context for Parameter Optimization

또한 과거에는 사용자의 만족도 및 활동(engagement)을 최대화하는 시스템을 만드는 것이 개발자들의 주된 관심사였다면, 최근에는 상품 혹은 컨텐츠를 제공하는 공급자 및 시스템이 속한 사회에 미치는 영향까지 고려한 시스템 개발을 요구받고 있습니다. 검색 및 추천시스템이 더 널리 사용됨에 따라 잘못된 정보를 퍼트리고 사회적 약자에 대한 편견 및 차별을 조장하는 부작용에 대한 인식이 확산된 까닭입니다. 좀더 자세한 내용은 올해 여름에 제가 발표한 아래 내용을 참조하시기 바랍니다.

발표 영상은 여기서 보실 수 있습니다: http://naversearchconf.naver.com/

저희 팀에서는 현재 검색 평가 분야의 석학이신 와세다 대학의 Tetsuya Sakai교수님을 Research Advisor로 모셔 검색 결과의 공정성을 평가하고 개선하기 위한 연구 프로젝트를 진행하고 있습니다. 연구의 주 아이디어는 공정성을 요구받는 검색 결과의 속성과 우리가 원하는 노출 비율을 미리 정하고 (예: 뉴스 사이트에서 보수와 진보 성향의 기사가 5:5로 나와야 한다) 이를 평가할 수 있는 지표를 개발하는 것입니다. 내년 SIGIR 컨퍼런스에서 관련 성과를 공유할 수 있기를 기대해 봅니다.

품질 모니터링: 서비스의 장애를 바로 감지하고 대응할 수 있을까?

이렇게 엄밀한 평가를 거쳐 좋은 서비스를 내놓고 잊어버릴 수 있다면 좋겠지만, 현실적으로 이미 잘 돌아가고 있는 서비스의 품질을 위협하는 다양한 요소가 상존합니다. 사용자의 행동 패턴의 변화, 네트워크 및 기타 시스템 장애, 모델 및 피처 개선 과정에서의 문제 등 이런 요인은 어디선가 나타나 서비스의 안녕을 위협할 수 있습니다. 이런 장애에 제대로 대응하지 못하면 매출의 손실은 물론 서비스의 생존까지 위협받을 수 있습니다.

따라서 서비스의 장애가 있을 때 이를 바로 인식하고 대응할 수 있는 품질 모니터링이 장기적으로 지속가능한 서비스 운영을 위해 필수적인 컴포넌트가 됩니다. 모니터링 시스템은 서비스의 각종 지표를 지켜보다가 이상 징후가 보이면 담당자에게 연락을 하는 식으로 작동하는데, 여기서 어려운 점은 이상이 아닌 부분을 이상으로 리포팅하는 False Alarm과 실제 이상 현상을 놓치는 Missing Alarm을 최소화하는 부분입니다. 아래 Microsoft에서 발표한 논문은 이런 시스템을 구현하는 좋은 사례를 보여줍니다.

Source: KDD’20 Paper from Microsoft

맺음말

이번 글에서는 온라인 서비스 운영의 각 단계에서 나타날 수 있는 데이터 사이언스 문제를 설명하고, 현재까지 나온 여러가지 해결책을 소개했습니다. 이 글을 통해 온라인 서비스를 제대로 기획하고, 개선하고, 운영하기 위해서는 데이터 활용이 중요하다는 인식이 조금이나마 확산되었으면 하는 바램입니다.

Data Science Problems & Solutions by Service Lifecycle: Each stage present different analysis and decision problems, with corresponding data science solutions

아래 발표자료 및 동영상을 같이 공유하니 필요한 분께서는 참고하시기 바랍니다. 언제나처럼, 네이버 Data&Analytics에서는 이렇게 다양하고 흥미진진한 문제를 같이 푸실 데이터 사이언티스트와 엔지니어 분들을 모시고있습니다!