# Recommendation

Explainable Reasoning over Knowledge Graphs for Recommendation
1. Introduction Interection이 오직 'click'으로 구성되는 것이 아닌 user과 관계있는 item들의 특징을 반영하여 내재된 정보를 파악한다. Knowledge Graph를 사용함으로써 추천에 대한 이유를 설명하고, Cold start 문제를 해결한다. 위의 그림에서 User는 'Alice'이고 이 유저가 'Castle on the Hill' 이라는 곡을 추천 받았을 때, 다음과 같은 경로를 볼 수 있다. (Alice, Interact, Shape of You) -> (Shape of You, IsSongOf, divide(÷)) -> (divide(÷), ContainSong, Castle on the Hill) ==> 수록곡을 통한 Path

FPAdametric
안녕하세요. 이번에는 저희 Applied AI Lab에서 AAAI 2022에 출판한 FPAdametric(False-positive-aware Adaptive Metric Learning for Session-based Recommendation)라는 논문을 소개하려고 합니다. 실험 결과와 이론적 증명 과정은 이 글에서 언급하지 않을 예정이니, 논문을 통해 확인 부탁드리겠습니다. 기술 개발의 background Applied AI Lab에서는 추천 엔진을 여러 서비스에 제공하고 있습니다. 그 중, 한 서비스는 바로 그림 1에서 소개하고 있는 FUSER라는 게임입니다. 우리가 평소 접하는 음원을 들어보면, 가수의 보컬 뿐만 아니라 베이스, 피아노, 드럼 등의 많은 악기들이 합쳐져서 하나의 음원을 구성합니다. 이러한 보컬, 베이스
MeLU
안녕하세요. 이번에는 저희 Applied AI Lab.에서 KDD 2019에 출판한 MeLU(Meta-Learned User preference estimator)라는 논문을 소개하려고 합니다. 이 글에서는 파인만 알고리즘에 따라 1) 저희가 푼 문제에 대한 설명, 2) 이런 아이디어를 생각하게 된 사고 과정, 그리고 3) 최종적으로 저희가 문제에 대한 답을 어떻게 써내려갔는지에 대해서 소개드리고자 합니다. 실험 결과에 대해서는 이 글에서 언급하지 않을 예정이니, 논문을 통해 확인 부탁드리겠습니다. Write down the problem 저희는 추천 시스템을 공부하면서 '사람들마다 각기 다른 생각을 가지고 있는데 왜 추천 시스템은 모두에게 동일한 아이템을 추천할까?' 하는 호기심이 생겼습니다. 예를 들어, 영화 '인터스텔라'를 본 두 사람 A와 B가 있고, A라는 사람은

첫 장기 프로젝트를 마무리 하며
추천시스템을 통한 (업무 자동화, 유저 만족도 향상) > 특이사항 > ## 1. 다양한 모델들을 병합하여 의사결정을 내려야한다. > > - 다양한 모델들의 output을 score로 통합시켜 이들의 선형결합으로 의사결정을 할 수 있도록 한다. > ## 2. DB에 계속 쌓이는 Dynamic 데이터를 사용한다. > > - 데이터 파이프라인을 구성해야한다. > > - SQLAlchemy 와 ORM을 조합하여 query를 구현한다. > > - 새로운 tool의 필요성을 느꼈다. > > --> Apache Airflow를 적용해야한다고 생각하여, 공부중 > ## 3. 모델의 결과를 상당히 많은 제약조건들을 체크하며 최종 결과를 내야한다. > > - 음식점과 고객사간의 그룹은 어떠한가? >

[추천 시스템] 사용하는 데이터 & 추천 알고리즘의 종류
1. 추천 시스템 & 추천 알고리즘이란? 📌 추천 시스템 : 아이템 바탕으로 어떤 추천을 할지, 플랫폼 상에서 유저에게 추천 결과를 어떻게 보여줄지 전체 시스템을 총괄하는 것 📌 추천 알고리즘 : 아이템 pool(전체) -> 특정 후보군 추출 -> 후보군을 바탕으로 예측 or 필터링 수행 -> 그 결과를 바탕으로 상품 순위 매김 2. 추천 시스템에서 사용하는 데이터 2.1. 유저 정보 : 유저의 프로필 정보 -

[UX Engineering] [IDE] [VS code] Extension & Setting recommendation + shortcuts
저는 vscode 좋아합니다. python은 pycharm 이 좋은거 같은데 javascript는 vscode가 짱입니다. Visual Studio는 학부 시절에 쓴거 같습니다... vim은 트라우마 있어서 별로 안좋아합니다... 맨날 인터넷에 vim 단축키 검색합니다... 😥 그래도 이 단축키 알고 있으면 가끔 커맨드창 다룰때 도움되기는 하더라구용... UI 개발, svg, interaction 등 이제 관련 일을 시작한지 1년이 다 되어가네요. 😎 제가 코드 짜면서 유용했던 Extension, Setting, shortcut 공유해 보겠습니다. 저는 이것저것 찾아보는거랑 드림코딩 유튜브에서 도움을

SR-GNN (Session-based Recommendation with GNN)
소비자의 로그(클릭 순서)를 기반으로하는 추천시스템인 SR-GNN에 대해 작성해보겠다 **paper link ** https://arxiv.org/abs/1811.00855 **reference ** https://medium.com/stanford-cs224w/buy-this-session-based-recommendation-using-sr-gnn-d3415e393722 https://greeksharifa.github.io/machine_learning/2021/07/03/SRGNN/ > ### SR-GNN 이란? 기존의 세션 기반의 추천 알고리즘의 RNN에 GNN을 결합함으로써 Item 맥락간의 transifion까지 포착하는 알고리즘이다

