안녕하세요. 중고거래 플랫폼을 서비스하는 번개장터 주식회사에서 엔지니어로 일하고 있는 이명휘입니다. 우리 번개장터에서는 새로운 추천시스템을 도입하게 되었으며, 이를 개발하면서 느꼈던 부분을 많은 분과 공유하고 싶어 이렇게 글을 쓰게 되었습니다.
1. 추천시스템 소개
-
현재 전 세계 공룡 IT기업들은 고도화된 추천엔진을 서비스에 접목하고 있습니다. 이미 실제로 우리 생활에도 침투되어 많은 영역에서 흥미를 이끌기도 합니다. 유튜브에서 동영상을 시청하게 되면 하단영역에 비슷한 영상을 추가로 보여주는 것을 추천시스템의 예로 들어볼 수 있습니다. 또한, 소셜네트워크에서 나와 비슷한 흥미를 가진 사람들을 추천해주는 것도 비슷한 원리일 것입니다. 이처럼 많은 사용자를 이목을 단숨에 이끌 수 있으며, 이는 수익구조와 연결될 수 있는 중요한 역할을 하는 기능입니다.
-
위와 비슷한 이유로 번개장터에서는 고객들에게 고품질의 검색결과와 유사도가 높은 연관상품을 추천해드리기 위해서 새롭게 추천시스템을 개발하게 되었습니다. 참고로 이번 개발은 물품 상세페이지 하단영역에 대한 연관상품 추천(item-to-item) 기능을 만드는 것에 초점을 두었습니다.
2. 기존 번개장터의 추천시스템 소개
-
기존 번개장터 앱에서 특정 물품의 상세 페이지 하단영역에 연관상품을 추천하는 방식은 단순하며, 효과적인 방법이었습니다. 하루에 한번 배치작업을 통해서 물품 카테고리 별로 물품 순위를 매기게 됩니다. 이는 단순 클릭 수를 기반으로 랭킹을 정하는 것입니다. 번개장터는 물품에 대한 카테고리가 매우 세분화되어 있었기 때문에 얼추 그럴듯한 상품을 추천해주었습니다.
-
하지만 번개장터가 중고거래 애플리케이션인만큼, 고객들은 새로운 상품보다는 자신이 찾고있는 상품과 가장 유사한 상품을 원할 것이라고 가정하게 되었습니다. 그리하여 고객들 입장에 서서 문제를 다시정의 하게 되었습니다. 사용자가 찾고 있는 물품과 가장 유사한 제품을 보여주며, 이를 통해 사용자간의 거래(C2C)가 더욱 활발해지길 기대하였습니다.
3. 추천 기법(알고리즘)의 종류 및 소개
- 실제로 추천기법은 과거부터 많은 연구가 행해져왔습니다. 그중 가장 유명한 협업필터링(Collaborative Filtering)을 먼저 꼽아볼 수 있습니다. 협업필터링의 개념은 간단합니다. 나와 비슷한 성향을 가진 사람들이 본 물품을 나에게 추천하는 것입니다. 이는 2006년에 게재된 넷플릭스 추천대회에서 소개된 행렬분해(Matrix Factorization) 기법을 시작으로 많은 발전을 거듭해왔습니다[1]. 알고리즘의 개념 및 수식들은 논문에서도 찾아볼 수 있듯이(수식 및 상세개념은 인터넷에 많이 보급되어 있기 때문에 생략합니다) 획기적이며 빨랐습니다. 또한, 국내외로도 협업필터링에 대한 연구가 많은 진화를 했습니다. 최근 국내의 한 대학에서는 대부분의 추천기법의 고질적인 문제인 Cold Start와 Data Sparsity문제 등을 해결하기 위해 획기적인 연구결과를 저명한 컨퍼런스에서 소개하기도 하였습니다.
- 또한, 최근에는 지도학습(RNN & LSTM) 및 비지도학습(Autoencoder)을 중점으로한 고도화된 추천을 진행하는 개념도 연구에서 소개되고 있습니다. 이미 유튜브에서는 이를 논문으로 소개하며, 이미 적용하고 있습니다. 국내의 대형포털사도 비슷한 개념을 소개하는 논문을 게재하기도 하였습니다. 아래는 그에 대한 논문입니다.
- — Covington, P., Adams, J., & Sargin, E. (2016, September). Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems (pp. 191-198). ACM.
- — Park, K., Lee, J., & Choi, J. (2017, November). Deep Neural Networks for News Recommendations. In Proceedings of the 2017 ACM on Conference on Information and Knowledge Management (pp. 2255-2258). ACM.
-
하지만 이렇게 고도화된 추천기법도 앞서 말씀드린대로 고질적인 문제를 내포하고 있습니다[2-7].
- Data sparsity issue
- 유저와 물품과의 데이터수가 방대해질수록 서로간의 관계를 찾지 못하는 현상을 말합니다.
- 유저와 물품과의 데이터수가 방대해질수록 서로간의 관계를 찾지 못하는 현상을 말합니다.
- Cold start issue
- 신규 유저이거나 신규 물품일 때 과거 이력이 없기때문에 추천기법을 활용하기 어려운 현상을 말합니다.
- 신규 유저이거나 신규 물품일 때 과거 이력이 없기때문에 추천기법을 활용하기 어려운 현상을 말합니다.
- Scalability issue
- 물품과 유저수가 늘어날 수록 나타나는 메모리에 대한 문제들을 내포하고있습니다.
- 물품과 유저수가 늘어날 수록 나타나는 메모리에 대한 문제들을 내포하고있습니다.
- Privacy issue (Gray sheep)
- 현재 존재하는 거의 모든 추천기법들은 다른 사용자의 정보에 기반해 자신에게 아이템을 추천해주곤합니다. 하지만 이럴경우 보안상의 문제가 대두될 수 있습니다.
- 현재 존재하는 거의 모든 추천기법들은 다른 사용자의 정보에 기반해 자신에게 아이템을 추천해주곤합니다. 하지만 이럴경우 보안상의 문제가 대두될 수 있습니다.
- Timing issue
- 특정 물품이 필요한 타이밍에 정확하게 유저에게 추천해주는 것은 중요한 사항입니다. 이를 해결하기 위해서는 다양한 실험이 필요하기도 합니다.
- 특정 물품이 필요한 타이밍에 정확하게 유저에게 추천해주는 것은 중요한 사항입니다. 이를 해결하기 위해서는 다양한 실험이 필요하기도 합니다.
- Data sparsity issue
- 이외에도 Synonmy problem, Over-Specialization 등 여러 문제를 가지고 있기도 합니다.
4. 번개장터가 선택한 추천기법과 선택이유
- 결과적으로 번개장터에서는 협업필터링을 활용하기로 하였습니다. 그 이유는 다음과 같이 정리해볼 수 있습니다.
- 우리 번개장터는 추천시스템을 생성할 때, 추천기법을 중심으로 생각하기 보다는 추천을 활용하는 구좌에 대해서 먼저 고민을 하였습니다. 연관추천상품을 개발하는 입장에서 RNN과 같은 딥러닝 기반의 추천기법을 활용하는 것은 서버의 가격대비 성능상 메리트가 없어보였습니다.
- 번개장터에서는 이미 데이터 파이프라인 및 통계를 위해서 Spark를 활용하고 있었습니다. Spark의 기계학습 라이브러리는 매우 섬세하며, 사용자 친화적으로 구성되어 있습니다. 짧은 시간안에 최적의 결과를 만들어야 하는 스타트업의 특성상 EMR(Elastic MapReduce)를 기반으로한 Spark 활용이 가장 최적의 결과로 다가왔습니다.
- Spark 기계학습 라이브러리에서 제공하는 ALS(Alternative Least Square)는 많은 연구에서 속도에 대한 말이 많았지만, 이미 많은 사례를 통해 검증되어 있는 믿음직한 최적화 방법이라 생각했습니다[8].
- 우리 번개장터는 추천시스템을 생성할 때, 추천기법을 중심으로 생각하기 보다는 추천을 활용하는 구좌에 대해서 먼저 고민을 하였습니다. 연관추천상품을 개발하는 입장에서 RNN과 같은 딥러닝 기반의 추천기법을 활용하는 것은 서버의 가격대비 성능상 메리트가 없어보였습니다.
5. 추천시스템의 구현
- 번개장터 추천시스템의 구현에 대한 상세한 내용은 다음 포스팅에서 소개하도록하겠습니다.
6. 인용
- [1] Koren, Y., Bell, R., & Volinsky, C. (2009). Matrix factorization techniques for recommender systems. Computer, 42(8).
- [2] Park, C., Kim, D., Oh, J., & Yu, H. (2016, April). Trecso: Enhancing top-k recommendation with social information. In Proceedings of the 25th International Conference Companion on World Wide Web (pp. 89-90). International World Wide Web Conferences Steering Committee.
- [3] Kim, D., Park, C., Oh, J., Lee, S., & Yu, H. (2016, September). Convolutional matrix factorization for document context-aware recommendation. In Proceedings of the 10th ACM Conference on Recommender Systems (pp. 233-240). ACM.
- [4] Park, C., Kim, D., Oh, J., & Yu, H. (2016). Improving top-K recommendation with truster and trustee relationship in user trust network. Information Sciences, 374, 100-114.
- [5] Kim, D., Park, C., Oh, J., & Yu, H. (2017). Deep hybrid recommender systems via exploiting document context and statistics of items. Information Sciences, 417, 72-87.
- [6] Karatzoglou, A., Amatriain, X., Baltrunas, L., & Oliver, N. (2010, September). Multiverse recommendation: n-dimensional tensor factorization for context-aware collaborative filtering. In Proceedings of the fourth ACM conference on Recommender systems (pp. 79-86). ACM.
- [7] Fakhfakh, R., Ammar, A. B., & Amar, C. B. (2017). Deep Learning-Based Recommendation: Current Issues and Challenges. INTERNATIONAL JOURNAL OF ADVANCED COMPUTER SCIENCE AND APPLICATIONS, 8(12), 59-68.
- [8] Verma, A., & Kumar, D. (2017). Evaluating and Enhancing Efficiency of Recommendation System using Big Data Analytics.
글쓴이 - 이명휘 : 번개장터 주식회사 엔지니어(컴퓨터공학 학사 / 건축공학 석사)
머신러닝에 기반한 최적화 및 신재생에너지에 대한 연구를 했습니다.
흥미로운 논문에 대한 리뷰를 취미로 합니다.
Web : developeco.com
ResearchGate : bit.ly/2HF9M9x
Github : /Myeonghwi