잘 팔리는 상품에는 분명 그만한 이유가 숨어 있다. 잘 팔리려면 상품 자체의 기능, 디자인, 퀄리티가 좋아야 하는 것은 당연한 이야기일 것이다. 그런데 똑같은 품질, 똑같은 기능의 제품인데도 누군 대박 나고, 누군 쪽박을 차는 모습을 보면, 꼭 상품만 좋다고 잘 팔리는 것은 아니라는 것을 알 수 있다. 여기에는 마케팅도 중요한 이유가 된다.
편의점에 있는 가득 줄지어 놓여 있는 물건을 보면, 그냥 마구 놓은 거 같지만, 놓이는 높이, 위치, 시간대 등을 다 고려한 복잡한 마케팅 행위의 산물이다. 누군가에게 하나라도 더 많이 선택되기 위해서, 시각적, 심리적, 경제적 연구와 오랜 판매 경험을 담은 결과인 것이다. 전에는 관심 없었던 물건을 인기품으로 올리기도 하고, 누군가의 머릿속에 오래 남게 하여 어떻게든 판매로 이끄는 것이 마케팅인 것이다.
아니, 웹 최적화, 머신러닝, 프로그램 관련 책 이야기를 하는데 왜 뜸금없이 마케팅 얘기를 하나 할 것이다. 만일 이렇게 생각한다면, '머신러닝을 활용한 웹 최적화'라는 책이 뭘 하기 위해 최적화를 하는지 전혀 모르고 하는 소리다. 이 책에서 말하는 웹 최적화는 화면에 더 빨리 그려주고, 서버나 DB에 전송하는 것을 빠르게 최적화하는 것을 말하는 것이 아니다. 웹에 어떤 사진, 어떤 버튼, 어떤 문구, 어떤 색상을 해야 사람들이 더 관심을 가지고, 모여드는가를 얘기하고 있는 책이기 때문이다. 즉 앞에서 말한 마케팅 얘기처럼 뭔가 잘 팔리고, 잘 나가는 웹 사이트, 목적을 효과적으로 잘 살린 웹을 구축하는 방법을 말하고 있는 책인 것이다.
누군가는 '버튼, 문구, 컬러? 이것은 웹디자이너가 하는 것이 아닌가?' 말할 수도 있다. 웹 디자인에 관심이 있는 분이라면, 어떻게 디자인하는 것이 좋은 디자인인지 잘 나와 있는 유명한 책도 보았을 것이다. 그러나 '머신러닝을 활용한 웹 최적화'는 '이렇게 해야 보기 좋고, 보색으로 배치하고, 폰트 크기는 얼마, 구성은 어떻게' 하는 디자인 측면에서 웹 최적화를 말하는 책이 아니다. 여기서는 인공지능, 머신러닝에 활용되는 각종 알고리즘, 베이즈와 기존 통계적인 기법을 사용하여, 수치적으로 값을 구해 어떤 디자인이 사람을 끌게 만드는 디자인인지 객관적으로 알아내는 방법을 알려준다.
웹 디자인이나 프로그램 화면 디자인을 해본 분이라면, UI의 중요성과 함께 디자인만 예쁘거나 멋지게 만들었다고, 그게 좋은 프로그램이 되는 것이 절대 아닌 걸 잘 알고 있을 것이다. 문제는 이 디자인이 잘됐는지 잘못됐는지 알 방법이 없다는 게 큰 문제다. 내가 보기에 잘 됐다고 해서, 사용자들이 다 좋아한다는 보장을 어떻게 할 수 있을까? 게다가 결정된 디자인으로 인해, 내가 손해를 보고 있는지, 이익을 보고 있는지 알 길이 없다. 디자인 조금만 바꿔도 12.5% 이상의 클릭이 증가할 수도 있는데도 말이다. 이 책에 나와 있는 내용을 보면, 2013년 Bing의 검색 결과 화면에 약간의 텍스트 색 정도만 바꿨는데도 연간 1천만 달러 수익 증가를 실현했다고 한다. 웹의 최적화는 이익 최적화와 일맥상통하다는 것을 보여준다.
더 이상 개인의 감이나 어쭙잖은 심리학 적용 디자인과는 바아바이해야 한다. 과거에는 이런 것들이 어쩔 수 없이 행해졌지만, 인공지능 시대를 맞이해서, 이제 웹에도 이런 기술이 도입되어야 하는 것이다. 물론 구글, 아마존, MS 같은 IT 선도 기업들은 이미 행하고 있다. 서비스 개선을 위해 동의를 받는 것들 중 많은 것이 이런 최적화에 활용되고 있는 것이다.
디자인 면에서 웹최적화는 개인적으로도 전부터 무척 관심을 가졌던 분야다. 그런데 그것과 관련된 정보를 얻을 수 없었다. 고작해야 트렌드 서적 같은 곳에서 선거 때, 어떻게 이길 수 있었다는 정도였지, 구체적인 기술은 볼 수 없었다. 그런데, '머신러닝을 활용한 웹 최적화'에는 처음부터 그것을 다룬다. 미국 오바마 대선 당시, 지원자 등록 사이트에 A/B 테스트를 통해 어떤 사진과 버튼의 문구가 최적 조합인지 찾아서 지원자 등록률을 8.26%에서 11.6%까지 올렸다고 한다.
여기서 중요한 것은 오바마 얘기가 아니다. 그것을 찾는 수학적인 과정이다. 이것을 알기 위해, 다양한 수학 지식이 필요하다. 이 책을 읽기 위해서는 적어도 고등학교 이과 수학 정도는 알 필요가 있다. 통계와 함께 벡터, 행렬, 미적분 등이 나오고 그것을 좀 더 발전시킨 수학 내용들이 있기 때문이다. 책에 다루는 수학 수준이 어려운 편은 아니지만, 그렇다고 쉽지도 않다. 각종 공식 유도 과정이 자세히 나와 있으나, 특히 6장에서는 중간중간 여러 고비가 오곤 한다. 그래서 그런지 책에도 부록으로 행렬 연산 기초를 통해 파이썬 프로그래밍 방법도 알려주고, 베이즈 로지스틱 회귀, 톰슨 샘플링에 대해 설명을 추가하고 있다.
'머신러닝을 활용한 웹 최적화' 초반부는 A/B 테스트, 확률분포, 이산 같은 일반 통계와 베이즈 통계, 베이즈 추론으로 높은 클릭률을 찾아내고, 체류시간도 생각하며, 어떤 것이 최적의 것인지 판별하는 방법을 익힌다. 초반에는 2개 중 하나를 대상으로 하고, 3장부터는 다양한 요소들을 적용시 어떻게 모델링하고, 어떻게 평가하는지를 말한다.
사실 통계적 방법은 예상을 하고 있었는데, 4장의 모델을 가정하지 않는 최적화 방법인 메타휴리스틱은 무척 생소한 방법이었다. 여기서는 통계가 아닌 언덕 오르기 알고리즘, 시뮬레이티드 어닐링, 유전 알고리즘을 사용한다. 들어 본 것도 있지만, 그걸 어떻게 활용하는지는 여기서 처음 알게 되었다.
5장에서는 최적 모델을 찾는데, 너무 많은 시간과 경비가 들면 안 된다는 현실적인 문제를 알고리즘으로 해결해보는 과정을 다룬다. 기업에 있어 시간은 진짜 돈과 같다. 그래서 개발 현장 어딜 가나 기간 단축을 가장 마지막에 강조한다. 여기서는 다중 슬롯머신 문제를 통해 도출된 슬롯머신 알고리즘과 ε-greedy, UCB 알고리즘 같은 것을 적용해본다. 여기 나오는 슬롯머신 그림은 책 초반부터 여러 곳에서 각종 설명에 활용된다. 그때그때 다른 부분이 있기에 나중에 비교하며 이해하는데도 도움이 된다.
그리고 책에 있는 각종 코드들은 파이썬을 사용하고 있으며, PyMC3 라이브러리를 사용해서 계산에 활용하고 있다. 초보를 위한 책이 아닌 만큼, 파이썬 문법은 다루지 않고 있고, 바로 코드가 나오고 있고, 특별한 경우 외에는 코드 자체에 대한 설명도 하지 않고 있다. 그러나 코드 길이 자체가 짧고, 간단해서, 이해하는데 전혀 어려움은 없을 것이다.
7장에서는 색상, 컬러에 관한 최적화를 다룬다. 이런 것도 프로그램으로 최적화 가능하다는 게 신기했다. 확률 과정으로 가우스 과정을 사용하는데, 생소하지만, 수학 알고리즘을 이렇게 활용할 수 있다는 것이 흥미롭고 재미있었다. 여기서는 색상 최적화에 응용했지만, 비슷한 연속된 값을 가진 모델에 활용해볼 수 있을 거 같다.
이처럼 '머신러닝을 활용한 웹 최적화'은 최적화된 웹을 위해, 인공지능 알고리즘과 통계를 활용한 다양한 기법과 테스트를 위한 최단 시간과 효율적인 방법, 자동화된 방법을 제시하고 있다. 사실 이런 주제의 책은 상당히 보기 드물기에 인공지능, 웹최적화에 관심 있는 사람뿐만 아니라, 분야는 다를지라도 인터넷 마케팅 관련자라면 이런 정량적 방법도 있다는 것을 알기 위해, 한번은 봐 두는 것이 좋을 것이다.
그리고 이 책의 영문 제목에도 나와 있듯이 introduction 소개 정도의 내용을 담고 있다. 웹 최적화에 대한 전반적인 소개인 것이다. 그러나 보면 알겠지만, 단순 소개 정도의 책은 아니다. 방대한 수학 지식을 담고 있어, 사람에 따라서는 난이도가 있는 책이다. 완벽한 이해를 위해, 저자가 제시한 참고문헌도 볼 수만 있다면, 봐야 할 거 같다.
분명 여러 가지로 공부하기 힘든 면이 있겠지만, 인공지능 시대에 걸맞은 기술력을 쌓고, 남보다 앞선 실력을 가진 프로그래머로 성장하고 싶다면, 이런 고급 주제에 대한 공부도 필수라 생각한다. 이 바닥에서 프로그램 언어 아는 정도로 밥 벌어먹기는 이젠 힘들다고 본다. 인공지능이든, VR이든, 자신만의 독보적 프로그램 기술이 필요하다. 그런 면에서 '머신러닝을 활용한 웹 최적화'는 좋은 길을 제시할 것이다.