[논문리뷰] LightGCN: Simplifying and Powering Graph Convolution Network for Recommendation (2020)
세 줄 요약 collaborative filtering의 성능을 저하시키는 기존 GCN 구조 (feature transformation, nonlinear activation) 의 단순화를 목적으로 함 neighborhood aggregation과 같은 주 요소만 포함한 LightGCN을 제안 SOTA GCN-based recommender 보다 향상된 결과를 보임 Problem definition GCN은 node feature가 풍부한 그래프의 node classification 태스크에 주로 이용되는 방법론 하지만, CF를 위한 user-item interaction graph에서 각 node는 ID embedding으로 이루어짐 (no concrete semantic) 따라서, GCN의 feature transformation 과 nonlinear activation은 Neural Graph Collaborative Filtering (NGC
IGMC (Inductive Graph-based Matrix Completion)
최근 추천시스템과 GNN을 공부하면서 피눈물을 흘리고 있다 미숙한 Pytorch와 Graph이론, 딥러닝 기본 이론부터 선형대수학까지.. 정말 오랜만에 내용이 너무 어려워서 하기 싫다는 생각을 하고있다 웬만하면 잘 포기하지않고 꾸준히 하는 나인데.. 고로 IGMC에 대한 본 포스팅도 부족한 내용이 많을 수 있다 그래도 계속 공부해가면서 꾸준히 수정하도록 하겠다! paper link https://arxiv.org/abs/1904.12058 reference https://medium.com/stanford-cs224w/graph-neural-network-based-movie-recommender-system-5876b9686df3 https://greeksharifa.github.io/machine_learning/2021/08/26/IGMC/ > IGMC의 특징은 다음과 같다 GNN + 행렬분해 알고리즘 (잠재 벡터) 기존의 GNN을 이용한 GC-M

잠재 인수 모형
잠재 인수 모형 사용자와 상품을 이종 노드로 생각하고 이를 각각 임베딩 공간으로 표현 (벡터로 표현) 고정된 인수 대신 효과적인 인수를 학습하는 것을 목표로 함 예시) 영화 추천의 경우, 영화의 장르 & 분위기가 인수가 될 수있음 학습한 인수를 잠재 인수라고 부름 사용자와 상품을 임베딩하는 기준 다음과 같이 표현할 수 있다 (생각하고 있는 바를 직접 그려서 표현한것이기 때문에 틀린 표현이 있을 수 있습니다) 고급 잠재 인수 모형 사용자와 상품의 편향을 고려 사용자 편향 : 해당 사용자의 평점 평균과 전체 사용자 평점 평균의 차 상품 편향 : 해당 상품의 평점 평균과 전체 상품 평점 평균의 차 => 평점을 그냥 r_xi로 표현하는것이
추천 시스템
본 포스팅은 네이버커넥트재단과 신기정 교수님(KAIST AI대학원) 자료를 참고하여 작성하였습니다 1. 추천시스템이란 > - 개인에 대한 데이터가 수 없이 많이 쌓이는 세상이기 때문에게, 각 개인에게 맞춤형 추천시스템을 많은 회사에서 도입하고 있습니다 유튜브의 알고리즘, 넷플릭스에서의 영화 추천, 최근 떠오르고 있는 마이데이터 관련 사업들이 그것들의 일환이라고 할 수 있겠습니다 1-1. 추천시스템과 그래프 사용자별 구매 기록을 노드로 표현하여 이종 노드의 그래프로 나타낼 수 있습니다 그래프 관점에서 추천 시스템은 '미래의 간선을 예측하는 문제(무엇을 구매하겠는가)' 혹은 '누락된 간선의 가중치를 추정하는 문제(사용자가 별점을 얼마나 메길지)'로 해석할 수 있습니다 2. 추천시스템의 종류 2-1. 내용 기반 추천 시스템 > 내용 기반 추천은 각 사용자가 구매했던 상품과 유사한 것을 추천하는 방법입니다 -
[NLP] 03. 협업 필터링 기반 추천시스템 : KNN, Matrix Factorization Principles(SGD, SVD, ALS)
사용자의 구매 패턴이나 평점을 가지고 다른 사람들의 구매 패턴, 평점을 비교하여 추천하는 방법이다. 장점 도메인 지식이 필요하지 않다.(추가적인 사용자의 개인정보나 item의 정보가 없어도 추천할 수 있다.) 사용자의 새로운 흥미를 발견하기 좋다. 추가 문맥 정보 등이 필요 없기 때문에 시작단계의 모델로 선택하기 좋다. 2006 ~ 2009 Netflix Prize Competition에서 우승한 알고리즘이다. 단점 새로운 아이템에 대해서 다루기가 힘듬 side features(개인정보, 추가정보)를 포함시키기 어려움 종류 > 1. 최근접 이웃기반 > 2. 잠재 요인기반 메모리 기반, 이웃 기반 ( Neighborhodd based Collaborative Filtering ) 메모리 기반 알고리즘으로 협업 필터링을 위해 개발된 초기 알고리즘이다. 사용자 기반(User-based)와 상품 기반(Item-based) 협업 필터링
[NLP] 02. 컨텐츠 기반 추천시스템 : TF-IDF, Word2Vec(CBOW, Skip-gram)
이전 목록 : 과거 추천시스템 컨텐츠 기반 추천시스템은 사용자가 이전에 구매한 상품중에서 좋아하는 상품들과 유사한 상품들을 추천하는 방법으로 Item을 벡터 형태로 표현하여 컴퓨터가 벡터끼리의 거리를 유사도로 인식하게 하는 방법이다. TF-IDF 단어 빈도(TF)와 전체 문서에서 특정 단어가 얼마나 자주 등장하는지를 의미하는 역문서 빈도(DF)를 통해 "다른 문서에서는 등장하지 않지만 특정 문서에서만 자주 등장하는 단어"를 찾아내 문서 내 단어의 가중치를 계산하는 방법 문서의 핵심어 추출, 문서들 사이의 유사도 계산, 검색 결과의 중요도를 정하는 작업등에 활용할 수 있다. * 장점 * 직관적인 해석이 가능하다. TF(d, t) : 특정 문서 d에서의 특정 단어 t의 등장 횟수 DF(t) : 특정 단어 t가 등장한 문서의 수 IDF(d, t) : DF(t
[NLP] 01. 과거의 추천시스템 : 연관상품 추천, Apriori 알고리즘, FP-Growth
git : choco9966/T-academy-Recommendation의 내용을 정리한 것입니다. 추천시스템 목표 : 어떤 사용자(user)에게 어떤 상품(item)을 어떻게 추천할 것인가 방법 1 : 다른 사람들과 같이 본 상품 추천 방법 2 : 유사한 상품 추천 추천시스템은 아래와 같이 발전해왔다. > 연관상품 추천, Apriori 알고리즘 > 협업 필터링 : SVD > Spark를 이용한 빅데이터 : FP-Growth, Matrix Factorization > 딥러닝을 이용한 추천시스템 : 협업필터링 + 딥러닝, Item2Vec, Doc2Vec, YouTube Recommendation, Wide & Deep Model > 개인화 추천시스템 : Factorization Machine, Hierarchical RNN, 강화학습 + Re-Ranking, 딥러닝

[논문리뷰] Soft Retargeting Network for CTR Prediction
paper: https://arxiv.org/pdf/2206.01894.pdf company: alibaba CTR 예측에서 사용자의 관심에 대한 연구는 중요한 부분을 차지합니다. 사용자의 관심은 관점에 따라 여러가지고 나뉘는데, 해당 논문에서는 사용자의 리타겟팅 관심에 대해 다룹니다. 리타겟팅 관심이란, 사용자가 이전에 클릭했던 상품들과 같거나 유사한 새로운 타겟 상품에 대한 관심을 의미합니다. 해당 논문에서는 리타겟팅 관심도를 모델링 하는 SRN(Soft Retargeting Network)을 제안합니다. 타겟 삼품과 사용자의 히스토리 상품(클릭된) 사이 유사도를 계산하고, 유사도를 이용해 타겟 상품에 대한 사용자의 클릭을 예측합니다. 이러한 SRN을 통해 성능 향상을 이뤘습니다. 1. Introduction 사용자가 클릭한 히스토리 상품들은 대부분 두 가지 방법으로 추천되었습니다. 사용자가 이전에 방문 페이지를 기반으로 리마인드 시켜주는 리타겟팅 서비스

추천 시스템
출처: CuMFSGD: Fast and Scalable Matrix Factorization https://arxiv.org/pdf/1610.05838.pdf_ https://github.com/jujemu/Aiffel/blob/master/EX/Ex-15/%5BEx_15%5DRecommend.ipynb
theory)) recommendation_system
#출처 http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791161755878 추천시스템의 궁극적 목표 추천시스템의 기본적인 아이디어는 고객의 관심을 추론하는 것, 목표는 과거 관심사와 서향이 미래의 선택에 대한 좋은 방향성을 제시해주는 경우가 많기 때문에 추천 분석은 사용자와 아이템간의 과거의 상호작용에 기반한 추천시스템이 주를 이른다고 볼 수 있다. 이에 반해 지식 기반 추천 시스템의 경우는 사용자의 과거 이력보다는 사용자가 지정한 요구 사항에 따라 제안된다는 추천 시스템도 존재한다. 추천시스템의 - 협업필터링 아직 평가하지 않은 평점을 예측하기 위해 여러 사용자가 이미 평가한 평점을 사용하는 것을 의미한다. 랭킹모델의 경우 top-k개의 추천 문제를 다양한 사용자 아이템 조합에 대해 예측 모델을 해결후, 다음 예측 결과의 순위를 지정해 얻을 수 있
Wide & Deep Learning for Recommender Systems
Abstract GLM 같은 linear model의 경우 feature 간 cross product를 통해 쉽게 memorization 특성을 얻을 수 있지만, generalization을 얻기 위해서는 feature engineering이라는 노력을 들여야한다. 반면 DNN 모델의 경우 generalization에 이점(deep)이 있다. 그렇기에 둘을 합친 wide and deep learning model을 제안하고 이를 구글 플레이 추천에 적용해보았다. Recommender system overview > 추천 시스템은 search ranking system으로 바라볼 수 있다. query : user 와 contextual information output : 클릭할 만한 아이템 리스트 
Deep Neural Networks for YouTube Recommendations
Abstract scalability를 고려하여 후보생성 + 랭킹모델 구조로 딥러닝기반 추천모델 제안 Introduction 유튜브에서는 매순간 새로운 영상이 업데이트 되고, 이에 따라 수억명 사용자들의 다양한 interaction이 발생한다. 이에 따라 유튜브는 세가지 관점에 집중해 영상 추천을 진행한다. > Scale 엄청난 규모의 아이템과 사용자 수 Freshness 매초마다 업데이트되는 아이템과 그에 따른 사용자의 반응을 다뤄야 함 Noise implicit feedback, sparsity, 외부요인 등으로 사용자의 진정한 취향을 파악하기 어려움. 이런 문제들에서 robust한 추천모델을 구축하는 것이 목표. System overview 
Explainable Reasoning over Knowledge Graphs for Recommendation
1. Introduction Interection이 오직 'click'으로 구성되는 것이 아닌 user과 관계있는 item들의 특징을 반영하여 내재된 정보를 파악한다. Knowledge Graph를 사용함으로써 추천에 대한 이유를 설명하고, Cold start 문제를 해결한다. 위의 그림에서 User는 'Alice'이고 이 유저가 'Castle on the Hill' 이라는 곡을 추천 받았을 때, 다음과 같은 경로를 볼 수 있다. (Alice, Interact, Shape of You) -> (Shape of You, IsSongOf, divide(÷)) -> (divide(÷), ContainSong, Castle on the Hill) ==> 수록곡을 통한 Path