‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은 선택지에서 원하는 것을 고르려면 너무나 많은 시간이 걸리기 때문에 방대한 아이템을 다루는 서비스에는 추천 시스템이 필수다. 이 책은 추천 시스템을 도입하고자 하는 독자나 조직이 우선적으로 읽어야 할 입문서다. 추천 시스템 개발자인 저자들이 경험한 성공 사례와 실패 사례를 살펴보면서 어떤 서비스에 추천 시스템을 조합하고 적용할 것인가에 중점을 두고 구성했다. 추천 알고리즘을 자세히 파고드는 대신 알고리즘 개요와 실무 활용 방법을 중심으로 설명한다. 이 책이 여러분의 서비스가 더욱 진화할 수 있도록 적합한 추천 시스템을 개발하는 데 도움이 될 것이다.
저자소개
저자
가자마 마사히로
도쿄 대학 대학원에서 추천 시스템에 관해 연구했고 졸업 후에는 리크루트(Recruit)와 인디드(Indeed)에서 추천 시스템 개발과 프로젝트 매니지먼트를 경험했다. 거기서 개발한 알고리즘을 추천 시스템 국제 학회 RecSys에서 발표했다. 현재는 유비(Ubie) 주식회사에서 데이터 사이언스 조직을 세우고 다시 의료 분야 머신러닝 상품 개발에 매진하고 있다.
저자
이즈카 고지로
쓰쿠바 대학 대학원에서 수리 최적화에 관해 연구했고 졸업 후에는 야후 주식회사에 입사했다. 현재는 주식회사 구노시(Gunosy)에서 추천 시스템을 개발하고 있다. 쓰쿠바 대학 대학원(사회인 박사)에 재학 중이다. 추천 시스템에 관해 연구하고 있으며 추천 시스템 국제 학회인 RecSys 및 관련 학회에서 계속 논문을 투고, 발표하고 있다.
저자
마쓰무라 유야
교토 대학 대학원에서 추천 시스템에 관해 연구했고 졸업 후에는 원티들리(wantedly) 주식회사에 입사해 추천 시스템 개발팀 설립 멤버가 되었다. 현재는 같은 팀의 리더로서 개발부터 프로젝트·프로덕트 매니지먼트까지 폭넓게 책임을 맡고 있다. RecSys2020의 자매 워크숍인 RecSys Challenge 2020에서 3위에 입상했다.
역자
김모세
소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 부문에서 소프트웨어 개발에 참여했다. 재미있는 일, 나와 조직이 성장하고 성과를 내도록 돕는 일에 보람을 느껴 2019년부터 번역을 시작했다. 지은 책으로 『코드 품질 시각화의 정석』(지앤선, 2015)이 있고 다수의 영어/일본어 IT 서적들을 번역했다.
사실 추천 시스템은 전부터 주위에 있었습니다. 레스토랑의 추천 메뉴, 서점의 인기 도서 순위도 일종의 추천 시스템입니다. 일상에서 결정해야 하는 횟수가 늘고 선택지가 다양해짐에 따라 추천 시스템에 대한 수요가 점점 높아졌습니다. 추천 알고리즘도 비약적으로 발전하여 인기가 많은 것을 추천했던 획일적인 방법에서 벗어나 개개인의 흥미나 관심에 부합하는 맞춤형 추천이 가능합니다.
사용자가 선호하는 아이템을 빠르게 보여주면 사용자 만족도가 높아지며 매출과 회원 수 증가로도 이어집니다. 하지만 실제로 서비스에 적용할 때는 다양한 문제에 직면하게 됩니다. 프로젝트 구성원은 어떻게 꾸려야 좋은지, 어떤 추천 시스템을 조합해야 하는지, 어떤 데이터를 사용해야 하고 어떻게 추천 결과를 제시하는 것이 좋으며, 배포 전 온라인에서 추천 시스템을 평가하기 위해서는 어떻게 해야 하는지 등의 문제입니다. 이 책에서 바로 그런 고민들을 다룹니다.
추천 시스템은 이제 ‘있으면 좋은 기능’이 아니라 ‘없으면 안 되는 기능’입니다. 실제 추천 시스템을 구축해본 경험이 있는 저자들이 전하는 도입 노하우를 익혀보세요. 여러 아이템 가운데 가치 있는 것을 선정해 사용자의 의사 결정을 지원하는 추천 시스템을 만드는 데 도움이 될 것입니다.
내용 구성
[1장 추천 시스템]
추천 시스템의 개요와 역사를 몇 가지 사례와 함께 설명합니다. 그리고 추천 시스템 종류를 간략하게 알아보고 검색 시스템과의 차이도 설명합니다.
[2장 추천 시스템 프로젝트]
추천 시스템 개발에 필요한 팀원과 프로젝트 진행 방법을 설명합니다.
[3장 추천 시스템의 UI/UX]
추천 시스템의 UI/UX에 관해 소개합니다. 추천 아이템을 제시하는 방법에 따라 클릭 횟수나 구입 횟수를 늘릴 수 있기 때문에 사용자 경험 설계는 중요합니다.
[4장 추천 알고리즘 개요]
대표적인 추천 알고리즘인 협조 필터링과 내용 기반 추천을 설명합니다. 그리고 추천 알고리즘에 입력되는 평갓값 데이터를 암묵적인 것과 명시적인 것으로 나누어 소개합니다.
[5장 추천 알고리즘 상세]
인기도 추천과 행렬 분석 알고리즘에 관해 각각 설명하고 실제 서비스에 조합할 때 주의해야 할 점에 대해서도 살펴봅니다. 그리고 MovieLens라는 영화 데이터셋을 사용해 각 알고리즘을 적용하는 코드도 소개합니다.
[6장 실제 시스템과의 조합]
뉴스 전송 추천 시스템을 예로 들어 추천 알고리즘을 실제 서비스에 조합할 때 시스템을 어떻게 구성하는지 설명합니다. 서버 구성과 배치 처리 구조, 로그 설계 등 추천 시스템 아키텍처에 관해 살펴봅니다.
[7장 추천 시스템 평가]
다양한 추천 시스템 평가 지표를 설명합니다. 간단한 예측 오차 같은 지표뿐 아니라 추천한 아이템의 다양성을 측정하는 지표나 의외성을 측정하는 지표도 살펴봅니다.
인터넷 플랫폼을 이용하거나 서비스 제공을 하려고 할 때 예전에는 리뷰를 활용했다면(물론 현재도 리뷰가 해당 당사자 모두에게 중요한 역할을 하긴 하지만) 이제는 선호도를 확인하거나 유도하게 하기 위해 알고리즘을 활용한다. 그러다 보니 이 책 소개에도 있는 것처럼 이제는 있으면 좋은 기능이 아니라 없으면 안되는 기능이 되었다.
그러다 보니 주위에서도 이와 관련된 이야기를 하는 것을 종 종 들을 수 있다. 예를 들면 이런식이다. 한 번은 버스에서 대학생으로 보이는 여학생 두명이 유튜브 이야기를 하고 있었다. 어떤 한 주제를 보면 그와 연관된 주제가 연 이어 리스트로 보여지는 걸 보면서 어떻게 그렇게 되냐는 것이다. 그렇게 되도록 알고리즘이 설계되어 있기 때문이다. 이 것 또한 추천 시스템 중 하나일 것이다. 최근 다양한 플랫폼을 이용해 본 사람들은 대부분 저 대학생들과 같은 의문을 모두 가져보았을 것이다. 이 책은 바로 그러한 궁금증을 풀 수 있는 동시에 그것을 활용할 수 있도록 프로젝트 구성 단계부터 온라인 배포 전 해야할 일까지를 다루고 있다.
[사진] (본책, p.9) 책의 구성을 간략하게 설명하고 있다.
이 책의 좋은 점 중 하나는 기술 적인 이야기로 바로 시작하는 것이 아니라 '입문용' 답게 추천시스템의 역사부터 다루고 있다는 점이다. 각 알고리즘 별 설명 중간 중간에도 도움이 되는 정보들이 있지만, 책 말미에서 또 (인지)편향이나 추론 등으로 인해 영향 받을 수 있는 부분까지 다루고 있어서 기술에 대한 이해가 어렵지만, 추천 시스템에 대해 알고 싶은 독자들이 있다면 기술적인 부분들은 스킵하고 해당 부분만 선별해서 읽어도 도움이 된다는 점이다.
[사진] (본책, p.72, 82, 204) 단계별 활용법에 대해 그림과 도표를 제시하여 설명하고 있다.
저자가 일본인이라 일본 사례가 그림으로 제시된 경우도 많지만, 국내 사례도 함께 실려 있어 이해하는 데 많은 도움이 된다. 추천하는 이유를 제시하는 방법, 필터링 방식, 이용자의 로그 패턴 등을 분석, 활용해 어떻게 추천 알고리즘을 만들어야 되는지 가이드 해주고 있다. 알고리즘과 관련해서는 왕초보 수준이다 보니 입문용이라고 해도 쉽지는 않았지만, 구석 구석 알게 모르게 도움이 되는 정보들이 많았다. 꼭 알고리즘을 이용해야 되는 분들이 아니라도 추천 시스템이 궁금하다면 앞서 말했든 필요 부분만 선별해 읽어보는 것도 좋을 것 같다.
직접 검색하던 능동적인 행위는 이제 시스템이 추천해 주는 행위로 바뀌고 있다. 웹상에서 하는 행위는 수집되어 무심코 화면 앞에 앉아 있는 나에게 뭔가를 보여준다. 정보의 양이 많아질수록 검색하는 행위는 품이 많은 행위가 되었고 알아서 찾아주는 시스템은 반드시 필요한 것이 되었다. 많은 플랫폼 기반 산업은 추천 시스템을 반드시 탑재해야 하게 되었다.
막연히 AI로 학습하면 되겠지라고 생각하고 있었지만 막상 그것이 어떻게 시스템 속으로 들어가 작동하는지는 알 수 없었다. 이것을 알려면 기초부터 차근차근 알아가야 했다. 추천 시스템 관련 도서 자체가 많이 없기 때문일까. 이 책은 기초부터 활용까지 설명하고 있다. 뒤로 갈수록 어려워져 시간이 많이 소요되는 것도 사실이다.
처음 4장은 추천 시스템과 그것의 중요성에 대해 얘기한다. 어떤 이유로 추천 시스템이 필요하고 어떻게 구현할 것인지에 관한 것들이다. 그리고 취급하는 정보에 따라서 다른 추천 아이템이 필요하며 상대에 따라서도 변화가 필요하다. 단순히 관심사와 비슷한 것들을 보여줄 수도 있고 관련된 상품을 추천할 수도 있다. 막연히 둘러보러 온 고객에 대해서는 다양한 정보를 보여줘야 한다. 다른 사람들의 정보를 이용한 랭킹을 이용하는 것도 방법이다. 자주 들리지 않는 고객에는 맞춤형 정보를 적당한 간격을 두고 발송하는 것 또한 추천시스템이 몫이다.
추천 시스템은 그야말로 '없으면 안 되는 기능'이 되어 버렸다. 추천의 정확도가 높아지고 있기도 하며 데이터 또한 점점 쌓이고 있기 때문이다. 추천 시스템에 대해서는 여러 가지 주의할 점도 있다. 바로 편향 데이터를 추천하게 되는 부분인데 이것은 편향의 문제를 넘어 차별의 문제로 번질 수 있기 때문에 주의가 필요하다.
5장부터는 파이썬을 이용한 알고리즘을 실습해 볼 수 있다. 마지막 부근에서는 AI에 대한 설명도 잠깐 해주기도 한다. 간단한 실습이 끝나면 실제 운영에 대해 설명한다. 시스템 속에 추천 시스템을 어떻게 운용할 것인지에 대해서도 설명한다. 이 부분은 다소 어려워서 이해하기 힘든 부분이 있었다. 어느 정도 지식이 쌓이면 활용하기 좋을 듯했다.
책은 입문자가 천천히 익혀나갈 수 있도록 해두었지만 분명 추가적인 학습도 필요할 듯했다. 책 내에서는 또 다른 책을 추천하기도 하는데 아무래도 초반과 후반의 난도 차이가 심해서 그런 듯하다. 그럼에도 추천 시스템 전반을 이해하기에는 괜찮은 책이 아닌가 싶다.
겉모습은 추천시스템인지 모르고 사용하는 경우도 많고, 같은 추천시스템이라도 그 구성은 매우 차이가 많이 납니다.
요즘은 머신러닝, 딥러닝을 통한 다양한 추천 알고리즘을 구현할수 있습니다.
넷플렉스, 멜론, 쇼핑몰, 유트브 추천 알고리즘등 개인화된 정보를 가지고 조금더 편리한 서비스 및 매출, 구매유도를 하기 위해서 곳곳에 적용되는 사례는 이제 너무나 당연한 이야기가 되었습니다.
예전에는 추천이라는 주제는 대학교 연구과제로도 많이 연구한 학문분야 입니다.
검색엔진에서 "추천 알고리즘"을 검색해서 사용하기 보다, 기본에 충실한 추천 시스템을 구성해보려고 하고
그 근간이 되는 원리를 학습하기에 좋은책으로 조금더 책의 내용을 살펴보려고 합니다.
■ 추천이 왜 중요할까?
· 조금 근본적이고 원칙적인 이야기 이기는 하지만, 추천이라는 키워드는 항상 서비스 측면에서 중요한 부분으로 여겨집니다.
저의 생각은 추천은 사람들의 시간을 줄여주는 의미가 있지 않나 생각이 듭니다. 지금 시점에 "유트브 맞춤 영상", "트위터 팔로우 추천", "서점에서 해당 책을 본 다른 추천" 이러한 기능은 실제 나와 성향이나, 필요하거나, 관심사가 비슷한 사람들이 했던 행동기반으로 다양한 정보가 제공되어 집니다.
· 추천을 구성하는 프로세스는 크게 3가지로 정의합니다.
1) 개요 추천 (개인화 없음) : 모든 사용자에게 동일한 정보를 제공하는 방식
2) 연관 아이템 추천 : 각 아이템 간에 유사도를 사용
3) 개인화
■ 추천시스템 알아가기
<검색엔진 vs 추천시스템>
· 검색엔진도 유사도 설정을 통해서 연관 아이템등을 제공하는 방식도 있다. 검색도 하나의 정보를 찾기위한 기술이고 두가지 항목에 대해서 비교한 표입니다. 비교표가 눈에 들어게 잘 되어 있습니다.
<추천 시스템의 UI/UX는 어떻게 구성할까?>
· 기술적인 부분도 중요하지만, UX를 구성할때 어떻게 되어 하면 조금더 쉽게 개발한 추천정보를 제공할지에 대해서 설명하는 chapter가 있는 부분도 흥미로운 내용입니다. 구성을 하기 위해서 4가지 부류로 구분을 하여서 접근을 하라고 합니다.
1) 적합 아이템 발견 : "서울역 근처에 식사하는 식당 찾기"
2) 적합 아이템 나열 : "가능한 모든 서비스를 나열하는 방식"
3) 아이템 계열 소비 : "열람, 소비하는 동안 추천된 아이템 계열 전체에서 가치를 찾는 방식"
4) 서비스 내 체류 : "특별한 목적은 없는 경우"
이렇게 구분된 사항만 보면 잘 파악하기기 힘들다. 책에서 안내하는 화면 예시를 보면 조금 더 이해하기가 쉽다.
그리고 이책은 비개발자분들이 추천관련된 사항을 개발자 조직과 의사소통을 원할하게 하기 위해서 관련 용어 및 개념을 잡는 것을 책의 중요한 관점으로 설명하고 있으니 전반적인 개념을 잡는 목적으로도 좋은 입문책인거 같다.
■ 추천 알고리즘에 대해서
· 크게 분류는 2가지로 구성이 됩니다. 내용기반 필터링은 우리가 기본적으로 생각하는 수집된 데이타를 기반으로 유사도를 계산해서 추천하는 알고리즘 입니다. 이때, 책이라면 아이템의 제목, 장르, 출판일등의 속성과 사용자의 과거 이력등의 프로필 정보등을 활용합니다.
메모리 기반은2가지 방식이으로 구성되어 있는데, 기준을 추천인과 비슷한 추천인을 찾는 방식, 다른 방식은 선호하는 아이템과 비슷한 아이템을 찾는 방식으로 구성되어 있어서, 추구하고 찾으려는 관점으로 접근하는 방법입니다. 모델 기반은 미리 데이터의 규칙성을 학습한 모델을 미리 만들어두어서 사용하는 방식입니다.
· 추천 알고리즘에 대해서 다양한게 존재하는데 이러한 알고리즘중에 10개 이상 실습을 하면서 동작원리를 파악합니다.
코드는 Python으로 작성되어 있습니다. 파이썬을 통해서 쉽게 설치가 가능한 다양한 라이브러리를 사용합니다. pandas, numpy, sklearn, implicit, xlearn등 다앙한 라이브러리를 이용합니다. 아마 보시면서 머신러닝책에서 소개되는 부분도 있고, 예전에 어디서 경험한 코드를 보실수도 있는데, 머신러닝을 통한 추천알고리즘에 대한 부분이고 이책에서는 조금 더 다양하게 추천이라는 영영에 다양한 내용으로 구성된 것을 확인하실수 있습니다.
■ 실제 서비스에는 어떻게 배포를 할까?
· 가장 쉽게 설계 할수 있는 방법은 사용자별, 또는 그룹별로 추천된 정보를 batch성으로 DB에 넣어서 처리하는 방식이다.
이렇게 구성이 되면 실시간성의 확보에 대한 고민을 할것이고, 배치 주기도 고민하게 되는것은 당연한 부분이라고 생각이 듭니다.
· 책의 후반부에는 이렇게 만든 추천알고리즘이 정상적인지 검증하는 "추천시스템 평가" 부분이 있습니다.
개발을 하고 테스트 케이스를 만들고 검증을 하는 것처럼, 작성한 추천 알고리즘의 결과가 의도한 대로 정상 처리가 되고 있는지 확인하는 절차 침 과정은 반드시 필요하다고 생각됩니다.
추천 알고리즘에 대해서 설명 및 해당 알고리즘을 실제 서비스에 배포하기 위한 내용이 있는 부분, 추천 내용에 대한 검증기법등이 있는 부분은 책의 완성도를 높여주는 내용이라고 생각합니다. 이러한 부분은 운영하는 측면, 관리하는 측면에서 많은 도움 및 키워드들에 대해서 도움은 받을수 있는 부분입니다.
최근 어떤 서비스든 추천 시스템은 빠지지 않고 들어가고 있다. 그런 상황과는 별개로 추천 시스템에 대한 서적은 별로 없었는데, 이번에 한빛미디어에서 입문자를 대상으로 한 서적이 출간되었다.
이 책은 크게 3가지 파트로 구성되어 있다. 1~4장은 추천 시스템의 개요, 도입 방법 등이 설명되어있고, 5장은 추천 시스템에서 사용되는 알고리즘을 설명한다. 6~8장은 실제 서비스에서 운용하는 방법에 대해 서술되어 있다.
먼저 1~4장은 추천 시스템이 왜 중요한지에 대해 설명하고 있다. 이 파트는 수식이나 알고리즘에 대해서는 등장하지 않아서, 비즈니스에는 관심이 있지만 시스템에 대해서 잘 모르는 사람도 가볍게 읽을 수 있다. 다각적인 시각에서 추천 시스템에 대해서 설명한다.
5장에서는 분위기가 많이 달라진다. 파이썬 코드를 통해 구체적인 시스템 개발에 대해서 설명한다. 다양한 알고리즘에 대해서 간략하게 설명하고, 실제 코드를 통해 알고리즘을 실행해볼 수 있다. 간략하게 설명되어있기 때문에 다소 코드를 읽는 게 어려울 수 있고, 알고리즘에 대한 설명도 좀 더 정확하게 이해하기 위해서는 따로 조사해야 한다.(책에서도 이러한 부분에 대해서는 언급하고 있음.)
6~8장은 실제 어떤 구조로 운용해야 하는지에 대해서 다루고 있다. 예를 들면, 어떻게 로그를 남길 것인가, A/B 테스트는 어떻게 진행할 것인가와 같은 내용을 다룬다.
초심자가 추천 서비스에 대해서 공부하기에는 적합한 책인 것 같다. 내용이 크게 어렵거나 부실하지 않고 밸런스를 잘 갖췄다고 느껴졌다. 다만 실제 서비스에 적용하기 위해서는 각 토픽에 대한 추가적인 학습이 필요할 것 같다.
이 책은 300페이지도 되지 않는 얇은 교과서 정도의 두께로 입문이라는 제목에 걸맞게 초보자를 위한 친근한 입문서이다.
추천 시스템에 대한 역사와 원리부터 실제 사례를 바탕으로 한 응용법까지 추천 시스템에 대한 복잡한 지식을 쉽게 풀어서 설명해주고 있다.
넷플릭스에서 A 영화를 시청하고 나면 B, C, D 등의 영화가 추천이 되는 경험을 해보았을 것이다. 이때 넷플릭스에서 사용한 추천 알고리즘과 활용법을 초보자의 시각에서도 이해할 수 있을 정도로 쉽게 설명해주고 있다.
수많은 신경망 알고리즘과 그 활용 예제 코드까지 실제 동작 방식과 어떻게 구현하는지를 상세하게 안내해주므로 독자들은 그저 따라하기만 하면 된다. 나는 이번에 자연어처리에 관한 프로젝트를 담당하게 되었는데 관련 내용도 수록되어 있어 꽤나 흥미롭게 읽었고 갑갑했던 시야가 확 트여서 만족스러웠다.
추천 알고리즘에 대한 기본 개념을 습득하고 실제로 동작하는 추천 시스템을 설계하는 과정을 익히고 싶은 개발자라면 이 책을 꼭 읽어보길 바란다.
’프레임‘은 넷플릭스 홈페이지에서 사용자에게 작품 목록을 보여주는 방식으로, 제목을 붙여 구분하고 그 성격에 맞게 선별한 작품을 사용자에게 선택적으로 보여준다. 사용자는 흥미가 생기는 프레임에 주목하여 해당 프레임의 작품만 살펴보면 시청할 작품을 빠르게 선택할 수 있다. 이 구조를 달성하기 위해 프레임 타이틀 선택 방법, 각 프레임에서 중복되는 작품이 있을 때 삭제하는 방법, 알고리즘을 업데이트했을 때 평가하는 방법 등 다양한 알고리즘을 조합했다. 작품의 섬네일을 정하는 것도 추천 시스템의 하나이다. 사용자마다, 또는 시청 시점마다 작품 목록 화면에 보이는 작품의 섬네일 이미지는 달라지는데, 넷플릭스에서는 다양한 섬네일 이미지를 가지고 A/B 테스트를 통해 반응이 좋은 섬네일을 분석하여 개인별로 최적화된 섬네일 이미지를 제시하기 때문이다. 이 개인별 이미지 최적화에는 contextual bandits라는 방법을 사용하는데 이는 사용자가 과거에 열람한 작품들, 사용 국가, 사용 기기 등의 특징량을 조합해 활용한다.
추천 시스템이 적용된 기능들은 넷플릭스 서비스가 사용자들의 시청 시간을 늘리는 데에 큰 역할을 하고 있다. 그 외에도 유튜브나 온라인 쇼핑몰, 광고 등 추천 시스템은 많은 분야에서 거의 필수에 가까운 역할을 하고 있다. 그렇다 보니 추천 시스템에 관심이 갈 수밖에 없다.
개발자 입장에서 이 책은 추천 시스템에 대해 이해하고, 실제로 사용자 데이터를 기반으로 추천 시스템을 구축해 볼 수 있다는 점에서 유용했다. 그 외에도 프로덕트 매니저나 UI/UX 디자이너라면 추천 시스템 개발자나 데이터 과학자와 원만하게 소통하는 데에 필요한 추천 시스템 기반 지식을 쌓을 수 있을 것이다. 또 추천 시스템에 관해 공부하기 시작하는 단계의 연구자나 학생이라면 이 책을 통해 추천 시스템의 전반을 둘러보고, 추가로 논문이나 책을 통해 더 깊이 이해하고 연구하는 데에 도움이 될 수 있을 것이다.
과거와 다르게 현재는 물밀듯이 들어오는 정보로 인하여 자신이 원하는 정보를 직접적으로 찾기가 매우 어렵습니다. 하지만 구글 광고나 유튜브를 보면 신기하게도 관심 있을 만한 정보들을 속속 골라서 다양하게 제공해 줍니다. 어떻게 이러한 과정이 가능한 걸까요?
이 책은 그러한 시스템의 역사부터 시작하여 전반적인 디자인, 설계 방법 그리고 실제 적용하여 직접 서비스를 제공하는 방법까지 다루고 있습니다.
1장에서는 추천 시스템의 역사를 설명하며 우리 주변에서도 흔하게 볼 수 있었던 경우를 예시로 들어줍니다. 이처럼 추천 시스템의 발달은 정보 수준의 증가와 밀접하게 연관이 있음을 어필합니다.
2장에서는 개발 스킬에 필요한 과정과 어떤 프로젝트를 정의할 수 있는지 설명한 뒤, 3장에서는 사용자인터페이스에 대한 중요성을 주장하며 이러한 디자인이 사용자에게 어떤 경험과 만족감을 줄 수 있는지 설명합니다.
4장과 5장에서는 추천 알고리즘에 관한 전반적인 내용을 다룹니다. 이 부분에서 추천 알고리즘에 대한 다양한 지식을 얻을 수 있어서 좋았습니다. 특히 5장의 알고리즘 비교를 통해 정확도, 계산 속도, 콜드 스타트 문제 대응(처음 정보가 없으면 사용자에게 부정확한 추천 정보를 제공할 수 있는 문제) 등 다양한 수치에 대해 비교해 놓은 부분을 한눈에 볼 수 있었고, 이를 어떤 경우에서 사용하면 되는지 감을 익힐 수 있었습니다.
이후 6장과 7장에서는 직접 클론 코딩을 통해 추천시스템을 설계하고 이를 얼마나 정확하게 출력하는지 평가하는 과정을 거치면서 무엇이 문제이고 이를 어떻게 개선할 수 있는지 전방적인 방향을 제시하고 있습니다.
단점이라면 약간의 시스템적 용어나 공식 등이 존재하기 때문에, 비전문가가 바로 읽기에는 어려움이 따르나, 추천 시스템 관련 웹, 앱 개발 공부를 하시는 개발자들에게는 필수 입문 도서라고 할 수 있으리라 생각됩니다.
<< 이 글은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. >>
유튜브나 넷플릭스 등 여러 서비스에는 사용자에게 이 콘텐츠(영상, 음악, 상품)도 이용해 보라고 추천을 해주고 있고, 실제로 추천해 주는 아이템을 보면 깜짝 놀랄 정도로 나에 대한 특성을 잘 반영한다는 느낌을 받는다. 평소에 추천 시스템에 대해 궁금했었는데 최근에 새로 나온 추천 시스템 책이 나와 리뷰를 하고자 한다.
이 책에서는 추천 시스템을 이렇게 정의하고 있다.
여러 후보 가운데 가치 있는 것을 선정해서 의사결정을 지원하는 시스템
이 책을 읽는 대상으로는 추천 시스템에 대해서 궁금한 개발자, 연구원 등 다양하겠지만
챕터 5의 알고리즘 부분을 실행시키며 확인해 보기 위해 기초적인 python과 numpy, pandas 패키지에 대한 내용을 알고
있어야 조금 수월하게 진행이 가능하다.
챕터 1~3장까지는 추천 시스템의 개요에 대해서
챕터 4~5장은 추천 시스템 알고리즘에 대해서 설명을 하고 있다.
챕터 1~4까지 추천 시스템의 개요에 대한 부분은 이해하기 쉽게 설명되어 있으나,
챕터 5에서 알고리즘 부분 쪽은 내가 느끼기엔 조금 불편한 점과 오타도 있어서 아쉬웠다.
가장 큰 불편함은 코드의 파일명을 보고 내용을 유추해서 이게 지금 어떤 알고리즘에 대해서 설명을 하고 있는지 찾아야 했다.
책에서 설명하는 코드가 어떤 파일을 봐야 되는지 표시가 되었다면 더 좋았을 거 같다.
조금의 불편함과 오타는 있지만 그럼에도 불구하고 추천 시스템에 대한 입문서로서는 굉장히 좋다는 느낌을 받았다. 실무 환경에서의 알고리즘 선택법 뿐만 아니라 평가 방법 등 추천 시스템 전반적인 것을 잘 설명해 주기 때문에 입문하는 도서로서 추천드립니다.
- 해당 도서는 8장으로 나눠져 있으며 추천 시스템에 대한 소개를 시작으로 하여 추천 시스템의 요소 및 분류 및 콜드 스타트 등의 실제 현업에서 일어나는 일에 대한 대처를 기술하였다. 이론으로도 기초적인 평가방법부터 시작하여 자연어 처리, 딥러닝 등에 대한 기술도 해두었다. 실제 코드를 통해 실습할 수 있는 페이지들도 있지만 책의 두께에 대비하여 분량이 그렇게 많지는 않다.(파이썬 기반) 부록으로는 도메인에 따라 추천 시스템에 발생하는 문제들을 간략하게 기술해 두었다.
[ 이 책에서는 서비스에 다양한 추천 알고리즘을 적용할 때 만나게 되는 여러 가지 문제를 다룹니다 ]
우리가 생각하는 것보다 훨씬 오래 전부터 우리 곁에 존재했던 추천시스템의 역사, 매일 사용하는 넷플릭스나 아마존 같은 거대한 시스템에 추천시스템이 조합되어 있는 사례도 알아봅니다. 이를 통해 여러분은 단편적인 시각으로 바라보았던 추천 알고리즘을 다양한 방법으로 실무에 활용할 수 있게 될 것이며, 여러분이 가진 데이터를 고객에게 추천하는 방법에 대해서도 통찰력을 얻을 수 있을 것입니다.
이 책은 추천 알고리즘을 자세히 파고드는 내신 알고리즘 개요와 실무 활용 방법을 중심으로 설명합니다. 추천 시스템 개발에 필요한 팀원과 프로젝트 진행 방법이나 실제 UI/UX에 관한 소개를 통해 실무에서 적용하는 내용 위주로 구성되어있어서 배운것을 이론적인 내용 습득에서 끝나는게 아니라 적용해볼 수 있도록 친절히 안내해줍니다.
추천 시스템의 3요소에 대해 설명하며 처음에 접하시는 분들이 쉽게 이해할 수 있도록 내용이 구성되어있습니다. 그리고 추천 시스템 개발에 있어서 어떤 역량이 필요한지 큰 그림을 그려줍니다. 여러가지 능력이 필요한데 그 중 핵심 스킬들에 대해 상세히 소개하며 실제로 필요한 지식들을 알려줍니다. 결국 추천시스템을 구현했을때 어떤 것을 기대할 수 있는지 기대효과를 정의하는 것이 중요한데 그 핵심 내용이 기술되어 있습니다. 실제 분석가로 일하면서 이걸 왜 하는가? 이걸 함으로써 어떤게 기존보다 좋아지고 효과가 있는지를 고민하고 지표를 정하는게 중요하다고 느끼는데 추천시스템도 개발전에 목적을 명확히 해야 구현할 추천시스템이 정해지고 효과성 검증을 할 수 있겠구나라는 생각이 들었습니다. 결국 비즈니스 문제를 해결하기 위한 역량이나, 실제 데이터를 처리하고 추천시스템을 만드는 엔지니어링, 사이언스 능력 3박자가 골고루 갖춰져야하는 것 같습니다.
추천시스템 프로젝트 또한 일반적인 머신러닝 프로젝트와 비슷한 프로세스를 가지고 있으며, 하나의 예를 들어 구체적으로 설명해줍니다. 실제로 비즈니스상의 목적을 명확히 해야한다는것도 지속적으로 강조하고 있습니다. 그리고 추천시스템과 관련하여 꼭 나오는 문제인 콜드 스타트 문제에 대한 대응에 대해서도 상세히 설명해주고 있습니다.
평가 대상의 데이터셋을 설계하고 모델 학습이 완료된 뒤에는 평가 지표를 사용해 추천 모델을 평가합니다.(평가 지표란 학습한 모델의 성능이나 예측값의 좋고 나쁨을 측정하는 지표입니다.) 평가 지표에 대한 설명이나 추천시스템의 일반적인 평가지표들에 대해 이해가 쉽도록 설명해줍니다. 경우에 따라 어떤 지표를 보는게 좋은지에 대한 가이드를 제시해주기도 해서 좋았습니다.
대상 독자
추천시스템을 도입하고자 하는 조직
머신러닝/딥러닝에 관심있는 독자
개발자 또는 데이터 사이언티스트
프로덕트 매니저 또는 UI/UX 디자이너
연구자 또는 학생
<<추천 시스템 입문>>도서는 나온지 한 달이 안된 따끈따끈한 책입니다.(초판 1쇄 2023년 05월 8일) 추천시스템에 관심이 있어서 조금 찾아보면서 공부하곤 했는데 필수로 알아야하는 지식을 한 책에 담았다는것으로 완독을 하면 좋을 책이라고 생각합니다. 뿐만 아니라 머신러닝 평가지표도 상세히 기재되어있어서 아는 내용이라도 복습할 수 있다는 점에서도 좋습니다. 추천 시스템 공부는 이 책으로 시작하면 좋을 것 같고 UI/UX 및 구현 기법까지 상세하게 나와있어서 여러 직군에서 읽어도 금방 이해할 수 있을 듯 합니다. 믿고보는 OREILLY! 강추!
이 책은 추천 시스템에 대한 내용을 다루며, 정의, 등장 배경, 비즈니스에 따른 추천 시스템 선택 이유, 각 추천 시스템의 구현 예시 코드, UX/UI, 그리고 다양한 추천 시스템 적용 사례 및 발전 가능성에 대해 포괄적으로 다룬다. 이 책은 추천 시스템에 대한 이해를 처음으로 시작하는 사람들이나 전반적으로 관심을 가지고 있는 독자들에게 매우 적합한 자료라고 생각한다.
책을 통해 막연하게 궁금했던 내용들이 내 안에서 구체화되었으며, 더 나아가 비즈니스 분석의 중요성을 다시 한 번 깨닫게 되었다. 이 책은 독자에게 추천 시스템에 대한 포괄적인 이해를 제공하는데 큰 도움이 될것이다!
요즘은 거의 모든 온라인 기반 서비스에서 추천시스템을 활용하고 있는 것 같다. 추천시스템을 이용해서 이용자가 필요로 하는 상품을 빠르게 찾아주어 편의성을 높이거나, 추가 구매를 유도하거나, 서비스 이용 시간을 늘리는 등의 효과를 얻을 수 있기 때문이다. 특히 이런 추천서비스를 잘 활용하는 대표적인 기업으로는 넷플릭스와 아마존을 들 수 있는데, 넷플릭스는 추천시스템을 경유한 시청이 80%나 되고 아마존 또한 추천시스템을 경유한 매출이 35%나 된다고 한다. 이처럼 빅테크 기업에서도 적극적으로 도입해서 운영하는 추천시스템은 어떻게 구현하고 도입해야하는지에 대한 내용을 한빛미디어의 추천시스템 입문에서 잘 알 수 있다.
추천시스템입문은 각 추천 알고리즘의 설명과 구현에 대해서 관심있는 사람들이 입문할 수 있도록 친절하게 구성되어 있다고 생각한다. 또한 추천시스템을 도입하는 경우 가장 먼저 고려해야 할 부분이 정확도와 효과 측정에 관련한 부분인데 이 둘을 어떻게 판단할 수 있는지, 정확도에 대한 부분과 A/B test 등에 대한 설명도 포함되어 있어서 입문자에게 정말 맞춤이라고 느껴졌다. 추천 시스템에 대해서 관심이 생겨 공부하고 싶다면 이 책을 추천하고 싶다.
필요한 용품을 생각하던 시기에 스마트폰 어플에서 관련 상품이 추천되고 있다며 의아해하던 여러 경험담들을 듣고 있던 시기에 이 책을 접하게 되었다.
이 책에서는 추천 시스템을 '여러 후보 가운데 가치 있는 것을 선정해서 의사 결정을 지원하는시스템'이라고 정의하고, 이 정의에 기반하여 설명하고 있다. 서문에서 저자의 언급처럼, 사용자가 선호하는 아이템을 빠르게 수집해서 사용자의 만족도를 높이고, 이를 매출 및 회원수 증대로 연결하려는 다양한 노력을 통한 아이템 제시 방법, 즉 서비스 목적에 따른 추천 시스템 조합 및 적용 사례, 추천 알고리즘 개요와 실무 활용 방법을 알려주고 있다.
1장에서 4장까지는 추천 시스템의 개요, 종류, 개발 프로젝트 진행 절차, UI/UX, 대표 알고리즘인 협조 필터링과 내용 기반 추천에 대해 상세히 설명해준다.
5장에서는 MovieLens 영화 데이터셋을 활용하여 실무에서 직면하는 구체적인 알고리즘 구축과정의 문제점이나 그 대처방안에 대해 설명을 하고 있다. 이 책의 옮긴이 '김모세'님의 GitHub에서 상세한 주석이 달린 Python 코드를 다운로드해서, Jupiter Notebook이나 Google Colab에서 코드 실행 결과를 확인할 수 있다. 각각의 알고리즘에 대한 상세는 추후 별도의 학습이 필요하니, 전반적인 흐름에 대한 이해와 소개가 주 목표인것 같다.
6장에서는 추천 알고리즘을 서비스하기 위한 시스템에 대한 개요를 서술한다.
7장에서는 추천 시스템 평가방법에 대해 설명을 한다(처음 보는 수식들과 용어들을 소개한다)
8장에서는 추천 시스템에서 발생하는 편향에 대한 내용, 상호 추천 시스템(User-to-User 서비스) 등 추천 시스템 관련 발전적인 주제들에 대해서 설명하고 있다.
부록에서는 넷플릭스의 추천 시스템의 역사, 사용자-사용자 메모리 기반 방법을 설명한다.
이 책은 추천 시스템에 대한 개요를 상세히 설명하고, 적용방식 및 알고리즘에 대한 개략적인 소개를 하고, 각자의 필요에 따라 본문에 인용한 논문을 찾아보거나 책을 참고하여 상당한 심화학습으로 이어지기를 바란다는 저자들의 목표에 부합하는 입문 서적이다.