추천 시스템의 원조는 사실 아마존입니다. 아마존은 이미 1990년대부터 구매한 상품과 관련 있는 상품, 고객이 관심 있어할 만한 상품, 궁극적으로 고객이 구매할것 같은 상품을 함께 추천하여 상당한 성과를 거두었습니다.  - P407

아마존의 추천 시스템을 다룬 2003년 논문이 지난 20년간 가장 영향력 있는 논문으로선정되었을 정도죠.⁵ - P408

5 https://www.computer.org/press-room/2017-news/ic-20th-anniversary - P463

이렇게 추천 서비스를 하는 이유는 사람들의 기호에 강한 연관성이 있기 때문입니다. 이를 분석하는 방식을 연관성 분석 Association Analysis이라고 하는데, 상품 간의 상관관계를 찾아내는 데 매우 유용하죠. - P409

이처럼 고객의 구매 내역을 분석하는 방식을 장바구니 분석Market Basket Analysis 이라고 합니다. (중략).
이는 데이터 마이닝 Data Mining이라는 학문의 기반이 됩니다. 마이닝Mining이 거대한 광산Mine에서 원재료를 추출하는 것을 의미하듯, 데이터 마이닝은 대규모 데이터에서 어떤 특정한 패턴을 발견하고추출하는 행위를 말합니다. - P410

1993년 당시 IBM에 근무하던 라케시 아그라왈Rakesh Agrawal 박사는 장바구니 분석을 처음 시도해 기념비적인 논문을 내놓았고, 이는 데이터 관련 논문 중 가장 영향력 있는 논문으로 평가받으며 데이터마이닝이라는 본격적인 학문의 시작을 알렸습니다. - P411

(전략).
신뢰도에는 한 가지 맹점이 있습니다. 바나나가 원래 자주 판매되는 상품이라면 애초에 기저귀를 사는 고객이 바나나도 살 가능성이 높으므로 연관성을 정확히 판단하기 힘든 거죠. - P413

 때문에 실제로는 연관성이 낮더라도 연관성이 높다고 잘못 판단할 수 있습니다. 그렇다면 두 상품의 판매 빈도까지 고려하는 지표가있을까요? ‘향상도‘라는 지표가 있습니다. - P413

10대 소녀의 임신을 예측한 알고리즘


2012년 미네소타주의 한 남성은 미국의 대형마트로부터 우편물을 받아 보고는 깜짝 놀랐습니다. 임산부 용품 할인 쿠폰이 들어 있었던 것이죠. 게다가 수신인은 고작 열일곱 살에 불과한 10대 딸이었습니다. - P415

그런데 이후의 스토리가 실린 <뉴욕 타임스> 기사가 매우 흥미롭습니다. 전화를 받은 아버지가 오히려 죄송하다며 사과를 했기 때문이죠. 10대 소녀인 딸이 정말로 임신을 했기 때문이었습니다. 부모도 알아차리지 못한 임신 사실을 대형마트 판촉 알고리즘이 누구보다 먼저 알아차린 셈입니다. - P415

추천 시스템의 시작

(전략). 먼저, 추천 시스템은 보통 다음과 같은 2가지 방식을 대표적으로 사용합니다.

• 콘텐츠 기반 필터링Content-Based Filtering: 내가 선호하는 영화와 비슷한 영화를 추천하는 방식

• 협업 필터링 Collaborative Filtering: 나와 비슷한 고객이 시청한 영화를 추천하는 방식 - P416

(전략).

이렇게 콘텐츠의 특징에 따라 영화를 추천하면 다른 고객 데이터는 필요하지 않습니다. 오로지 현재 고객이 선호하는 특징만 알 수있으면 되죠. (중략). 영화의 특징만 추출할 수만 있다면 아주 희귀한 영화도 추천할 수 있습니다.
그런데 영화에서 특징을 추출한다는 게 쉬운 일은 아닙니다. - P419

협업 필터링, 비슷한 고객을 추천하다

이처럼 콘텐츠 기반 필터링은 한계가 많습니다. 때문에 고객이 선호하는 영화 자체의 특징에 집중하기보다는 범위를 좀 더 확장하여 유사한 고객의 정보를 활용해볼 수 있습니다. 이렇게 하면 추출한특징에서 벗어나기 어려운 콘텐츠 기반 필터링의 한계를 극복할 수 있겠죠 - P420

행렬 인수분해, 잠재요인을 찾아내다

이번에는 협업 필터링 기법 중에 하나인 행렬 인수분해 MatrixFactorization를 살펴보겠습니다. (중략), 만약 평점이 한두 개 영화가 아니라 수천 개쯤 되고 점수 또한 제각각이라면 취향이 비슷한 고객을 찾는 일이 쉽지 않을 거예요. - P422

