‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은 선택지에서 원하는 것을 고르려면 너무나 많은 시간이 걸리기 때문에 방대한 아이템을 다루는 서비스에는 추천 시스템이 필수다. 이 책은 추천 시스템을 도입하고자 하는 독자나 조직이 우선적으로 읽어야 할 입문서다. 추천 시스템 개발자인 저자들이 경험한 성공 사례와 실패 사례를 살펴보면서 어떤 서비스에 추천 시스템을 조합하고 적용할 것인가에 중점을 두고 구성했다. 추천 알고리즘을 자세히 파고드는 대신 알고리즘 개요와 실무 활용 방법을 중심으로 설명한다. 이 책이 여러분의 서비스가 더욱 진화할 수 있도록 적합한 추천 시스템을 개발하는 데 도움이 될 것이다.
저자소개
저자
가자마 마사히로
도쿄 대학 대학원에서 추천 시스템에 관해 연구했고 졸업 후에는 리크루트(Recruit)와 인디드(Indeed)에서 추천 시스템 개발과 프로젝트 매니지먼트를 경험했다. 거기서 개발한 알고리즘을 추천 시스템 국제 학회 RecSys에서 발표했다. 현재는 유비(Ubie) 주식회사에서 데이터 사이언스 조직을 세우고 다시 의료 분야 머신러닝 상품 개발에 매진하고 있다.
저자
이즈카 고지로
쓰쿠바 대학 대학원에서 수리 최적화에 관해 연구했고 졸업 후에는 야후 주식회사에 입사했다. 현재는 주식회사 구노시(Gunosy)에서 추천 시스템을 개발하고 있다. 쓰쿠바 대학 대학원(사회인 박사)에 재학 중이다. 추천 시스템에 관해 연구하고 있으며 추천 시스템 국제 학회인 RecSys 및 관련 학회에서 계속 논문을 투고, 발표하고 있다.
저자
마쓰무라 유야
교토 대학 대학원에서 추천 시스템에 관해 연구했고 졸업 후에는 원티들리(wantedly) 주식회사에 입사해 추천 시스템 개발팀 설립 멤버가 되었다. 현재는 같은 팀의 리더로서 개발부터 프로젝트·프로덕트 매니지먼트까지 폭넓게 책임을 맡고 있다. RecSys2020의 자매 워크숍인 RecSys Challenge 2020에서 3위에 입상했다.
역자
김모세
소프트웨어 엔지니어, 소프트웨어 품질 엔지니어, 애자일 코치 등 다양한 분야의 소프트웨어 개발에 참여했다. 재미있는 일, 나와 조직이 성장하도록 돕는 일에 보람을 느껴 2019년부터 번역을 하고 있다.
사실 추천 시스템은 전부터 주위에 있었습니다. 레스토랑의 추천 메뉴, 서점의 인기 도서 순위도 일종의 추천 시스템입니다. 일상에서 결정해야 하는 횟수가 늘고 선택지가 다양해짐에 따라 추천 시스템에 대한 수요가 점점 높아졌습니다. 추천 알고리즘도 비약적으로 발전하여 인기가 많은 것을 추천했던 획일적인 방법에서 벗어나 개개인의 흥미나 관심에 부합하는 맞춤형 추천이 가능합니다.
사용자가 선호하는 아이템을 빠르게 보여주면 사용자 만족도가 높아지며 매출과 회원 수 증가로도 이어집니다. 하지만 실제로 서비스에 적용할 때는 다양한 문제에 직면하게 됩니다. 프로젝트 구성원은 어떻게 꾸려야 좋은지, 어떤 추천 시스템을 조합해야 하는지, 어떤 데이터를 사용해야 하고 어떻게 추천 결과를 제시하는 것이 좋으며, 배포 전 온라인에서 추천 시스템을 평가하기 위해서는 어떻게 해야 하는지 등의 문제입니다. 이 책에서 바로 그런 고민들을 다룹니다.
추천 시스템은 이제 ‘있으면 좋은 기능’이 아니라 ‘없으면 안 되는 기능’입니다. 실제 추천 시스템을 구축해본 경험이 있는 저자들이 전하는 도입 노하우를 익혀보세요. 여러 아이템 가운데 가치 있는 것을 선정해 사용자의 의사 결정을 지원하는 추천 시스템을 만드는 데 도움이 될 것입니다.
내용 구성
[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 서비스) 등 추천 시스템 관련 발전적인 주제들에 대해서 설명하고 있다.
부록에서는 넷플릭스의 추천 시스템의 역사, 사용자-사용자 메모리 기반 방법을 설명한다.
이 책은 추천 시스템에 대한 개요를 상세히 설명하고, 적용방식 및 알고리즘에 대한 개략적인 소개를 하고, 각자의 필요에 따라 본문에 인용한 논문을 찾아보거나 책을 참고하여 상당한 심화학습으로 이어지기를 바란다는 저자들의 목표에 부합하는 입문 서적이다.
‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은 선택지에서 원하는 것을 고르려면 너무나 많은 시간이 걸리기 때문에 방대한 아이템을 다루는 서비스에는 추천 시스템이 필수다. 이 책은 추천 시스템을 도입하고자 하는 독자나 조직이 우선적으로 읽어야 할 입문서다. 추천 시스템 개발자인 저자들이 경험한 성공 사례와 실패 사례를 살펴보면서 어떤 서비스에 추천 시스템을 조합하고 적용할 것인가에 중점을 두고 구성했다. 추천 알고리즘을 자세히 파고드는 대신 알고리즘 개요와 실무 활용 방법을 중심으로 설명한다. 이 책이 여러분의 서비스가 더욱 진화할 수 있도록 적합한 추천 시스템을 개발하는 데 도움이 될 것이다.
[대상 독자]
- 데이터를 분석해 각 고객에게 맞춤 서비스를 제공하고 싶은 개발자, 데이터 과학자
- 추천 시스템을 업무 시스템에 접목하기 위한 교두보를 배우고 싶은 개발자, 기획자
- 추천 시스템 개발을 위해 개발자와 소통해야 하는 프로덕트 매니저, 기획자
- 추천 서비스의 사용자 경험을 책임지는 UI/UX 디자이너
[주요 내용]
1 부 생활 데이터로 배우는 파이썬 기초 문법
- 연산자, 변수, 자료형
- 튜플, 리스트, 딕셔너리
- 조건문, 반복문
- 함수, 클래스
2 부 데이터 수집 및 분석하기
- 정형 데이터 분석
- 비정형 데이터 분석, 크롤링
- 상관관계 분석
- 회귀 분석(선형 회귀, 로지스틱 회귀)
- 시계열 분석
[서평]
최근 추천 시스템의 미스터리를 풀기 위한 책인 한빛미디어의 추천 시스템 입문서에 푹 빠져 있었습니다. 기술과 미디어에 열정을 가진 사람으로서 나는 효과적인 콘텐츠 추천의 비결을 밝힐 준비가 되어 이 책에 열렬히 뛰어들었습니다.
추천 시스템 입문은은 모든 독자를 수용할 수 있도록 세심하게 설계된 잘 짜여졌습니다. 기본 개념에 대한 포괄적인 소개로 시작하여 점차 고급 주제를 통해 독자를 안내합니다. 기술적 깊이와 접근성 간의 완벽한 균형을 유지하여 모든 독자가 복잡한 아이디어를 소화할 수 있도록 합니다. 내용이 깔끔하게 구성되어 독자가 부담감을 느끼지 않고 추천 시스템의 복잡성을 파악할 수 있도록 원활한 학습 곡선을 보장합니다.
이 책의 두드러진 특징 중 하나는 다양한 추천 시스템 기술에 대한 인상적인 범위입니다. 협업 필터링부터 콘텐츠 기반 필터링, 하이브리드 접근 방식까지 모든 수단을 가리지 않습니다. 각 기술은 관련 예제 및 실제 응용 프로그램과 함께 세심하게 자세히 설명됩니다. 시각 학습자는 개념 이해에 도움이 되는 잘 만들어진 다이어그램과 삽화를 높이 평가할 것입니다. 마지막에 도달할 때쯤이면 추천 시스템과 이를 다양한 도메인에 적용할 수 있는 방법에 대해 전체적으로 이해하게 될 것입니다.
이 책이 다른 점은 실제 응용 프로그램에 초점을 맞추고 있다는 것입니다. 한빛미디어는 다양한 산업 분야의 통찰력 있는 사례 연구와 사례를 제공하기 위해 많은 노력을 기울이고 있습니다. 저자는 사용자 경험을 향상하고 비즈니스 결과를 촉진하기 위해 추천 시스템을 활용하는 방법을 보여줌으로써 이론과 실제 사이의 격차를 해소합니다. 이 실용적인 접근 방식은 콘텐츠를 매력적으로 만들 뿐만 아니라 오늘날의 미디어 환경에서 추천 시스템의 엄청난 가치와 관련성을 보여줍니다.
복잡한 용어와 개념을 세심하게 설명하여 사전 지식이 부족한 사람도 쉽게 이해할 수 있습니다. 그러나 나는 특히 특정 알고리즘 구현과 관련하여 보다 심층적인 설명이 도움이 되었을 몇 가지 사례를 발견했습니다. 이러한 영역을 확장하면 책의 명확성과 전반적인 유용성이 더욱 향상될 것입니다.
결론적으로, 추천 시스템 입문은은 추천 시스템의 영역을 파고들고자 하는 모든 이들에게 필독서입니다. 잘 짜여진 내용, 포괄적인 내용, 실용적인 예를 통해 이 책은 뛰어난 입문서 역할을 합니다. 일부 섹션은 더 자세한 설명이 도움이 될 수 있지만 전반적인 품질은 칭찬할 만합니다. 초보자이든 경력 전문가이든 이 분야에서 지식을 넓히려는 모든 사람에게 이 책을 강력히 추천합니다. 추천 시스템의 잠재력을 활용하고 콘텐츠를 개인화하고 사용자에게 전달하는 방식을 혁신할 준비를 하십시오. 즐거운 독서!
추천시스템 관련된 책이 드디어!! 나왔다. 추천시스템은 유난히 관련 서적이 많지 않아서(몇년 전만 해도) 아쉬웠었는데 점점 나오고 있어서 좋다!
이 책의 장점은 추천시스템 이론을 배우기도 물론 좋지만 실제 구현하는 과정, 서비스에 적용하는 과정까지 상세하게 담았다는 점이다.
앞파트는 그래서 시스템의 이론과 프로젝트부터 시작한다.
실제 기업이나 스타트업, 아니면 프로젝트 구현할 때 a부터 z까지 참고할 수 있을 것 같다.
비교적 이론이 교과서처럼 정리되어 있다는 느낌이었다. 요즘 추천시스템이야 모두가 알 정도로 어떤 분야든 안쓰이는 곳이 없는데, 추천시스템 구현할 때 필독서가 생기지 않았나 싶다.
개인화된 콘텐츠 제공을 위한 추천 시스템 설계부터 UI/UX 구현 기법과 평가까지 한번에 알고 싶다면 이 책이다.
이 책은 총 8개 장으로 이루어져 있고 장별 내용은 아래와 같이 구성되어 있다.
서비스에 다양한 추천 알고리즘을 적용해보자
1장 : 추천 시스템의 개요와 역사에 대해서 몇 가지 사례를 통해 설명하고 있습니다. 이 장은 추천 시스템의 종류와 검색 시스템과의 차이점도 설명하고 있습니다.
2장 : 추천 시스템 개발을 위해서 필요한 팀원을 구성하는 방법과 함께 프로젝트를 어떻게 진행하면 좋을지에 대해 상세 하게 설명하고 있습니다. 이 부분은 실무에서 상당히 도움이 될만한 조언을 해준다고 생각이 됩니다.
3장 : 추천 시스템에서 사용할 수 있는 UI / UX에 관해 설명합니다. 추천 아이템을 제시하는 방법이나 클릭 횟수나 구입 횟수를 늘릴 수 있도록 하는 사용자 경험 설계가 중요하다는 것은 이 책을 읽는 독자라면 분명히 알고 있을 내용입니다.
4장/5장/6장 : 대표적인 추천 알고리즘에 대해 상세하고 쉽게 설명해줍니다. 특히 협조 필터링과 내용 기반 추천 알고리즘에 대한 설명은 초보자가 봐도 이해 하도록 충분하게 설명해 주고 있습니다. 그리고 인기도 추천, 행렬 분석 알고리즘에 대해서도 각각 실제 서비스에 사용에 필요한 다양한 시각에서 접근하도록 설명합니다. 그리고 시스템 설계를 위한 추천 시스템 아키텍처 부분은 꼭 읽어 보시라고 추천합니다.
7장 : 이 장에서는 시스템 평가 지표에 대해서 이야기 합니다. 추천한 아이템의 지표에 대해서 자세하게 다루고 있습니다.
8장 : 마지막으로 다루지 못한 추천 시스템 국제회의, 편향 제거, 인과 추론 등에 대해서 이야기 하며 마무리가 됩니다.
이 책의 대상 독자는 시스템 개발이나 추천 알고리즘에 관심이 있다면 누구나 볼 만 하도록 구성되어 있습니다. 추천 알고리즘을 적용할 때 만나게 되는 여러 문제를 폭 넓게 다루고 있어서 아주 도움이 됩니다.
이 책을 통해 추천 알고리즘을 이용한 다양한 방법으로 실무에 활용할 수 있다고느낄 수 있었습니다.
- 하지만 제대로 소화하기 위해선 간단한 통계지식과 특히 파이썬 코드를 읽을 수 있는 정도의 실력은 필요하다.
- 해당 책은 입문서로서의 역할에 충실하므로, 그 다음 스탭에 대한 책이 필요하다!
책의 구성
크게 8개의 장으로 이뤄져 있으며, 전체 페이지 또한 296페이지로 적다. 하지만 그렇다고 해서 해당 내용이 무작정 쉽거나 가볍지는 않으니, 이에 대한 준비를 해야한다. 추천시스템이라는 것이 트랜드, 서비스, 통계, 코딩 전반에 걸쳐 하나라도 부족하면 안되는 분야이다보니 이를 전반적으로 설명하는 해당 책도 쉽지는 않은 것이 당연해 보인다.
이 책을 제대로 이해하기 위해선 chatGPT를 이용해 중간중간 충분히 설명되지 않거나 이해되지 않은 사항에 대해서 학습하고 진행하는 것을 권장한다.
장단점
우선 밸런스가 좋다. 추천시스템에 입문하는 사람들을 위해 전반적인 개요와 알고리즘, 실습과 예시 서비스 구현 등을 진행할 수 있다. 하지만 해당 책은 입문서용일뿐 이 책 하나를 익혔다고 해서 당장 추천 시스템 엔지니어가 될 수는 없다. 또한 이 책 이후의 단계를 밟기 위한 커리큘럼이나 책이 있는 것도 아니기에 해당 책은 가볍게 추천시스템에 대해 접하거나, 이를 배우기 위해 보다 풍부한 자료와 시간, 향후 커리큘럼을 갖춘 학교에서 배우기에 좋은 교보재로 보인다.
결론
추천 시스템에 대해 입문하고자 하는 사람이라면 이 책을 적극 권장한다. 하지만 이 책으로 시작을 끊는다고 하더라도 그 이후의 단계에 대한 스탭은 알아서 잘 찾아서 진행해야 한다. 추천시스템에 대해서 가볍게 접하고 싶거나, 학생들을 가르치고 싶은 분들에게 적극 권장하며, 부디 한빛미디어에서 다음 스탭 역할을 할 수 있는 무언가가 나오기를 기대한다.
AI에 의한 초개인화는 지난 2020년부터 일정한 트렌드로 자리잡고 있다. ‘개인화’가 애플리케이션에 의해 데이터를 기반으로 알고리즘을 만드는 것이라면, ‘초개인화’는 개인의 취향이나 관심사를 반영해 맞춤형 서비스를 제공한다는 점에서 다르다.
따라서 ‘초개인화’ 시대에 걸맞은 추천 알고리즘을 기업의 필수적인 마케팅 요소로 꼽고 있다. 대표적인 추천 알고리즘에는 콘텐츠 기반 필터링과 협업 필터링이 있다. 이 책에서는 더불어 회귀, 행렬 분해, LDA, Word2Vec, 딥러닝을 활용한 방법 등을 실습을 통해 소개하고 있다.
하지만 조심해야 할 부분도 있다. 필요 이상 고도의 알고리즘을 선택하지 않도록 의식하는 것이 중요하며, 과도한 개인화는 사용자가 스스로 인식한 것 이상으로 서비스에 정보를 빼앗기고 있다는 생각에 공포를 느끼고 불신감을 갖거나 추천 기술을 쉽게 이해할 수 없고 기분 나쁜 것이라고 생각해 불쾌함을 느낄 수 있다.
추천 시스템을 실제로 서비스에 적용하려고 하면 다양한 문제에 직면하게 된다. 프로젝트 구성원은 어떻게 꾸려야 좋은가, 어떤 추천 시스템을 조합해야 하는가, 어떤 데이터를 사용해야 하는가, 배포 전 온라인에서 추천 시스템을 평가하기 위해서는 어떻게 해야 하는가 등의 문제이다. 또한 사용자의 나이나 성별 또는 애플리케이션을 다루는 능력과 같은 요소에 따라 추천 시스템의 UI/UX가 달라질 수 있다.
그래서 저자들은 추천 시스템 도입 성공 사례와 실패 사례를 보여주면서 데이터와 인터랙션 등을 바탕으로 어떤 서비스에 어떤 추천 시스템을 조합하고 적용할 것인가에 중점을 두고 설명하고 있다.
이 책은 총 8개 장으로 이루어져 있으며 전체적인 내용은 다음과 같다.
1-3장 : 추천 시스템 개요를 설명한다.
4-5장 : 추천 시스템 알고리즘 개요 및 상세를 설명한다.
6장 : 추천 시스템을 서비스에 적용할 때 DB, API 등의 시스템을 어떻게 설계하는지 설명한다.
7-8장 : 추천 시스템의 평가 지표 및 편향 제거, 인과 추론 등을 설명한다.
이 책은 추천 시스템을 처음 접하는 사람도 이해하기 쉽게 설명한 A-Z 입문서이다. 개인화된 콘텐츠 제공을 위한 추천 시스템 설계부터 UI/UX, 구현 기법, 평가까지 소개해준다는 장점이 있다. 하지만 현업에서 자주 사용되는 용어인 "컨텐츠 기반 필터링"과 "협업 필터링" 등의 표현을 사용하는 것이 내용 기반 추천, 협조 필터링보다 더욱 명확할 것 같다.
정확한 추천 알고리즘 개발은 많은 기업들의 핵심적인 마케팅 전략 중 하나이다. 추천 시스템 도입을 고민하고 있는 기획자, 개발자, UI/UX 디자이너들에게 추천하고 싶다. 추천 시스템을 다룬 몇 안 되는 시중에 나와 있는 책이니 만큼, 한 번쯤 꼭 읽어보길 권하고 싶다.
이 책은 추천 시스템에 대한 입문서로서, 추천 시스템의 기본 개념부터 프로젝트 진행 방법, UI/UX 설계, 추천 알고리즘 선택과 구현 기법, 시스템과의 조합, 평가 방법, 그리고 발전적인 주제까지 다양한 주제를 다루고 있습니다.
저자들은 추천 시스템 개발자로서의 경험을 토대로 성공 사례와 실패 사례를 소개하며, 어떤 서비스에 추천 시스템을 조합하고 적용해야 하는지에 대해 중점적으로 다루었습니다. 이 책은 추천 알고리즘의 세부 사항보다는 알고리즘 개요와 실무적인 활용 방법에 초점을 맞추어 설명하고 있습니다. 이를 통해 서비스가 발전할 수 있도록 적합한 추천 시스템을 개발하는 데 도움을 줄 것입니다.
책은 총 8개의 장으로 구성되어 있으며, 각 장마다 명확한 주제와 내용을 다루고 있습니다.
첫장에서는 추천 시스템의 개요와 역사, 종류에 대해 다루고 있습니다. 추천 시스템의 중요성과 검색 시스템과의 차이점에 대해서도 이야기합니다.
두 번째 장에서는 추천 시스템을 개발하기 위해 필요한 3가지 스킬에 대해 설명하고, 추천 시스템 프로젝트를 진행하는 방법을 소개합니다.
세 번째 장은 추천 시스템의 UI/UX의 중요성을 강조하며, 서비스 사용자와 서비스 제공자를 고려한 UI/UX 사례를 다룹니다.
네 번째 장은 추천 알고리즘의 분류와 내용 기반 필터링, 협조 필터링에 대해 설명합니다. 또한 추천 알고리즘 선택에 관한 내용도 다루고 있습니다.
다섯 번째 장에서는 다양한 추천 알고리즘의 상세한 내용을 다룹니다. MovieLens 데이터셋을 활용하여 알고리즘을 비교하고, 통계 정보, 연관 규칙, 회귀 모델, 행렬 분해, 딥러닝 등 다양한 방법과 응용 사례를 소개합니다.
여섯 번째 장에서는 추천 시스템과 실제 시스템을 어떻게 조합하는지에 대해 다룹니다. 로그 설계와 실제 시스템 예를 통해 구체적인 방법을 설명합니다.
일곱 번째 장은 추천 시스템의 평가 방법에 대해 다루고 있습니다. 오프라인 평가, 온라인 평가, 사용자 스터디를 통한 평가에 대해 설명합니다.
여덟 번째 장에서는 추천 시스템의 발전적인 주제들을 다룹니다. 국제회의, 편향, 상호 추천 시스템, 업리프트 모델링, 도메인 특징과 과제 등에 대해 다양한 정보를 제공합니다.
부록에서는 넷플릭스의 추천 시스템에 관련된 내용을 다룹니다. 또한 사용자-사용자 메모리 기반 방법에 대한 내용을 다루며, 추천 과정에 대한 구체적인 설명을 제공합니다.
이 책은 추천 시스템에 관심이 있는 독자들에게 추천 시스템의 기본 개념과 구현 방법, 평가 방법을 포괄적으로 소개하고 있으며, 개인화된 콘텐츠 제공을 위한 추천 시스템을 구축하고자 하는 개발자들에게 많은 도움이 될 것입니다.
**"한빛미디어 \<나는 리뷰어다\> 활동을 위해서 책을 제공받아 작성된 서평입니다."**
가볍지만 묵직한 한방 추천 시스템! 밋밋한 시스템에 추천 시스템을 도입할거면 제대로 해보자.
- 대상 독자
추천 시스템 개발이나 추천 알고리즘에 관심 있는 독자
- 책의 내용 및 구성
1. 약 290p 8개의 챕터로 구성
2. 추천 시스템 개발에 필요한 스킬과 능력(역량) 등에 대해 이야기하고 지금까지 성공한 추천 시스템의 사례들을 확인하여 신규 추천 시스템을 적용하려고 하는 프로젝트에 어떤식으로 적용해야 하는지 설명
3. 추천 시스템 개발 시 필요한(사용하면 좋을?) 다양한 추천 알고리즘을 소개 및 적용 방법 제시(파이썬 코드 포함)
4. 추천 시스템을 적용했을 때 장점과 단점, 어떻게 하면 추천 더나은 추천 시스템을 만들 수 있을지에 대한 고찰 등 포함
- 책에서 눈에 띄는 점
1. 어떤 시스템이 필요한 이유 제시, 개발에 필요한 내용들 분석, 개발 방법 제시, 더 나은 개발을 하기 위한 고찰의 순서로 진행하기 때문에, 실제로 시스템을 만드는 개발자 뿐 아니라 추천 시스템이 궁금한 사람과 기존에 추천 시스템들은 어떻게 진행되고 있는지 궁금한 마케터 & 도입을 고민하는 설계&분석가가 가볍게 읽을 수 있음.
2. 사용자로써 추천 시스템을 이용하면서 불편했던점과 의문이었던 점 등에 대해 왜 그런것인지 알려주기 때문에 도입시에 직접 본인이 느꼈던 단점을 어떻게 없애고 줄일 것인가를 생각하게 만듬.
- 총평
이젠 없으면 어색할 것만 같은 시스템, 물건을 사거나 컨텐츠를 볼 때 반드시 필요하다고 생각되는 시스템, 바로 추천 시스템이 아닐까 싶다.
추천 시스템은 양날의 검이라고 항상 생각해왔다. '개인화' 라는 명목으로 나의 관심사나 내가 필요로 하는 것을 찾아 보여주고 알려주는 장점과, 추천을 해주기 위해선 나의 '정보'를 시스템 운영 회사에 넘겨 분석을 해야 하기 때문에 사생활과 개인정보를 침해할 수도 있다는 단점이 존재하기 때문이다.
장난으로 '이제 털릴 정보도 없는걸' 이라고 말하지만, 그 정보가 내 일상생활에 무리가 가지 않는 이상 다들 크게 신경쓰지 않는 듯 했다.
그런 듯 했지만 지난 몇 년간 상황이 많이 바뀐 것 같다. 몇 년간 SNS 최강자 군림하던 페이스북은 애플의 개인정보 보호 업데이트와 함께 추천 시스템을 제대로 활용하지 못하는 크나큰 타격을 입게 되었고, 미국과 중국의 디지털 패권 전쟁에 따른 신흥 강자 '틱톡'은 미국을 포함한 여러 나라에서 '중국에 개인 정보 전송'을 막겠다는 명목하에 사용 금지 조치를 당하고 있다.
'개인 정보' 라는 것의 중요성이 엄청나게 대두되는 상황에서 개인정보를 조금 더 엄격하게 관리해야 한다는 생각에는 매우 동의한다. 하지만 문제는 이 정보가 대부분의 '추천 시스템'에서 사용되기 때문에 이제는 그냥 개발하고 사용하고는 것을 넘어 개발을 하면서 사용될 정보가 사용자의 사생활과 개인정보를 침해하지 않는지, 또는 그럴 여지가 있지는 않은지 까지 생각해야 하는 시기가 왔다. 추천의 정확도를 넘어서 추천에 사용되는 데이터의 법적 여부까지 생각해야 하는 시대가 온 것이다.
처음에 말했던 것처럼 요즘 시스템에 가장 필요한 것, 추천 시스템이라고 생각한다. 이 책은 '추천 시스템이 무엇인가?' 부터 '추천 시스템을 만들려면 어떻게 해야 하는가?'를 다루고 '더 나은 추천 시스템이란 무엇일까?'를 함께 고민하게 한다.
쉽고 간편하게 쓱 훑어 볼 수도 있고, 제시하는 여러 알고리즘과 코드들을 어떻게 시스템에 녹여들게 할 것인가 진지하게 고민을 할 수도 있는 팔방미인같은 서적임에는 틀림없다.
다양한 측면에서 추천 시스템을 고민하고 만들 수 있게 도와주는 멋진 책이지만, 추천 시스템을 만들었을 때 사용자가 '개인 정보를 침해 당한 것 같은' 느낌을 받게 하면 안된다는 이야기 뿐 아니라, 위에서 지속적으로 얘기 한 추천에 사용되는 데이터가 개인정보를 침해하지 않게 어떤 식으로 걸러내며, 법적인 측면으로는 어떤식으로 데이터를 걸러내야 하는가 등의 이야기가 있었다면 더욱 최신 트렌드에 맞는, 더욱 심도있는 내용이 되지 않았을까 싶다.
‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은 선택지에서 원하는 것을 고르려면 너무나 많은 시간이 걸리기 때문에 방대한 아이템을 다루는 서비스에는 추천 시스템이 필수다.
이 책은 추천 시스템을 도입하고자 하는 독자나 조직이 우선적으로 읽어야 할 입문서다. 추천 시스템 개발자인 저자들이 경험한 성공 사례와 실패 사례를 살펴보면서 어떤 서비스에 추천 시스템을 조합하고 적용할 것인가에 중점을 두고 구성했다. 추천 알고리즘을 자세히 파고드는 대신 알고리즘 개요와 실무 활용 방법을 중심으로 설명한다. 이 책이 여러분의 서비스가 더욱 진화할 수 있도록 적합한 추천 시스템을 개발하는 데 도움이 될 것이다.
추천이라는 도메인은 여러 회사, 특히 IT 회사에서 굉장히 중요한 핵심 도메인이다. 온라인 쇼핑몰 등의 이커머스 서비스는 당연하고 대부분의 IT 서비스 기업의 주 비즈니스 모델인 광고 사업의 핵심이기도 하기 때문이다. 사용자에게 유효한 추천이 매출로 직결되는 만큼 거대한 블랙박스 안에 굉장히 많은 기술, 알고리즘, 시스템이 숨어있다.
이 책은 적절한 예시와 깔끔한 번역으로 추천 시스템에 대한 도메인 지식을 설명하는데 많은 지면을 사용했다. 기억에 남는 키워드를 몇 가지 정리해 보면...
콜드 스타트 문제
신규 사용자나 신규 아이템 데이터가 적어 추천이 어려워지는 문제.
신규 사용자는 인터렉션 데이터, 즉 서비스 안에서 행동한 데이터가 없기 때문에 협조 필터링을 사용하기 어렵다.
그래서 사용자 자체에서 제공받는 콘텐츠 데이터를 이용한 내용 기반 필터링이 주가 된다.
협조 필터링이 사용자의 기호를 더 반영하여 클릭, 구입을 유도할 수 있는 추천 방법이 되는 경향이 일반적이다.
추천 시스템 프로젝트 진행 단계
1. 과제 정의
2. 가설 수립
3. 데이터 설계, 수집, 가공
4. 알고리즘 선정
5. 학습/파라미터 튜닝
6. 시스템 구현
7. 평가 및 개선
추천 시스템과 UI/UX
적절한 UI/UX를 제공하지 못하면 아무리 고도의 추천 알고리즘을 개발해도 사용자에게 가치를 전달할 수 없다.
서비스 도메인, 목적, 사용자의 종류 등에 따라 적합한 UI/UX는 서비스마다 다르기 때문에 이를 반드시 고려해야 한다.
특히 제공하는 정보량이 너무 적거나 적절한 정보를 표시하지 않으면 사용자가 해당 아이템의 좋고 나쁨을 알 수 없으므로 자신의 기호에 맞더라도 흥미를 가지지 못하게 된다. 반대로 필요 이상 많은 정보를 표시하면 다른 정보에 묻혀서 정말로 사용자에게 전달되어야 할 정보가 전달되지 않거나 복잡한 서비스라는 인상을 심어주어 사용자가 서비스에서 이탈할 수 있다.
추천 시스템의 UI/UX 분류
1. 적합 아이템 발견
사용자가 자신의 목적을 달성하는 데 적합한 아이템을 서비스상에서 최소 1개 이상 발견하게 하는 것을 의도하는 방법
일본의 음식점 검색 서비스 타베로그는 사용자의 기호에 맞을 가능성이 높은 아이템부터 차례대로 정렬한 리스트를 사용자에게 제시한다.
2. 적합 아이템 나열
사용자가 자신의 목적을 달성하는 데 적합한 아이템을 가능한 모든 서비스에서 발견하는 경우
주택 계약, 물건 찾기, 여행 계획 등 사용 빈도는 낮지만 비용이 많이 드는 아이템을 다루는 서비스에서는 이 방식을 선택한다.
3. 아이템 계열 소비
열람, 소비하는 동안 추천된 아이템 계열 전체에서 가치를 누리는 것을 목적으로 하는 경우
음악 스트리밍 서비스에서 주제에 대한 추천 노래 리스트 제안이 이에 해당한다.
4. 서비스 내 체류
사용자가 사용하는 서비스 본래의 목적을 달성하는 것이 아니라 그저 아이템을 열람하는 것 자체를 목적으로 서비스 안을 돌아다니게 하는 방법
사용자에게 너무 강요하면 만족도가 떨어져 재방문하지 않게 될 우려가 있다.
에어비엔비는 많은 사용자가 흥미를 가질 만큼 인기 있는 관광지를 몇 가지 선정해서 주변의 숙박 시설을 간단하게 열람할 수 있도록 하는데 당장 구매로 이어지진 않지만 서비스 안을 돌아다니는 사용자의 만족도 향상을 노리고 적용한다.
개인적으로 개발자뿐만 아니라 기획, 사업 등 추천 도메인 관련 업무에 새로 합류하는 팀원이 반드시 읽으면 좋을 것 같다는 생각이 들었다. 추천 도메인에 경험이 없지만 이 책만 읽어도 추천 시스템이 무엇인지, 우리가 사용하고 있는 서비스에 어떤 식으로 적용되어 있는지 굉장히 디테일한 부분까지 다루고 있다. 개인적으로 3장 추천 시스템의 UI/UX은 파트에서 인사이트를 많이 얻었는데 이런 UI/UX를 고려해 개발단에서도 이를 좀 더 편리하고 변경에 용이하게 설계하는 것이 가능할 것 같다.
건축학에 건축학개론이 있다면 추천 도메인엔 이 책이 그 역할을 충분히 할 것이라고 생각한다.
흔히들 알고리즘으로 인하여 어떤 광고, 게시물, 영상 등을 보게 되었다는 말을 많이 하는데 그게 바로 '추천 시스템'이다. OTT 서비스나 음악, SNS까지 맞춤OOO 이런 거 안 눌려본 사람이 없을 듯 한데, 실생활에서 흔히 볼 수 있는 시스템이기 때문에 더 관심을 가지고 책을 정독해볼 수 있을 것 같다.
이 책에서는 개인화된 콘텐츠 제공을 위한 추천 시스템 설계부터 UI/UX, 구현 기법, 평가까지 대략적인 추천 시스템에 대한 기본 내용을 담고 있다. 1~3장은 아주 가볍게 개요와 흐름에 대하여 나와있다. 인용되어 있는 문장도 꽤 있는 편이라 부담없이 이해하면서 읽을 수 있었다. 4장부터 조금 디테일해지는데, 5장에 코드가 나와있는데 쫄지 말자..! 나처럼 추천 시스템이 무엇인지가 궁금했던 사람들이라면 '그냥 이렇게 추천 알고리즘을 쓰는구나~'하고 넘어가면 될 것 같다. 6장으로 넘어가면 의외로 다시 읽을만 하다. 5장의 고비만 넘기자..! 7장까지 또 읽으면서 어떻게 추천 시스템을 적용하고 조합하고 평가하는지 까지 전반적인 과정을 모두 알 수 있게 된다. 8장은 또 다시 가벼운 내용이라 끝까지 읽는데 무리가 없었다.
물론 사실 5장이 메인일지도...? 개발자 분들은 잘 읽으실 수 있으실거에요... 파이썬이라 내가 너무 이해하는데 너무 어려웠음...