다중 머신 대여 컴퓨팅 아이피 피씨
본문
동아일보의 다중 머신 대여 ‘AI 추천 기사 for you’는 이름 그대로 AI를 활용한 첨단 뉴스 추천 시스템이다. 유튜브나 넷플릭스처럼 독자가 관심 갖는 주제를 파악해 뉴스를 서비스하는 것이다. 이번 서비스는 취재기자가 개발을 주도해 더 큰 화제를 모았다. 서영빈 동아일보 기자에게 그 개발 과정을 직접 들어본다. 편집자 주 서영빈 동아일보 기자지난 1월 동아일보 디프런티어센터가 출범했다. 동아일보 편집국이 제작하는 모든 디지털 콘텐츠를 총괄하는 조직이다. 출범 직후 추진한 자체 CMS 전면 도입, 신문 최초 디지털 콘텐츠 편성표 제작 등은 언론계의 큰 관심을 모았다. 하지만 해결해야 할 과제도 많았다. 시급한 건 4월 예정됐던 네이버 뉴스 서비스의 ‘아웃링크’ 전환이었다(네이버는 아웃링크 도입 직전에 무기한 연기 방침을 밝혔다). 아웃링크는 네이버에서 뉴스를 클릭했을 때, 네이버 뉴스페이지가 아닌 각 언론사 홈페이지로 연결되는 방식을 뜻한다. 언론사에게는 큰 기회이자, 어려운 시험이기도 했다. 자체 웹사이트에서 발생한 트래픽을 온전히 수익화할 수 있지만, 네이버로부터 분배받던 수익을 포기해야 하기 때문이다. 동아일보 웹사이트에 들어온 독자들이 매력을 느끼고 최대한 그 안에 머물게 해야 한다. 이를 위해 디프런티어센터는 디지털 전략을 수립하는 경영전략실, 웹사이트를 개발·유지하는 동아닷컴과 함께 다양한 업그레이드 작업을 진행 중이었다. 다만 아쉬운 것 가운데 하나는 제대로 된 기사 추천 시스템이 없다는 것이었다. 유튜브와 넷플릭스가 다중 머신 대여 성공한 가장 큰 요인 중 하나는 인공지능(AI)을 활용한 최첨단 추천 시스템이다. 개별 독자들이 좋아할 만한 맞춤형 콘텐츠를 추천하는 덕분에 이용자가 플랫폼을 나가지 않고 그 안에 오랫동안 머물게 된다. 유튜브가 단지 어마어마한 양의 동영상을 무질서하게 업로드하는 플랫폼이었다면, 지금과 같은 성공을 거둘 수 없었을 것이다. 언론사도 마찬가지로, 개별 독자들에게 맞춤형 기사를 추천하는 게 더 친절한 서비스다. 그래야 최소한 네이버를 대신할 독립적인 뉴스 사이트로 기능할 수 있을 것이다. 몇 년 전 회사 내에서 AI를 기반으로 한 기사 추천 시스템 도입을 검토하면서 몇 가지 선택지가 마련됐다. 가장 간단한 건 추천 시스템 기술을 가진 기업에 외주를 맡기는 것. 그런데 통상 AI 기술을 전문적으로 다루는 기업에 외주를 맡기는 것은 작업과 유지를 위해 어마어마한 금액을 필요로 한다. 유튜브와 달리 자체 홈페이지를 통한 수익이 큰 비중을 차지하지 않는 언론사 입장에서 이런 투자는 무리다. 그렇지 않다면 추천 목록에 광고가 섞인 ‘무료 버전’을 쓸 수도 있었다. 그런데 무료 버전을 사용하고 있는 다른 언론사들을 살펴보니, 추천 목록에서 광고가 절반 이상을 차지해 지저분하다는 느낌을 지울 수 없었다. 또 추천되는 기사들은 3~4일이 지나 시의성이 떨어진 기사들이거나, 관심사와 무관한 기사들이 많았다. 특히 이렇게 며칠 묵은 기사를 다중 머신 대여 추천하는 것은, 하루 단위로 주요 이슈가 바뀌는 뉴스 시장을 경험한 기자로서는 이해할 수 없었다. 이전에도 홈페이지 구석에 추천 기사를 보여주는 칸이 있었다. 다만 흔히 ‘추천 시스템’이라고 부르는 맞춤형 추천 알고리즘이 적용된 시스템은 아니었고, 단순히 최근 조회수가 높은 기사를 모아서 보여주는 방식이었다. 이는 독자 개개인의 관심과 열람 기록과는 무관하게 모든 독자에게 똑같은 추천 목록을 제공했다. 또 연예계 소식 등 흥미 위주 기사들이 조회수가 높다는 이유만으로 목록 상단에 올라오는 경우도 있었다. 이 같은 방식은 당장 독자들의 클릭을 유도할 수는 있지만, 언론사 홈페이지가 유익한 정보를 제공하는 곳이라는 이미지를 줄 수 없었다. 자체 인력이 직접 추천 시스템을 개발하는 것만이 비용을 최소화하면서도, 뉴스 시장을 잘 이해하는 기자의 시각에 꼭 맞는 양질의 추천 시스템을 갖추는 방법이라고 확신했다. 마침 필자는 AI 프로그래밍을 공부하고 있었고, AI를 활용한 최신 추천 시스템을 구현하는 방법을 알 수 있었다. 디프런티어센터로 자리를 옮기고 곧바로 추천 알고리즘을 적용한 시험용 페이지를 만들어 회사에 보고했다. 기사를 클릭할 때마다 실시간으로 추천 목록이 업데이트되는 시험용 페이지를 만들어 회의에서 시연하자, 기획이 긍정적인 방향으로 검토됐다. 문제는 시스템을 개발할 사람이 없다는 것. 웹페이지를 관리하는 동아닷컴의 개발자들은 4월 아웃링크 전환을 앞두고 모두 다른 프로젝트에 다중 머신 대여 투입돼 분주했다. 약 3개월 남은 상황에서 다른 모든 걸 제쳐두고 새로운 프로젝트에 집중하도록 할 수는 없었다. AI 기사 추천 시스템은 다른 프로젝트들이 마무리되는 4월 이후에나 가능할 것으로 보였다. 결국 필자가 직접 개발을 맡겠다고 했다. 이미 시험용 페이지를 선보인 상황이어서 어느 정도 신뢰가 있었고, 당시만 해도 아웃링크 전환이 얼마 남지 않은 상황이었기 때문에 직접 개발을 맡을 수 있었다. 나중에 프로젝트를 성공적으로 마치고 한 IT 기업 기술 책임자에게 이 일을 얘기하자, “기자가 그 일을 맡도록 허락해준 상사가 참 대단하다”라고 했다. 다시 생각하면 공식적인 서비스 개발 경력이 없는 현직 기자에게 개발을 맡긴다는 건 실패할 가능성이 높은 어려운 결정이었다. 다행히 디프런티어센터의 혁신적인 분위기가 이런 일을 가능하게 한 것 같다.추천 시스템의 원리 추천 시스템의 원리는 챗GPT와 같은 자연어 처리에서 흔히 쓰는 밀집 벡터 임베딩(dense vector embedding)을 응용한 것이다. 문서의 내용을 50개의 숫자로 변환하는 기술이다. 좀 더 전문적으로 얘기하면 문서의 내용을 50차원 공간 속의 한 점으로 바꾸는 것이다. 문서에서 임의의 단어에 빈칸을 뚫고 AI에 이 빈칸에 해당하는 단어가 무엇인지 추측하게 하는 방법으로 학습이 이뤄진다. 그리고 평면 속의 점은 내적(dot product, 內積)이라는 연산을 통해 그 닮음의 정도를 측정할 수 다중 머신 대여 있다. 이 같은 방법으로 방금 읽은 기사와 유사한 내용을 지닌 기사들을 찾아낼 수 있다. 또 이 좌표 정보를 통해 독자의 평균적 관심에 가까운 기사들도 추천할 수 있다. 향후 PMI(Pointwise Mutual Information, 점별 상호정보량) 지수를 활용한 추천 방식도 추가할 예정이다. 네이버가 공개한 자체 기사 추천 시스템 연구 보고서에 따르면, PMI 방식이 여러 가지 추천 알고리즘 중에 추천 효과가 가장 높은 방식이다. PMI란 ‘내가 읽은 기사를 읽은 다른 사람들은 어떤 기사를 주로 읽었는지’ 파악하는 통계 방법이다. 넷플릭스, 유튜브도 이 방법을 중점적으로 사용하는 것으로 알려져 있다. 다만 지난 프로젝트 시작 시점에는 PMI 지수를 계산하는 데 필요한 데이터가 수집되지 않은 상태였기에 이 방법을 적용할 수 없었다. 임베딩 방식의 추천 시스템을 설치하면서 PMI에 필요한 데이터도 축적됐고, 이 방식을 추가 도입할 수 있게 됐다. 기사를 클릭했을 때 추천되는 기사 목록. 북한, 위성, 군사 등의 인접 주제 기사들이 추천된다. 추천 페이지 두 번째 면에는 그동안 읽었던 기사들을 바탕으로 관심 기사가 추천된다. Ⓒ동아일보 모든 경우의 수에 대비하라 개발 과정에서 가장 어렵고 곤란했던 부분은 딥러닝 모델보다 기계적인 부분이었다. 추천 원리야 수학적으로 명확한 것이고, 이미 시험용 페이지로도 어느 정도 구현해본 경험이 있어 다중 머신 대여 걱정이 없었다. 그런데 그런 추천을 1분에 최대 5,000명의 이용자에게 오류 없이 제공해야 한다는 건 또 다른 문제였다. IT 기업에서는 이 부분을 ‘서버사이드’로 묶어 전문가들이 전담하도록 한다. 개발을 시작하던 때에 개발자로 일하는 취재원에게 상황을 말하자, “서버까지 직접 구축해야 하는 거면 그냥 망했다고 생각하시면 된다”고 조언했다. 기사 벡터가 50차원(50개의 숫자)이라고 하고, 추천 목록에 해당하는 2~3일 치의 기사가 900개 정도 있다고 하면, 기사 추천이란 50x900 사이즈의 행렬 곱, 즉 4만 5,000번가량의 유리수 곱셈을 하는 것을 의미한다. 이 연산을 1분에 5,000번 한다는 건 메모리와 CPU에 지속적으로 상당한 부하를 줄 수 있음을 의미한다. 알고리즘이 조금만 더 복잡해지면? 추천시스템이 갑자기 멈출 수도 있다. 그렇다고 넉넉한 CPU를 가진 서버 컴퓨터를 쓰면? 매달 지출되는 서버 대여 비용이 너무 커져 프로젝트가 무효가 될 수 있다. 최대한 간결하고 효율적인 알고리즘을 찾아야 했다. 또 독자가 수백만 명인 만큼, 수없이 많은 경우의 수에 대비해야 한다. 만약 독자가 데이터베이스에 없는 옛날 기사를 클릭한다면? 독자가 방금 읽은 기사를 또 누른다면? 한 가지 경우의 수라도 대비돼있지 않으면 시스템이 갑자기 멈출 수도 있다. “이건 확인해봤니? 저건 확인해 봤니?”하며 밤 10시까지 생각지도 못한 부분을 계속 지적받는 깐깐한 데스킹을 거치는 다중 머신 대여 것만큼 피 말리는 일이었다. 다만 그 모든 과정을 직접 해결하고 마침내 안정적으로 서비스를 띄웠을 땐 그만큼 많은 경험치와 자부심을 가질 수 있었다.밴드 활동으로 맺은 AI와의 인연 AI 기사 추천시스템을 직접 개발했다고 얘기하면, 대개 “어쩌다가 기자가 이런 걸 하게 됐느냐? 컴퓨터공학과를 졸업했느냐?”라는 질문이 따라온다. 필자는 경찰서에서 수습기자 생활을 했고, 기획재정부 출입 세종시 주재원, 금융투자업계 출입 등을 거쳐 지금에 이르렀다. 대학교에서는 교육학을 전공했고, 29살까지 홍대에서 인디밴드 활동을 하다가, 30살부터 기자 생활을 시작했다. 기자가 되기 전까지는 수학과 컴퓨터에 대해 전혀 알지 못했다. 다만 밴드 활동할 때부터 AI와 인연은 있었다. ‘알파고’의 충격이 채 가시지 않았던 2017년, 당시 필자는 ‘바흐의 음악이야말로 진정한 음악이다’라며 바흐 대위법을 공부해 밴드 음악에 적용해보려고 하고 있었다. 그런데 어느 날 뉴스를 통해 생성형 AI가 작곡한 바흐 스타일의 음악을 접하게 됐다. AI는 고작 16시간 동안 바흐의 음악을 학습했으나, 필자가 수개월 동안 방 안에서 고통스럽게 공부한 것보다 훨씬 깊게 바흐를 이해한 것처럼 보였다. 또 AI가 작곡한 비틀스 스타일의 곡도 듣게 됐는데, 상당히 감명 깊었다. 이때 AI에게 느꼈던 열등감과 위기감은, 10년간 좇았던 음악인의 길을 완전히 그만뒀던 결정적인 이유 중 하나였다. 언젠가는 AI가 작동하는 방식을 이해해 열패감을 다중 머신 대여 극복해야겠다는 오기를 갖게 됐다. 기자가 된 뒤 우연히 세종에서 기획재정부를 출입하며 소관 기관인 통계청 이슈를 다루게 됐다. 또 마침 문재인 전 대통령의 ‘고용 통계 부풀리기’ 이슈가 논란의 중심에 서게 되면서, 통계청의 마이크로데이터를 활용해 기사를 쓰는 일이 많아졌다. 마이크로데이터를 더 잘 다루기 위해 R이라는 프로그램 언어를 공부했다. 마이크로데이터 분석 기사에 대해 통계청이 ‘통계기법의 엄밀성’에 대해 공격하는 경우가 종종 있었다. 때문에 이를 방어하기 위해 통계수학도 공부했다. 나이 30에 《수학의 정석》 시리즈를 다시 펼쳤다. 세종 출입이 끝난 이후에는 코딩과 수학을 공부한 게 아까워, 언론에서 이 능력을 활용할만한 프로젝트를 찾아서 했다. 데이터 분석 보고서 대회, 데이터 분석 연구 용역 등 주로 데이터 저널리즘 관련 활동을 했고 금감원 기업공시보고서를 2문단짜리 기사로 써주는 뉴스봇을 개발해 회사에서 실제로 사용했다. 이 같은 과정을 통해 기자로서 활동하면서도 개발과 통계·수학 능력을 계속 키워왔다. AI는 ‘다중회귀’와 ‘머신러닝’이라는 통계적 기술을 활용한 것이기 때문에, 통계·수학을 공부하면 자연히 AI도 금방 이해할 수 있다. 그래서 몇년이 지나자 ‘AI가 작동하는 방식을 이해하겠다’던 숙원을 이룰 수 있었다. 회사에서 AI 서비스 개발이 필요할 때 바로 손을 들어 일을 맡을 수 있었던 배경이다. 위 기사는 2023년 7월호에 수록되어 있습니다.
댓글목록 0
댓글 포인트 안내