핵심 원리는 단순합니다. 한쪽에서는 ‘이 영화는 액션이 얼마나있나요? 라고 질문하고, 다른 한쪽에서는 ‘이 고객은 액션 영화를 얼마나 좋아하나요? 라고 질문한 다음 그 결과를 합산하는 방식이죠. - P423

행렬 인수분해는 그 이름에 걸맞게 하나의 행렬을 2개의 행렬로 인수분해하여 예측하는 기법입니다. - P423

행렬 인수분해는 숨어 있는 특징을 자동으로 추출하기 때문에 이를 두고 잠재요인 Latent Factor을 발굴해낸다고 표현합니다. 예제는K=2이므로 2가지 잠재요인을 발굴해낸 거죠. 실제로 쓰일 때는K=25, 적어도 25개 이상의 잠재요인을 발굴해내며 이 과정에는 사람이 개입하지 않고 컴퓨터가 자동으로 찾아냅니다. - P429

그렇다면 여기서 ‘왜 하필 25개냐? 라고 질문할 수 있을 것 같네요. 행렬 인수분해를 처음 고안한 사이먼 펑크가 맨 처음 설정한 값이 바로 K=25입니다. 그래서 특별한 이유 없이 관례상 쓰이는 경우가 많습니다. 만약 데이터를 아주 많이 구할 수 있다면 당연히 특징의 수를 좀 더 크게 지정하는 편이 좋습니다. - P430

딥러닝을 도입한 유튜브 추천 알고리즘


행렬 인수분해 기법은 딥러닝의 구조와 많이 닮아 있습니다. 결과를 도출하기 위해 내재된 특성을 찾아 여러 차례 계산하는 구조가 마치 인공 신경망을 이용해 여러 차례 계산해나가는 과정과 비슷하죠. - P430

2016년 공개된 유튜브의 추천 시스템도 행렬 인수분해를 딥러닝으로 바꿔서 더 좋은 성능을 낸 구조였죠. 깊은 신경망일수록 더 좋은 성능을 냈습니다. - P431

실제로 유튜브가 2016년에 공개한 추천 시스템 논문에 따르면, 유튜브의 추천 시스템은 다양한 특징을 결합한 딥러닝 모델이었습니다. 그전까지는 유튜브도 행렬 인수분해를 사용했는데 2016년을 전후해 딥러닝 모델을 점차 도입한 거죠. - P432

유튜브는 초창기에 영상을 추천하는 데 어떤 가치를 극대화할지 고민을 거듭했다고 합니다. 초기에는 조회 수를 올리는 데만 방향이 맞춰져 있었죠. - P433

이후 유튜브는 사람들이 오래 시청하는 영상을 추천하도록 보상함수를 개선했다고 밝힙니다. - P433

보상은 기존처럼 ‘많이 클릭하는 게 아니라 ‘덜 클릭하고, 더 오래 보는‘ 영상에 집중되었고, 실제로 영상의 품질을 높이는 데 많은 도움이 되었습니다.⁹ - P434

9 https://blog.youtube/news-and-events/youtube-now why we focus on watch-time - P463

또한 유튜브는 신선도를 무척 강조합니다. (중략). 하지만 새로운 영상은 영상에 관한 아무런 정보가 없는 콜드 스타트 Cold Start 문제에 봉착합니다. - P434

영상뿐만 아니라 고객도 마찬가지입니다. 신규 고객의 관심사를예측하기도 정말 어려운 일이죠. 넷플릭스도 초창기에 그리고 왓챠도 가입을 하면 굳이 선호하는 영화를 몇 가지 택하도록 합니다. 신규 고객의 선호도를 미리 파악하여 정교한 추천을 시작하기 위해서죠. - P435

. 협업 필터링이 어느 정도 관심사를 확장하는 효과를 내긴 하지만 이 또한 성향이 비슷한 고객만 구독하게 된다면 다른 성향의 고객이 좋아하는 콘텐츠는 알 길이 사라지죠.  - P435

그래서 뜻밖의 발견serendipity이 중요합니다. 멋진 영어 단어이자설레는 표현이기도 하죠. 여기에는 2가지 조건이 충족되어야 합니다. 지금까지 본 적 없는 것이지만 희한하게도 마음에 들어야 하죠. - P436

챗봇 이루다는 왜 2주 만에 서비스를 멈췄을까?


이루다는 국내 스타트업이 개발한 챗봇입니다. 자유 주제 대화 시스템 Open-Domain Dialogue System을 기반으로 어떤 주제로든 자유롭게 대화할 수 있는 인공지능을 이루었다는 의미로 이 름 지은, 스무 살의소녀로 설정된 챗봇이었죠.
십수년 전에 ‘심심이‘라는 책이 큰 인기를 끈 적이 있었습니다. - P289


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo