Skip links

[인공지능 알고리듬의 이해] “제6회: 추천 알고리즘”

[인공지능 알고리듬의 이해] “제6회: 추천 알고리즘”

정보통신정책연구원 ICT데이터사이언스연구본부장

정용찬

* 이 글은 저자의 “인공지능 알고리듬의 이해”에서

주요 내용을 요약, 발췌하였습니다.

추천이란?

알고리즘에 관한 책을 사기 위해 여러분이 인터넷 서점을 방문했다고 생각해 보자. 가장 먼저 온라인 서점의 검색창에 “알고리즘”이란 단어를 입력할 것이고, 그러면 이름에 알고리즘이 들어간 책의 목록을 보여줄 것이다. 목록 중에서 책 하나를 고르면 해당 책에 대한 기본적인 정보가 나오고 그 아래에 “이 책을 구매하신 분들이 함께 구매하신 상품입니다”라는 글귀와 함께 유사한 주제의 책을 몇 권 추천하는 화면을 쉽게 볼 수 있다. 온라인 서점뿐 아니라 쇼핑몰에서도 이런 기능을 쉽게 발견할 수 있다. 이렇게 소비자가 구매할만한 상품을 제안하는 기능을 추천(recommendation) 시스템이라고 한다.

추천시스템 중에서 가장 유명한 사례는 아마 미국의 대형마트인 ‘타깃(Target)’이다. 2012년 타깃은 한 고객으로부터 항의 전화를 받았다. 타깃이 10대 학생인 자신의 딸에게 임산부에게 보내야 할 유아용품 할인 쿠폰을 보냈다는 이유였다. 해당 매니저는 회사의 잘못에 대해서 사과했다. 그런데 얼마 후 매니저는 항의했던 고객으로부터 사과 전화를 받게 된다. 고객의 딸이 실제로 임신 중이라는 사실이 뒤늦게 밝혀졌기 때문이다.

아버지도 모르고 있던 딸의 임신을 대형 마트가 먼저 파악할 수 있었던 이유는 추천시스템에 있다. 임산부들은 향이 없는 로션을 주로 구매하고 칼슘이나 마그네슘 영양제를 구매한다는 고객 특성을 분석하는 알고리즘을 개발했기 때문에 유사한 구매 패턴을 보이는 고객에게 출산용품 할인쿠폰을 보내는 마케팅이 가능했다(Forbes, 2012).

코로나로 요즈음 집에서 유튜브나 넷플릭스를 즐기는 사람들이 많아졌다. 이런 동영상 사이트에 접속하면 내가 좋아할 만한 영상물을 첫 화면에 배열하는데, 최근에 오징어게임 영상을 즐겨 봤다면 다음번에는 틀림없이 이런 장르와 관련된 영상물을 초기 화면에 배치하는 것을 쉽게 확인할 수 있다.

추천시스템의 원리

그렇다면 추천 시스템은 어떤 원리로 움직이는 알고리즘일까. 추천 시스템은 사람들이 인터넷 공간을 머물거나 돌아다니는 행동을 분석해서 정보를 수집한다. 만약 우리가 책을 사기 위해 서점을 직접 방문한다면 서점 이곳저곳을 다니며 책을 꺼내 본 행동들은 기록으로 남지 않고 책을 구입하는 순간에만 우리의 행동이 결제라는 형태로 기록된다. 하지만 인터넷 서점을 방문한다면 웹페이지로 구성된 사이트의 내용을 클릭을 통해 확인하게 되므로 어떤 키워드로 검색했는지, 어떤 유형의 책을 찾아보았는지, 특정 책과 관련된 정보를 읽어본 시간은 얼마나 되는지, 사이트에 얼마나 오랫동안 머물렀는지, 얼마나 자주 사이트를 방문하는지 등의 정보가 로그파일(log file)의 데이터로 모두 기록된다. 인터넷 서점은 우리가 책을 구매하지 않더라도 방문 기록 데이터를 분석하면 어떤 종류의 책에 관심이 있는지를 알 수 있다. 추천은 이런 데이터를 분석해서 이용자에게 관련 정보를 제안한다. 추천에 사용되는 알고리즘으로는 인구통계학적 추천 알고리즘과 협업필터링 알고리즘, 내용 기반 필터링 알고리즘 등이 있다.

인구통계학적 추천 알고리즘

인구통계학적(demographic) 추천은 사용자의 인구통계학적 정보를 기반으로 추천을 하는 것을 말한다. 스마트폰으로 네이버 초기 화면을 띄우면 ‘동일 연령대 남자 인기 주제판’과 같은 제목으로 정보를 제공하는 서비스를 확인할 수 있다. 이 기능은 스마트폰 소유자의 성과 연령 정보를 이용해서 동일 연령대의 이용자가 좋아할 만한 정보를 제공한다. 물론 성과 연령대가 같다는 것만으로 그 사람의 취향을 파악할 수는 없다. 정확한 추천을 위해서는 사람들의 소비 패턴이나 제공하려는 상품이나 서비스의 특성 정보 분석이 필요하다. 실제로 쓰이는 추천 알고리즘은 이러한 알고리즘의 조합이다.

