https://arxiv.org/abs/2206.02631
A Survey on Modern Recommendation System based on Big Data
1. Introduction
몇몇 회사에 있어서 추천시스템은 매우 중요한데, 이것이 효과적이라면 많은 수익과 경쟁자들로부터 떨어뜨릴 수 있는 방법이기 때문이다.
Recommendation system 의 4가지 종류
- content-based
- collaborative filtering-based
- knowledge-based
- hybrid-based
2. Recommendation systems
2-1. Content-based recommendation systems
다른 사용자나 아이템 사이의 유사도를 기반으로 아이템을 추천하는 것이다.
이 알고리즘은 아이템들의 설명을 분석함으로써 특정한 사용자의 좋아하는 아이템들의 주된 일반적인 속성들을 구별해내거나 결정짓는다.그런 다음, 이런 preferences를 사용자의 프로파일에 저장해놓고, 사용자의 프로파일과 유사도의 높은 정도를 가지고 있는 아이템을 추천한다.
콘텐츠 기반 추천 시스템은 사용자의 특정 관심사를 파악하거나 다른 사용자의 적은 관심을 가진 희귀한 아이템을 추천할 수 있다.
도메인 지식이 많이 필요하고, 사용자의 존재하는 관심사들에 대해서만 추천이 가능해서 사용자의 존재하는 관심사를 확장하기 위한 능력은 제한된다.
2-2. Collaborative filtering-based recommendation systems
병렬적 특성 때문에 빅데이터 프로세싱 플랫폼에서 주로 사용된다.
다른 사용자에게 추천하기 위해서 사용자의 그룹의 행동을 사용한다.
user-based CF: 사용자는 비슷한 사용자가 좋아하는 상품들의 추천을 받는다. CPC(Constrained Pearson Correlation coefficient), cosine similarity 등의 유사도 계산이 계산될 수 있다.
item-based CF: 아이템의 유사도에 기반하여 아이템에 대한 사용자의 평가를 예상한다. 일반적으로 item-based CF가 더 나은 결과를 보여주는데 이것은 user-based CF가 sparsity, scalability 이슈가 있기 때문이다. 그러나 둘 다 cold-start 문제가 있다.
2-3. Knowledge-based recommendation systems
사용자들, 아이템들, 그리고 아이템들 간의 관계의 기본 지식을 기반으로 사용자에게 아이템을 추천해주는 시스템이다.
사용자의 평가나 구매기록을 필요하지 않기 때문에 cold start problem이 없다.
차나 아파트 같이 아이템들이 자주 구매되지 않은 복잡한 도메인에 잘 맞는 시스템이다. 하지만 요구된 도메인 지식의 취득이 이 기술의 어려운 부분(bottleneck)이 될 수 있다.
2-4. Hybrid-based recommendation systems
여러 개 추천 시스템 기술의 장점을 조합해서 전통적인 추천시스템의 잠재적 약점을 극복하는 것에 목적이 있다.
weighted, mixed, switching, feature combination, feature augmentation, cascade, meta-level methods 라는 7개의 하이브리드 추천 기술들이 있다. 이런 방법들 중에서 주로 사용되는 기술은 CF 와 다른 추천 기술(content-based나 knowledge-based)들이 같이 사용되는 것이다. sparsity, scalability, cold-start problems를 피하기 위해서.
2-5. Challenges
- Sparsity: 큰 데이터셋을 사용하게 되고, 여기서 large and sparse한 matrix가 생겨나게 된다. 이러한 data sparsity 때문에 cold start problems 이 생겨서 성능을 떨어뜨린다.
- Scalability: 사용자와 아이템의 수가 증가할수록 알고리즘의 복잡성도 증가한다. 그럼에도 추천 시스템은 사용자의 요구에 즉시 응답해야 한다.
- Diversity: 사용자가 새로운 아이템을 발견할 수 있도록 돕기 위해 다양성을 높일 필요가 있다. 불행하게도 몇몇 전통적인 알고리즘은 의도치않게 그들은 항상 인기있고 높게 평가된 몇몇 특정 사용자들이 사랑하는 아이템들을 추천한다.
3. Recommendation system based on big data
Big data 가 가지는 4가지의 특별한 "4V" 특성
- Volume : data의 크기
- Variety: datad의 여러 종류들
- Velocity: 데이터가 생성되는 스피드
- Veracity: data의 신뢰성
Big data processing flow
- Data collection
- Data processing and integration
- Data anlysis
- Data interpretation
중간 크기의 추천 시스템에서는 모든 데이터를 메모리에 한번에 로드하는 것이 불가능
최근에 hadoop, spark과 같은 빅데이터 구조를 위한 오픈 소스 프레임워크가 널리 사용된다. 각 프레임워크는 큰 데이터셋을 prepare, process, manage, analyze 가능한 확장가능한 ecosystem을 포함하고 있다.
하둡은 거대하고 엉켜진 데이터 문제들을 해결할 수 있는 컴퓨터의 네트워크를 가능하게 함으로써 사용자가 빅 데이터를 관리하도록 허락한다. scalable 하고, cost-effective한 솔루션으로써, 구조적, 반구조적, 구조적이지 않은 데이터를 저장하기 위한 솔루션이다.
스파크는 빅데이터셋을 위한 데이터 프로세싱 엔진이다. 하둡과 같이 큰 task를 다른 노드에 걸쳐 나눈다. 그러나 하둡보다 빠른 성능을 보여주고, ram에서 cache로 파일 시스템 대신 데이터를 처리하도록 한다. 이것이 하둡은 불가능한다 스파크가 처리할 수 있는 것이다.
스파크 프레임워크의 몇가지 장점: SQL 쿼리, 스트리밍 데이터, ML, 그래프 처리를 지원하는 통합된 엔진이다. 인메모리 프로세싱부터 디스크 데이터 스토리지까지 작은 workloads에서는 하둡보다 100배 빠르다. 반구조적데이터와 trnasforming data를 다루기 위한 api가 있다.
더불어 스파크는 하둡 에코 시스템과 완전히 호환되고, HDFS, 아파치 하이브, 그 외 시스템들과 원활하게 작동된다.
왜 읽었는가?
추천시스템에 대해 가볍게 훑어보고 싶었고, survey 중 제일 짧은 것을 택해서 읽어보았다.
어떤가?
스파크가 짱이구나.. 그래서 데이터 엔지니어 일부 요구사항에 하둡, 스파크 경험에 대한 요청이 많았던 거구나 느끼게 되었다. 빅데이터들을 다루는 곳들이구나.. 생각이 들었다.
그래서 다음 방향은?
옛날에 봤던 유투브 추천 시스템을 읽어보고 정리해야겠다. 순서도 중요하겠지만, 나는 쉽고 짧은 것부터 읽어보면서 흥미를 잃지 않도록 해야될 것 같다.
'공부 > 논문' 카테고리의 다른 글
VITS (0) | 2023.01.06 |
---|---|
RCNN : Rich feature hierarchies for accurate object detection and semantic segmentation tech report (v5) (0) | 2022.12.24 |
ResNet: Deep Residual Learning for Image Recognition 리뷰(작성중) (0) | 2022.12.24 |
Real-time Facial Surface Geometry from Monocular Video on Mobile GPUs (0) | 2022.04.08 |
BlazeFace (0) | 2022.03.30 |