본문 바로가기

recommender system13

LLM with Recommender System 논문 리뷰 - 1부 [M6-Rec: Generative Pretrained Language Models are Open-Ended Recommender Systems] 원문 보기 : https://arxiv.org/pdf/2205.08084.pdf   오랜만에 추천 관련 기술 논문을 두 개 정도 읽게 됐다. 업무 연차가 올라가다보니, 새로운 기술을 접목하거나 논문을 읽어보는 데 할애하는 시간이 점점 줄어들고, 도메인과 서비스에 적용되는 루틴한 개발이나 킬러 피쳐 발굴에만 몰두하게 된다. 그래서 새로운 기술이나 논문을 알아보는 시간이 점점 없어지는 것 같다. 그래도 곁눈질로 종종 들여다보곤 하는데, 요즘 많이 언급되는 추천시스템 관련 기술 동향은 크게 2가지 꼭지가 있다고 생각한다. 하나는 GNN-based 모델이고, 또 하나는 Transformer(BERT)를 기반으로 하는 Sequential Recommendation 이다. 한 2~3년 전에도 이 생각을 똑같이 했었.. 2023. 5. 22.
[Recommender System] - MovieLens 데이터셋으로 MultiSAGE의 Context Query 구현하기 - 1 GNN with Context Query (from MultiSAGE) 최근 GNN 관련 기술을 계속 공부중인데, 가장 언급이 많이 되는 논문 중에 하나가 바로 PinSAGE, 그리고 후속으로 MultiSAGE라는 알고리즘을 다루는 [Graph Convolutional Neural Networks for Web-Scale Recommender Systems] 논문이다. 이 방법은 GraphSAGE의 기본 골격에서 PPR(Personalized Page Rank) + RW(Random Walk) 기반으로 효과적인 샘플링 기법을 추가한 알고리즘인데, MultiSAGE 라는 후속 연구에서는 Context Query 라는 것을 제안하기도 하였다. Context Query 라는 개념은 보통 조건부 검색이나 모델 .. 2021. 9. 14.
[Recommender System] - GCN과 MultiSAGE 알고리즘 본 포스팅은 2020년에 발표한 MultiSAGE 알고리즘(MultiSage: Empowering GCN with Contextualized Multi-Embeddings on Web-Scale Multipartite Networks)의 내용을 GCN의 대략적인 히스토리와 함께 엮어낸 것이다. 기술의 주제 자체가 추천시스템인 만큼, 추천시스템과 관련된 내용만을 다루고 있으며 꽤나 많은 부분의 내용을 포스팅 최 하단의 링크들을 참고하여 작성하였다. 1. GCN (Graph Convolutional Neural network)의 개요 1) GCN의 특징 Graph Neural Network는 서로간의 연결관계를 갖고 있는 데이터를 Computer Science 영역의 그래프 표현 방법으로 잘 나타내기 위해 .. 2021. 7. 26.
[Recommender System] - 결과 정렬에서의 Shuffle 알고리즘 본 포스팅은 필자가 쓴 DeliveryHero Korea 기술 블로그(링크)에 있는 추천 시스템의 Shuffle 알고리즘 활용법에 관한 내용을 발췌한 것이다. 회사 기술 블로그에 글을 쓰면서 흥미 위주의 글을 쓰게 되었는데, 여기에 조금 더 내용적인 살을 붙여 글을 재구성하였다. 당연히 비즈니스와 관련이 없는 선에서 세간에 알려진 알고리즘 내용만을 서술하였다. 1. Spotify의 Music Shuffle 알고리즘 추천시스템, 그중에서도 콘텐츠 Shuffle이 필요한 영역에서 가장 대표적인 예시는 Spotify의 Shuffle 알고리즘이다. Music Shuffle 에서는 컨텐츠를 완전한 랜덤으로 추천하지 않는다. 하지만 흔히 알고있기로, 사용자들은 음악 앱에서 셔플 기능을 사용할 때 동작하는 방식을 완.. 2021. 4. 5.
[Recommender System] - 임베딩 벡터의 Nearest Neighbor를 찾는 과정 이번 글에서는 검색/추천 시스템에서 가장 중요한 문제 중 하나인 Vector Space 안에서의 Nearest Neighbor를 찾는 문제에 대해 이야기하려고 한다. 이 문제가 중요한 이유는, ML을 활용하여 검색이나 추천에 활용되는 Item을 Densed Vector로 표현하는 것이 가장 보편적인 방법이 되었기 때문이다. 대표적인 예는 Collaborative Filtering에서 사용되는 Latent Factor이며, 최근에는 Word2Vec과 같이 자연어 처리에서 힌트를 얻은 임베딩 방법을 더 많이 사용하는 듯 하다. 개인적으로 최근에 Densed Vector의 Similarity를 real-time으로 줄세우는 작업을 많이 하게 되었는데, 이러한 Vector Search를 빠르게 구현하기 위해 i.. 2020. 12. 3.
[Recommender System] - Factorization Machine (From Scratch with Python) 이전 포스팅 보기 본 포스팅은 Factorization Machine의 intuitive한 설명(블로그 번역 + 필자 개인적 해석)과 라이브러리 활용법에 대한 포스팅의 후속이다. FM이 sparse한 피처간의 pair-wise interaction을 학습한다는 것을 어렴풋이 이해했다면, 이번에는 실제로 Science 레벨에서 모델링 할때 어떻게 활용해야 하는지를 수식 레벨부터 직접 코드로 구현해보면서 따라가보자. 백문이 불여일견이라 하였으니, 코드 역시 마찬가지일 것이다. 이번 글에서는 FM의 intuitive한 설명은 생략하고 실제로 벡터 단위로 어떤 분석을 수행해야 하는지, pair-wise한 학습을 하면 어떤 이득을 얻을 수 있는지에 대해서 중점적으로 서술하였다. 1. Algorithm Concep.. 2020. 4. 17.
[Recommender System] - 개인화 추천 시스템의 최신 동향 [Recommender System] - 추천 시스템의 전반적인 내용 (1) [Recommender System] - 추천 시스템의 전반적인 내용 (2) [Recommender System] - 추천 시스템에 사용되는 알고리즘들 추천 시스템의 전반적인 내용을 정리한 기존 블로깅에서는 최신 동향과 시스템에 대해서는 아주 간략한 정도로만 소개했었다. 이번 포스팅에서는 추천 시스템의 최신 기술적 동향을 살펴보도록 하자. 본 포스팅에서 기술하는 내용은 완전히 'general'한 추천시스템에 대한 내용이라기보다는, e-commerce에 어느정도는 초점이 맞춰져 있다고 볼 수 있다. 또한 최근 추천 시스템의 거의 절대적인 트렌드인 '개인화 추천'에도 초점이 맞춰져 있다. Recent Personalized Reco.. 2019. 6. 17.
[Recommender System] - 3D CNN for Session-based Recommendation 번역 & 리뷰 업무 차 해외출장을 갔던 도중, 운이 좋게도 논문의 저자를 만날 기회가 있었다. 그래서 급하게 질문거리를 만들기 위해 논문 리뷰를 했는데, 워낙에 글쓰기적으로 잘 쓴 논문이라 반나절만에 빠른 논문 리뷰가 가능했다. 그래서 이번 포스팅은 번갯불에 콩 구워먹듯 읽어본 논문을 다시 한 번 소화시키기 위해 정리하는 포스팅이다. 이 논문은 Recommender System 관련 paper에서 꽤나 인지도가 있었던 논문이다. criteo, RecSys 등의 영향력 있는 추천 미디어에 선정된 논문이기도 하며, 아이디어 자체가 굉장히 재미있어서 주목받았던 아티클이다. 보통 추천 시스템에 적용되는 알고리즘은 feature 관점에서 cross-feature 를 찾아내거나, implicit feedback을 활용하는 방법에.. 2019. 3. 25.
[Recommender System] - Factorization Machine 리뷰 + code 본 포스팅은 링크의 글을 번역한 것이다. 글을 옮기면서 부족한 설명이나 내용은 Factorization Machine 원 논문의 내용을 추가하여 살을 붙여 두었다. 원 블로그의 글은 FM을 이용하여 추천 영역에서의 cold-start 문제를 해결하는 방법에 대한 짧은 설명과 코드를 함께 기술한 글이다. 블로그에서는 tffm을 이용하여 예제를 만들었지만, 현재 사용중인 라이브러리가 xlearn인 관계로, 본 포스팅에서는 xlearn을 이용한 tutorial 코드를 작성하였다. 내용은 생략하고, 코드만 궁금한 사람은 링크로 가면 된다. 데이터 분석가가 개인화 추천을 잘 수행하기 위해선, 최신 머신 러닝을 잘 적용하는 것도 중요하다. 추천 시스템에서의 가장 잘 알려진 알고리즘들이 대부분은 잘 동작한다. 하지만.. 2018. 11. 1.
[Recommender System] - Python으로 Matrix Factorization 구현하기 Matrix Factorization 혹은 Matrix Complementation과 관련된 수많은 변형 알고리즘들이 존재한다. 하지만 본질적으로는 행렬을 분해하고 분해한 행렬을 변수로써 학습하는 것이다. 업데이트 방법에 따라 NNMF, ALS 등으로 나뉘고, cost를 정의하는 방식에 따라 Implicit, explicit data를 처리하는 다른 알고리즘이 된다. 그래서 본질을 제대로 이해하고 있다면, 최근 Kaggle 등에서 유행하고 있는 여러 Matrix Factorization의 최신 알고리즘도 크게 다르지 않다는 것을 알 수 있다. 본 포스팅에서는 Python 코드를 이용하여 banila-MF를 구현할 것이다. (Matrix Factorization에 대한 이론적 설명 참고) 1. Basic .. 2018. 8. 1.