협업필터링 알고리즘

협업필터링 알고리즘은 이용자의 소비 행태를 분석해서 아직 구매하거나 이용하지 않았지만 좋아할 만한 상품이나 서비스를 예측해서 추천하는 알고리즘이다. 그렇다면 좋아할 만한 상품이나 서비스 목록은 어떻게 선정하는 것일까. 영화 추천 서비스인 왓챠(Watcha) 이용자라고 가정해 보자. 왓챠에 회원 가입을 하려면 자신이 본 영화에 평점을 매겨야 한다. 별 한 개부터 다섯 개까지 매기는 영화 평점 정보가 기록되면 내가 준 별점 정보와 비슷하게 별점을 준 이용자를 찾을 수 있다. 만약 나와 취향이 비슷한 이용자가 최신 영화를 보고 좋은 평점을 주었다고 하면 그 영화는 내가 좋아할 확률이 높을 것이다. 따라서 추천 시스템은 내게 그 영화를 보라고 권유할 것이다. 따라서 협업 필터링 알고리즘의 핵심은 수많은 이용자 중에서 취향이 비슷한 사람들을 찾아내는 것이다.

내용 기반 필터링 알고리즘

이용자가 아니라 상품이나 서비스 자체에 대한 분석을 기반으로 한 추천 알고리즘이 내용 기반 필터링이다. 감독, 장르, 출연 배우 등 영화의 특성 분석을 기초로 사용자가 좋아할 만한 영화를 예측하여 추천하는 알고리즘이다. 즉 영화 하나하나마다 특성을 분석해서 분류해 놓으면 사용자의 영화 감상 취향을 파악해서 아직 감상하지 않은 영화 중에서 좋아할 만한 영화를 추천하는 방식이다.

내용 기반 필터링 방식을 사용하면 아무도 감상하지 않은 새로운 영화나 음악을 추천할 수 있다는 장점이 있다. 반면 영화나 음악을 특정 장르로 분류한다는 것이 쉽지 않으며 또 분류 작업을 전문가가 직접 일일이 해야 한다는 어려움이 있다.

넷플릭스의 추천 알고리즘

비디오 대여점에서 출발해서 유료 동영상 제공 사이트의 절대 강자가 된 넷플릿스(Netflix)의 경쟁력은 추천 알고리즘이다. 시네매치(Cinematch)라는 이름의 추천 알고리즘의 성능을 강화하기 위해 2006년 넷플릭스는 시네매치보다 10% 이상 예측력을 높이는 알고리즘을 개발한 팀에게 상금 100만 달러를 걸었다. 48만 명의 사용자가 1만7000편의 영화를 평가한 1억 개의 데이터도 제공했다. 처음 2년 동안은 수상자가 없었지만 2009년에 일곱 명으로 구성된 다국적 팀이 10% 성능을 높인 알고리즘을 개발하고 상금을 타게 된다.

넷플릭스는 고객 데이터 분석을 적극 활용하는 대표적인 기업이다. 첫 자체 제작물 미니시리즈인 <하우스 오브 카드(House of Cards)>도 사용자의 시청 습관 데이터 분석 결과를 바탕으로 감독과 주연 배우, 시나리오의 조합을 결정했기 때문에 작품이 성공할 것을 미리 예측했다는 일화가 있다.

넷플릿스는 2006년 양자이론(Netflix Quantum Theory) 프로젝트를 선보였다. 이는 영화를 구성하는 요소를 매우 세밀하게 구분하는 작업이다. 36쪽에 달하는 영화 평가지침서를 기초로 선정성과 로맨틱한 정도, 등장인물의 도덕성, 시나리오의 결말 등 다양한 정보를 입력한다(Atlantic, 2014). 미국 잡지 ≪애틀랜틱≫의 언론인 마드리갈(Alexis Madrigal)은 넷플릭스의 사이트를 분석해서 7만 7000개에 달하는 장르로 구분했다. ‘강한 여주인공이 나오는 로맨스 영화’, ‘유럽을 무대로 한 1960년대 영국 SF영화’, ‘책을 원작으로 한 평론가가 높은 점수를 준 액션영화’와 같은 식으로 영화를 세밀하게 구분한다(크리스토프 드뢰서, 2018). 일반 기업은 상상조차 하기 어려운 작업이다. 이 기업이 성장하는 이유는 분명하다.

참고문헌

크리스토프 드뢰서(2018). 전대호 옮김. 󰡔알고리즘이 당신에게 이것을 추천합니다󰡕. 해나무.

Atlantic(2014). How Netflix Reverse-Engineered Hollywood. Alexis C. Madrigal. Jan 2, 2014

Forbes(2012). How Target Figured Out A Teen Girl Was Pregnant Before Her Father Did. By Kashmir Hill. Feb 16, 2012.

New York Times(2013). Giving Viewers What They Want. By David Carr. Feb. 24, 2013.

Wikipedia, https://en.wikipedia.org/wiki/Web_search_engine