지난 1편에서는 빅데이터 분석을 통한 고객 추천 시스템에 대해 크게 두 가지의 방식을 말씀 드렸는데요. 이 방식들은 2000년대 초반부터 사용되던 전통적인 추천 방식입니다.
● 고객 시선 강탈의 중요 요소 ‘빅데이터 추천 시스템 ①: http://blog.lgcns.com/1282
최근에는 구매를 위한 더 다양하고 복잡한 요인들이 많이 발생하기 때문에, 한가지 이상의 모델을 결합하는 앙상블 기법을 많이 사용하고 있습니다.
전통적인 추천 방식 넘어서기
앙상블 기법에는 단순 평균, 가중 합산, Voting, Bagging, Boosting 등 결과 수치를 결합하는 방법뿐만 아니라, 시점에 따라 서로 다른 방법론을 적용하는 hybrid modeling 등의 기법도 있습니다. 그 중 가장 기본이 되는 가중 합산 기법은 아래와 같습니다.
가중 합산 모델은 모델 1과 모델 2의 결과에 각각 가중치를 곱하여 합산한 앙상블 모델인 F*의 결과 값을 실제 값과 비교하여 오차를 최소화하는 가중치를 결정하게 됩니다.
Netflix와 같은 추천 리딩 업체는 기존의 추천 방식을 버리고 예측 모형을 만드는 Model Based 협업 필터링을 사용하고 있습니다. 다만, 이는 조금 다른 개념이라서 이번에는 내용을 다루지 않고 다음 기회에 다루도록 하겠습니다.
효율적인 구현 방법
추천 시스템 구현을 위하여 특별한 빅데이터 기술을 적용하는 것은 아닙니다. 빅데이터 기술 중 주요 배치 처리 기술인 Hive와 MapReduce를 상황에 맞게 적절히 활용하여 구현하게 됩니다.
① 주로 Hive를 사용
유지 보수의 편의를 위해 대부분의 데이터 처리에는 SQL을 사용하는 Hive를 사용하게 됩니다. 많이 알려진 것과 같이 Hive는 구조화된 데이터만을 처리할 수 있기 때문에, 사전에 데이터를 기정의 된 형태(CSV, Key-Value 등)와 타입(String, int, double 등)으로 만들어야 합니다.
② 특별한 경우 MapReduce를 사용
처리하여야 할 데이터 형태나 성능 상의 문제로 Hive로 처리할 수 없는 경우에 사용합니다.
● 비구조화되지 않은 데이터의 처리
아래 그림은 웹 프로그램의 로그입니다. 우리가 처음 직면하게 받게 되는 빅데이터 원천 데이터는 이렇게 비구조화된 경우가 많습니다. 아래 로그를 보시면 각 라인을 보면 일정한 패턴이 있는 경우도 있고, 그렇지 않은 경우도 있죠.
즉 schema 선언이 불가능합니다. 이런 경우는 MapReduce로 한 라인씩 읽어 상황에 맞게 처리해야 하는데요. 예상치 못한 패턴이 발견되면 그에 맞게 로직을 수정해야 하는 경우가 자주 발생합니다.
● Hive로 구현이 어려운 데이터 처리에 사용
사용자 기반 협업 필터링 중 Pearson 방식을 SQL로 처리할 경우에는 ① 사용자의 영화-별점 평균 계산 ② (사용자-영화-별점) * (사용자-영화-별점) 데이터 생성 ③ 사용자-사용자 유사도 계산 의 3단계로 이루어집니다. (하나의 SQL로 작성하여도 Hive 내부적으로 이런 식으로 처리됩니다.) 이중 기술적으로 이슈가 되는 경우는 2, 3번째 단계입니다.
전체 사용자 간의 비교가 이루어지기 때문에, (사용자 전체) * (사용자 전체)의 루프 안에서 (시청 영화 수) * (시청 영화 수) 만큼의 루프가 발생하게 되는데요. 사용자 수나 시청 영화 수가 늘어나게 되면 처리 시간이 기하급수적으로 증가하고 메모리 부족 발생 확률을 증가시킵니다.
이 문제의 경우 적절한 데이터 분산과 데이터 처리 단계를 줄여야 해결할 수 있습니다. MapReduce는 Hive에 비해 훨씬 자유롭게 처리 로직 구현이나 분산 처리 설정할 수 있는데요. 본 프로젝트에서 필자는 2, 3 단계를 한꺼번에 처리하는 MapReduce 프로그램을 개발하고, 최적의 분산 처리 환경 값을 찾아 최종적으로 약 10배의 성능 향상을 얻었습니다.
원고를 마무리하며
많은 통계 모형들은 초기에는 잘 맞다가 시간이 지나면서 성능이 떨어지게 됩니다. 예를 들어 수요예측 모형을 만든 경우, 시간이 지나면 지날수록 소비 패턴 변화, 경쟁사 제품 출시 등 외부적인 요소로 인해 필연적으로 성능이 떨어지고 지속적인 알고리즘의 튜닝과 업데이트가 필요합니다.
그러나, 위에서 말씀드린 기본적인 추천 알고리즘들은 상대적으로 튜닝 없이도 오랜 기간동안 성능 저하가 크게 일어나지 않는 편입니다. 왜냐하면 앞서 말씀드린 마이크로 세그멘테이션 기법을 내부적으로 지속 업데이트하고 있기 때문입니다. 단, 여기서 반드시 알아야 할 것은 성능 저하가 적은 경우는 추천 기본 모형을 적용할 때입니다.
복잡한 모형은 외부의 작은 변화에도 모형의 왜곡이 일어나기 쉽습니다. 그만큼 구축 때뿐만 아니라 유지 보수에서도 많은 노력과 비용이 소요됩니다. 여러 가지 복잡한 모형을 사용한다고 반드시 좋은 것이 아니며 오히려 복잡도 상승으로 인해 정확도를 떨어뜨릴 수 있고, 비용을 상승시킬 수도 있다는 것을 명심할 필요가 있습니다. 따라서 초기 구축 시에는 추천 기본형 모델로 구축하시는 것을 추천합니다.
글 | LG CNS 빅데이터사업담당, LG CNS 엔트루 컨설팅
[혁신의 시작, 빅데이터 활용 연재 현황]
- [1편] SRA와 함께라면 당신도 데이터 분석 전문가!
- [2편] 빅데이터로 실시간 장애감지 및 분석까지!
- [3편] 금융 정보계에 HIA 도입의 필요성
- [4-1편] 빅데이터를 친구로 만드는 첫 걸음, 바라보는 관점 바꾸기 ①
- [4-2편] 빅데이터를 친구로 만드는 첫 걸음, 바라보는 관점 바꾸기 ②
- [5편] 빅데이터 시대, 자연어 기반의 빠른 검색이 온다
- [6편] 하둡 기반 데이터 웨어하우스 모델링
- [7-1편] 빅데이터 시각화 분석 ①
- [7-2편] 빅데이터 시각화 분석 ②
- [8편] 소셜 빅데이터 분석을 통해 신(新)소비 트렌드를 읽다
- [9-1편] 고객 시선 강탈의 중요 요소 ‘빅데이터 추천 시스템’ ①
- [9-2편] 고객 시선 강탈의 중요 요소 ‘빅데이터 추천 시스템’ ②