데이터과학 28

[추천시스템][paper review][구현] Neural Collaborative Filtering

1. Backgrounds Recommender system 정보가 넘쳐나는 현 시대에서 추천 시스템은 전자 상거래, 온라인 뉴스 및 소셜 미디어 사이트를 포함한 많은 온라인 서비스에 널리 채택되어 정보 과부하를 완화하는 데 중요한 역할을 하고 있습니다. 컨텐츠 기반(content-based) 방법과 더불어 추천시스템의 한가지 큰 줄기인 협업 필터링(Collaborative Filtering)은 특정 아이템에 대한 유저의 선호도를 평점과 방문기록 등의 과거 상호관계(interaction)에 기반하여 모델링합니다. Matrix factorization 협업 필터링에서 가장 대중적으로 사용되는 기술은 Matrix Factorization 입니다. 'Netflix Prize'를 통하여 유명해진 Matrix f..

[추천시스템][paper review][구현] Matrix Factorization Techniques for recommender systems

Recommender System 정보가 넘쳐나는 현 시대에서 추천 시스템은 전자 상거래, 온라인 뉴스 및 소셜 미디어 사이트를 포함한 많은 온라인 서비스에 널리 채택되어 기호에 맞는 상품을 제공하고 있습니다. 소비자에게 적합한 제품을 추천해주는 것은 소비자의 만족도와 충성도를 높일 수 있는 열쇠입니다. 따라서 많은 업체들은 제품에 대한 사용자의 패턴을 분석하여 개인화된 추천을 제공할 수 있는 추천시스템에 더욱 관심을 갖게 되었습니다. strategies for Recommender System 추천시스템은 크게 두가지 갈레로 나뉩니다. 첫번째는 컨텐츠 기반 필터링(content-based)입니다. 컨텐츠 기반 추천 시스템은 각각의 유저, 아이템에 대한 Profile을 생성하여, Profile을 통해 과..

[자연어처리][paper review] GPT-3 : Language Models are Few-Shot Learners

Attention Mechanism과 Transformer의 등장, 그리고 대용량 corpus에서의 pre-training과 task-specific Fine-tuning으로 학습하는 언어모델은 근래에 대부분의 NLP task 성능을 몰라보게 끌어올렸습니다. 이러한 모델들을 대부분의 테스크에 잘 작동하는 task-agnostic 모델이라고 표현합니다. 그렇다면 task-agnostic한 Pretrained language model은 만능일까요? 역시 아직은 해결해야 할 한계점이 존재합니다. 바로, Fine-tuning 과정에서 아직은 적게는 수천, 많게는 수만의 labeled supervision dataset을 필요로 한다는 것 입니다. 이러한 한계점의 해결은 다음의 세가지 관점에서 매우 중요합니다...

[자연어처리][Metric] ROUGE score : Recall-Oriented Understudy for Gisting Evaluation

ROUGE ROUGE(Recall-Oriented Understudy for Gisting Evaluation)는 text summarization, machine translation과 같은 generation task를 평가하기 위해 사용되는 대표적인 Metric입니다. 본 글의 내용은 ROUGE score에 관한 논문인 https://aclanthology.org/W04-1013/를 참고하여 작성되었습니다. Machine translation에서 주로 사용하는 BLEU가 n-gram Precision에 기반한 지표라면, ROUGE는 이름 그대로 n-gram Recall에 기반하여 계산됩니다. 우선 N-gram에 대한 ROUGE-N은 다음과 같습니다. $$ROUGE-N = {{\sum_{S\in \{..

[자연어처리][paper review] GPT-2 : Language Models are Unsupervised Multitask Learners

머신러닝 시스템은 Task에 특화된 대규모의 데이터셋과 대용량의 모델, 그리고 지도학습을 통해 빠르게 발전해왔습니다. 머신러닝 시스템을 개발하기 위한 가장 일반적인 방법은 다음과 같습니다. 1. 의도하는 Task에 맞는 데이터를 수집. 2. 수집한 데이터를 통해 Task를 모방할 수 있는 모델을 학습. 3. IID(independent and identically distributed) hold-out set을 통해 검증. 위와 같이 가장 보편화된 절차는 특정 Domain과 Task의 전문가와 같은 훌륭한 Expert Model을 만들 수 있게 합니다. 그러나 저자들은 이러한 모델이 Narrow Expert 로서 데이터 분포의 변화 혹은 Task의 변화에 매우 취약하다고 주장합니다. Domain과 Tas..