- 2020년 10월 19일 오후 12:25
- 조회수: 3782
INFORMATION
- 2020년 10월 23일
- 오후 1시 ~
- 온라인 비디오 시청 (YouTube)
TOPIC
On-Line Video
OVERVIEW
발표자 후기
금일 세미나는 ‘Introduction to Sequential Recommender Systems’에 대하여 진행하였다. 첫 세미나인 만큼 평소에 연구중인 분야이면서도 연구실의 모든 연구원들에게 도움이 될 만한 주제를 선정하고자 고민하다보니 추천시스템의 전반적인 흐름에 대하여 다루게 되었다. 한번쯤은 기본적인 알고리즘부터 개념을 정리하고 싶다 생각을 하였는데, 이번 세미나를 기회로 다양하게 공부해보고 머릿속에 있던 개념들을 다시 정리할 수 있어 개인적으로도 큰 도움이 되었다. 방대한 내용을 짧은 시간내에 정리하려다보니 요약된 내용도 많이 있었지만 그만큼 많은 내용들이 잘 전달되었으면 한다. 첫 세미나 준비에 많은 도움을 주신 연구원분들에게 감사드립니다.
청취자 후기
최근에 사용자가 많아질 때를 대비해서 이제 추천시스템 적용 또한 딥러닝 기반으로 할려고 기획중에 있는 단계에서 이번 세미나에는 참으로 유익했다. 당장은 컨텐츠 기반으로 분석 추천하는 것으로 갈 것이지만 사용자 로깅 정보기반, 이전 이력이 없어도 추천가능, 추천 받을 사용자의 로깅 정보가 먼저 필요가 하다는 점에 있어서 장단점을 이해할수 있었고, 추후 사용자가 많아지면 기억 기반 필터링 기법으로 특정 아이템에 선호도가 유사한 고객들에게는 다른 아이템에도 비슷한 선호도를 보인다는 점을 이용하여 추천을 해줘야 할것이다. Collaborative Filtering의 Matrix Factorization 정도만 파편적으로 알고 있었지만 이것이 가지는 한계가 있을것이다라고 막연히 생각했고 딥러닝 기반의 추천 시스템을 이전 확률동적계획법이라는 수업에서 Off policy 기반의 REINFORCE라는 알고리즘으로 써서 유투브에 적용한 케이스가 기억이 났지만 너무 적용하기엔 구글이 가지고 있는 데이터 정도 되어야 의미가 있어보였다. 그런 와중에 딥러닝 기반의 추천 시스템으로 그 시작을 알린게 2017년이고 (생각보다 늦었다 싶었다, 그만큼 블루오션 일수도) 딥러닝 기반 추천 시스템 논문 Neural Collaborative Filtering이라는 것이 Matrix Factorization이 가지는 2차원에서의 표현에 한계가 발생을 인지하고 이걸 임베딩으로 해서 뉴럴넷을 사용했다라는 것인데 참 쉬운 발상이지만 그 당시에 큰 첫 걸음을 했다고 생각이 들었다. 그리고 오늘 주제인 "Feature-level Deeper Self-Attention Network for Sequential Recommendation"이라는 논문에서 추후 사용자가 많아지면 이 모델을 꼭 적용하고 싶다라는 생각이 들었고 Attention이 Vanilla Attention Layer라고 명명하던데 바로 인풋 데이터 들어오는 Feeding Layer에 사용되어서 딥러닝의 결과를 입력변수로 해석도 가능하다는 점에서 막연히 생각만 했는데 구체적인 사례가 있어서 몹시 흥미로웠다. Encoder-Decoder의 Dual Stage Attention도 있지만 같은 모델에서 아이템간 Self-Attention Blocks 순차적인 정보는 보존한채 아이템 정보 간의 관계 파악 하는 것까지 같이 2개의 Attention 이 사용하는 것 또한 신기하다 생각했다. 마지막 결과에선 Hit ratio는 알았지만 NDCG(Normalized Discounted Cumulative Gain)라는 지표는 새로웠고 Self-Attention Layer로 분석된 결과가 어떻게 시각화했는지 궁금해서 논문을 찾아봐야겠다. 발표해준 서연이에게 고맙고 우리 회사에 추천 접목할때 이 세미나가 큰 나침반이 될 것 같아 조만간 다시 한번 들어다 볼 것 같아서 좋아요를 또 꾹 눌렀다.
오늘 세미나는 "Introduction to Sequential Recommender Systems"를 주제로 진행되었습니다. 개인에게 적합한 아이템을 추천해주는 추천 시스템은 넷플릭스, 유튜브 등 다양한 플랫폼에 적용되어 플랫폼의 성공을 이끄는 주요한 역할을 해왔습니다. 이번 세미나에서는 머신러닝 기반 방법론부터 딥러닝이 접목된 추천시스템 방법론에 대한 소개가 이루어졌습니다. 첫 번째로 소개된 방법론은 콘텐츠 기반 필터링과 협력 필터링입니다. 콘텐츠 기반 필터링은 과거에 선택한 콘텐츠를 기반으로 가장 유사한 콘텐츠를 추천해주는 방법론입니다. 이전에 선택한 적이 없는 아이템을 추천해준다는 장점이 있지만, 사용자에 대한 데이터가 적을 경우 성능을 보장하기 어렵다는 단점이 있습니다. 다음으로 소개된 방법은 기억기반의 협력 필터링 입니다. 다른 사용자들의 데이터를 이용하여 가장 유사한 사용자가 선택한 아이템을 추천해주거나 유사한 아이템을 추천해주는 방법론입니다. 다음으로 소개된 모델 기반 필터링은 다른 사용자들이 선택한 아이템 데이터를 기반으로 모델을 학습한 후 타겟 사용자가 선택한 아이템을 평가 데이터로 활용하여 타겟 사용자에게 아이템을 추천해주는 방법론입니다. 모델 기반 방법론 중 대표적인 방법론은 matrix factorization입니다. 이는 사용자와 아이템으로 구성된 매트릭스 형태의 데이터를 matrix factorization 기법을 통해 사용자에 잠재벡터와 아이템에 대한 잠재벡터를 계산해내는 방법입니다. 두 번째로 소개된 방법론은 딥러닝 기반의 Neural Collaborative Filtering입니다. 사용자에 대한 벡터와 아이템에 대한 원핫 벡터를 임베딩 레이어를 통해 사용자와 아이템에 대한 잠재 벡터를 계산한 후 해당 벡터를 결합하여 MLP의 입력값으로 활용하는 방법론입니다. 앞에서는 matrix factorization을 통해 잠재 벡터를 계산했던 것을 해당 방법론에서는 뉴럴넷을 활용해 계산하게 됩니다. 마지막으로 소개된 방법론은 transformer를 기반으로 한 모델에 관해 설명되었습니다. 모델의 인풋으로는 사용자가 구매한 아이템의 순차적인 정보와 각 아이템에 대한 브랜드, 카테고리 등 추가적인 정보가 들어가 됩니다. 순차적인 아이템 목록은 self-attention을 통해 embedding vector가 계산되며 추가적인 정보는 아이템과의 attention을 계산한 후 self-attention을 통해 추가적인 정보에 대한 embedding vector를 계산하게 됩니다. 아이템과 추가적인 정보에 대한 embedding vector를 뉴럴넷의 인풋으로 활용해 최종적으로 다음 아이템을 추천해주게 됩니다. 이번 세미나를 통해서 추천시스템에 대해 전반적인 설명을 듣게 되어 의미 있는 세미나였습니다. 세미나를 위해 고생해준 서연이에게 감사의 뜻을 전하며 세미나 후기 마무리하겠습니다.
넷플릭스, 아마존, 타깃, 유튜브 등을 선두로 많은 구독형 서비스 플랫폼이 일상생활에 자리를 잡았다. 이러한 구독형 서비스 플랫폼에서는 항상 사용자들을 자신의 플랫폼에 유지시키기 위해 '우리 플랫폼은 당신이 원하는 것을 가지고 있고, 당신이 무엇을 원하는 지 알고 있다' 라는 것을 인지시킬 필요가 있다. 따라서 구독 경제 혹은 C2C 플랫폼이 커질수록 고객의 마음을 사로잡는 추천 시스템의 역할이 더욱 중요해진다. 오늘 세미나는 넷플릭스나 아마존에서 자주 사용되는 협력 필터링 뿐만 아니라, 다양한 추천 시스템 메커니즘에 대해 소개한다.
기존의 추천 시스템은 이전에 사용자가 골랐던 제품과 유사한 상품만 추천하기에 사용자가 최근에 다른 상품을 골랐더라면 잘 예측하지 못한다고 한다. 이러한 문제를 해결하기 위해, 시간에 대한 가중치를 주어 시퀀셜하게 추천 시스템을 만들게 되었다. 또한 모델의 아키텍처는 Transformer 의 Encoder 부분을 따와서 Multi-Head Self Attention과 Bahdanau Vanilla Attention을 사용하였다. 추천 시스템 관련 내용은 오늘 처음 들어봤는데 직관적인 그림과 깔끔한 그림이 보기 좋았다. 발표하느라 고생한 김서연 연구원에게 감사의 말을 전하고싶다.
오늘 서연이가 Sequential recommender system 분야에 대해 소개해주었다. Recommender system(추천시스템)은 사용자 과거 데이터를 바탕으로 유의미한 정보를 추출하여 특정 아이템을 추천하는 데 활용하는 기계학습 분야다. 추천시스템에서는 (1) 콘텐츠 기반, (2) 협력필터링 기반으로 나눌 수 있는데 (2) 협력필터링 내에서 딥러닝 모델기반 추천시스템 분야를 집중적으로 소개해주었다. 대표적으로 'Neural collaborative filtering' 논문을 예를 들어 주었다. 딥러닝 모델을 기반으로 사용자와 아이템 벡터를 각각 임베딩하여 신경망을 기반으로 유의미한 정보를 추출해 나가는 구조로, 기존에는 주로 사용자와 아이템으로 이루어진 데이터를 제한된 차원으로 표현하는 데 한계점을 극복한다. 또한, 딥러닝 모델 기반 '사용자 과거 아이템 선택정보'를 순자적으로 모델링하여 그 패턴을 기반으로 추천하고자 하는 순차적추천시스템(sequential recommender system)을 소개해 주었다. 일시적인 아이템 추천에서 더 나아가 순차패턴 기반 최근 아이템에 더 집중한 추천을 행한다는 개념은 추천시스템에 가장 적합한 모델링으로 생각했다. 그 순차패턴을 반영하기 위해 그동안 RNN, CNN을 기반으로 많이 수행되었는데 최근 trasformer를 기반으로 시도한 논문 'Feature-level deeper self-attention network for sequential recommendation'을 소개해 주었다. Trasformer는 시간정보를 추출하는 RNN 연산이나 CNN 연산 없이 Attention을 활용한 신경망만으로도 시간정보를 추출하는 데 충분한 점을 강조한 개념이다. 그를 위해 중요한 것이 위치정보를 입력데이터 레벨에서 위치정보를 알려주고, Attention을 사용하여 더 중요한 정보가 무엇인지 가중치를 부여해 예측을 수행한다. 즉, 입력데이터를 구성하는 변수단위(Feature-level)에서 중요한 정보를 더 많이 반영하고, 순차적인 모델링이 가능한 모델을 구축한 게 핵심이다.
오늘 각 방법론마다 가설과 장단점을 들어 설명해주어 추천시스템데 해한 Hierarchy를 이해하는 데 수월했다. 오늘 강의는 추천시스템에 대해 전반적인 컨셉과 방법론별 특징, 그리고 순차적추천시스템을 이해하기 위한 세부 구성요소와 평가지표까지 알 수 있는 유일한 강의로 생각한다. 특히, transformer구조를 활용한 논문을 설명할 때 attention, multi-head attention에 대한 개념을 연결지어주기 까다로웠을텐데 이해하기 쉬운 시각자료와 함께 수식을 들어 설명해주어 이해하는 데 문제 없었던 것 같고, 아나운서다운 설명이 인상적이었다. 나중에 같이 협력하고 싶다.
금일 세미나는 ‘Introduction to Sequential Recommender Systems’을 주제로 김서연 연구원께서 진행하였다. 추천시스템은 가장 상업적으로 활용도가 높기 때문에 가장 활발하게 인공지능이 적용되고 있는 분야이다. 대표적으로 유트브, 넷플릭에서 사용자의 성향을 분석해서 사용자가 흥미를 느낄수 있는 컨텐츠를 추천한다던지, 쇼핑몰에서 사용자의 구매이력, 클릭이력을 분석해서 다음 상품을 추천하는 등이 있다. 이러한 추천시스템은 바로 매출과 직결이 될 수 있기때문에 상업 서비스를 담당하는 기업에서 가장 필요한 시스템이라고 할 수 있다. 사실 추천시스템, 추천시스템이라고 많이 들어왔고, 그져 옛날 이력 뒤져서 비슷한 걸로 매칭시키는 방법이라고만 생각했었는데 이렇게 세미나를 통해서 체계적으로 들으니 참 많이 도움이 되었다. 초기의 추천시스템은 Contents를 기반으로 분석 추천하였기 때문에 과도한 특수화가 나타난다는 단점이 있었다. 이를 개선하기 위해 협력기반 추천시스템이 탄생하게 되었고, 달라진 점은 관점을 컨텐츠로만 한정해서 보다가 사용자로 넓힌 점이다. 사용자를 관점으로 분석을 하게 되면 과거 System 개발자가 분류해 놓은 Contents/장르/제품군 등의 분류에 한정된 추천 외에 비슷한 사용자 군을 형성하여 선호 유사도를 기반으로 완전히 새로운 상품군을 추천할 수 있게 된다. 또한 최근에는 시간을 개념을 포함하기 위해 Sequential한 데이터를 분석할 수 있는 RNN, Transformer 등 딥러닝을 이용한 추천시스템 방법이 개발되었다고 한다. 매우 간단하게 생각하고 있던 추천시스템이지만 그 정확도를 높이기 위해 개념을 고민하고 최신 딥러닝 기술이 접목되는 것을 보면서 인공지능의 발전이 무섭다는 생각과 기본개념의 중요성을 느낄수 있는 세미나였다. 재미있는 주제를 적절한 예시를 들어가며 체계적으로 잘 설명해 준 김서연 연구원님께 감사의 말을 전하고 싶다.
금일 세미나 주제는 Introduction to sequential recommender system로 서연이가 진행해주었다. 사용자가 관심 보일 아이템을 미리 제공하는 추천 시스템에 대한 전체적인 개요부터 설명해주어, 추천 시스템에 대해 잘 모르는 사람들도 흥미롭게 들을 수 있었던 세미나였다. 이후, 머신러닝 관점의 추천 시스템 개요에 대한 설명을 진행한 뒤, 딥러닝과 추천 시스템이 연관된 대표적인 알고리즘 neural collaborative filtering 알고리즘을 소개해주었다. 이는 사용자 벡터와 아이템 벡터 두 가지를 인공신경망에 입력하여 아이템 추천 확률을 제공하는 알고리즘으로, 간단한 아이디어를 딥러닝에 접목하여 이전보다 더 좋은 성능을 보고하였다. 또한, 사용자의 구매 패턴을 학습하고, 최근에 구매한 아이템에 집중해 추천하는 sequential recommender system을 흥미롭게 설명해주었다. 최근 구매한 아이템에 딥러닝이 더 집중하게 만들기 위해 사용할 수 있는 개념으로 Attention이 있는데, 본 세미나에서는 vanilla attention과 sel-attention 메커니즘에 대한 설명까지 해주어 Attention 개념에 대한 복습도 할 수 있는 좋은 시간이였다. 금일 세미나에서 소개한 순차적 추천 시스템 with Attention은 길이가 L인 사용자 구매 패턴을 통해 한 시점 뒤의 사용자 구매 패턴을 예측하는 것으로, 아이템 구매 패턴뿐만 아니라 추가적인 정보(브랜드, 카테고리, 텍스트 정보)을 활용해 더 높은 성능을 보여주었다. 성능 지표에 대한 설명도 추가적으로 해주어 금일 소개된 모델이 얼마나 좋은 성능을 보이고 있는지 체감할 수 있어 청취자를 많이 배려한 세미나라고 생각 들었다. 꼼꼼하고 정갈한 설명 덕분에 추천 시스템에 대해 자세하게 알 수 있는 시간이였다.
금일 세미나는 서연이가 "Introduction to Sequential Recommender Systems"이라는 주제를 준비해주었다. 제목에도 쉽게 알 수 있듯이 순차적인 추천 시스템에 대한 소개를 해주었다. 나는 추천 시스템은 가장 기본적인 협력 필터링 알고리즘에 대해서만 알고 있었는데 뭔가 순차적으로 추천을 해준다는 것은 다소 생소한 개념이었다. 하지만 서연이가 추천 시스템 기본적인 알고리즘부터 개선된 알고리즘이 나오게 된 이유와 특징을 구체적으로 잘 설명해주어 처음 알게된 방법론들에 대해서도 쉽게 이해할 수 있었다. 추천 시스템의 기본 알고리즘들인 콘텐츠 기반 필터링, 기억.모델 기반의 협력 필터링을 시작으로 머신러닝 기반 방법론들에 대한 설명을 해주고 보다 더 방대한 데이터와 복잡한 데이터에 대해 추천 해주기 위한 딥러닝 기반 방법론들에 대하여 설명해주었다. 마지막으로 소개해준 논문은 Feature-level Deeper Self-Attention Network for Sequential Recommendation 이라는 논문으로 기존에 순차적인 아이템 정보만 사용해서 추천해주는 알고리즘의 확장된 버전으로 모델에 추가적인 정보를 제공함으로써 추천 성능을 높일 수 있는 구조를 제안한 논문이였다. 순차적인 아이템 정보 요약과 추가적인 정보 요약을 하기 위해 동일한 Self-Attention Blocks을 사용하는 것으로 이해했는데 이 부분에서 보다 개선할 수 있는 점이 있지 않을까 생각했다. 아이템에 대한 브랜드나 카테고리와 같은 추가 정보는 순차적인 아잍메 목록과 연계될 수 있는 정보이기 때문에 추가 정보끼리 Self-Attention을 계산하는 것보다 순차적인 아이템 목록 부분과 연결하여 Attention을 계산한다면 모델이 입력된 정보를 더 잘 이해할 수 있지 않을까 생각이 들었다. 세미나를 들으면서 좋았던 점은 이전 세미나에서 중복된 내용에 대하여 보다 간단하게 설명하고 이전 세미나 제목을 알려준 것이였다. 이는 새롭게 세미나를 듣는 인원이나 꾸준히 세미나를 듣는 인원들 모두에게 도움이 될 수 있는 것 같다. 오늘도 새로운 이론에 대해서 처음 접하는 사람들이 이해하기 쉽도록 세미나를 잘 준비해준 서연이에게 고맙다고 전하고 싶다.
이번 세미나는 Introduction to Sequential Recommender Systems라는 주제로 진행되었다. 추천시스템에 대한 기본적인 소개와 딥러닝 기반의 추천시스템, Sequential 추천시스템에 대한 논문 소개로 진행되었다. 기본적인 추천시스템은 콘텐츠 기반 필터링, 협력 필터링, 하이브리드 방식으로 나눌 수 있는데, 콘텐츠 기반 방식은 사용자가 선택한 아이템을 기반으로 가장 유사한 다른 아이템을 추천해주는 방식이다. 이전에 선택한 이력이 없는 새로운 아이템을 추천할 수 있다는 장점이 있는 반면, 사용자에 대한 데이터가 부족한 경우 성능 보장이 어렵고 과도한 특수화가 될 수 있다는 단점이 있다. 협력 필터링 방식 중 기억기반 방식은 사용자 간의 유사도를 측정하여 유사도가 높은 이웃이 선택한 아이템을 추천하거나 아이템 간의 유사도를 측정하여 유사도 높은 아이템을 추천하는 방식이 있다. 하지만 협력 필터링 방식도 사용자에 대한 데이터가 부족하거나 왜곡된 경우 추천 성능이 떨어질 수 있다는 단점이 있다. 반면 모델 기반의 협력 필터링은 데이터에 내재되어 있는 복잡한 패턴을 발견하는 모델을 활용한 기법으로 실제 데이터에 적용했을 때 성능이 우수하다. 이 때 사용자-아이템 평점 행렬을 사용자의 잠재 정보 행렬과 아이템의 잠재 정보 행렬로 분해하는 Matrix Factorization을 사용한다. Matrix Factorization에서 유사도 정도를 2차원으로 표현하는데 한계가 있다는 점을 간단한 예시로 설명해주어서 이해할 수 있었고, 이러한 단점을 극복하기 위해 Neural Collaborative Filtering 모델이 소개되었다. Neural Collaborative Filtering 모델은 사용자 벡터와 아이템 벡터를 Input으로 하여 Multi Layer Neural Architecture를 통과시켜 해당 사용자가 해당 아이템을 선택할 확률을 출력하는 모델이다. 두번째로 소개된 논문은 Sequential 추천 시스템으로 사용자의 아이템 이용 정보에 Sequential 개념을 적용하여 추천 성능을 더욱 향상시킨 모델이다. 그 중에서도 Transformer 계열의 모델에 대해 상세하게 소개를 해주었는데 모델의 구조를 굉장히 자세하면서도 이해하기 쉽게 설명해준 것 같다. 추천 시스템에 딥러닝이 어떻게 적용되고 있는지 잘 몰랐었는데, 이번 세미나를 통해 기본적인 추천 시스템의 개념부터 딥러닝을 적용한 추천 시스템까지 알 수 있었다. 특히 논문에 나온 모델의 구조를 자세하면서도 이해하기 쉽도록 잘 정리하여 소개해준 점이 좋았던 것 같다. 추천 시스템에 대한 내용으로 세미나를 준비해준 김서연 연구원에게 감사의 말을 전한다.
오늘 세미나는 추천시스템에 대한 간략한 소개와 sequential recommender system에 대해서 김서연 연구원이 진행해주었다. 추천시스템은 콘텐츠 기반 필터링, 협력 필터링, 둘을 결합한 하이브리드 방식으로 크게 나뉜다. 세미나 도입부에서 기억 기반 협력 필터링 방식의 문제점의 설명할 때 눈에 익지 않은 용어 (Cold start problem, first rater, grey sheep problem, shilling attack)에 대해 설명들을 수 있었던 점이 매우 유익했다. 이외에도 추천시스템이 주된 연구 분야가 아니기도 하고 관련하여 프로젝트 경험이 적기 때문에 오늘 세미나를 통해 배운 것이 많았다. Sequential recommender system에 대한 설명 이전에 deep learning 기반 추천 시스템 대표 알고리즘의 설명을 해주고 사용자의 과거 아이템 선택의 정보가 동일하게 중요하다는 가정을 가진 해당 알고리즘의 단점을 설명해주어서 왜 추천 시스템에 sequential한 의사 결정이 필요한지 명확히 할 수 있었다. 또한 feature-level deeper self-attention network 모델에 대해서 시각적으로 표현했을 뿐 아니라 아이템에 N개 이상이 넘어갈 때, 아닐 때 등 알고리즘을 꼼꼼하게 설명해주어서 청자들의 이해를 도운 점이 매우 인상깊었다. 또한 추천시스템에서 활용되는 성능 평가지표 Hit ratio, Normalized Discounted Cumulative Gain도 장표 덕분에 이해가 쉬웠다. 오늘 소개된 알고리즘은 Sequential decision making이 이뤄져야 하는 가정 때문에 NLP의 최신 알고리즘들과 결을 같이 한다는 생각이 들었다. 결국 사용자에게 아이템을 추천하기 위해서 어떤 가정을 가지고 또한 사용자, 아이템의 어떤 데이터를 가지고 조합하여 사용자를 representation 하는지가 딥러닝 기반 추천시스템 연구의 큰 맥이라는 것을 알 수 있었다. 오늘 세미나를 초석으로 서연이가 멋진 연구를 진행하길 응원하는 마음이 크다. 주변에 같이 연구에 대해서 의견을 나눌 동료들이 부족할 수 있는 분야여서 힘들 수 있겠지만 훌륭하게 해낼 수 있는 연구원이라 믿어 의심치 않는다.
이번 세미나에서는 여러 형태의 머신러닝 및 딥러닝 기반 추천 시스템이 소개됐다. 추천 시스템은 기본적으로 콘텐츠 기반 필터링, 협력 필터링, 그리고 이 둘을 합친 하이브리드 방식으로 나뉜다. 콘텐츠 기반 필터링은 사용자가 선호하는 아이템을 파악한 후 이와 가장 유사한 아이템을 추천하는 방식이다. 협력 필터링은 추천 대상인 사용자와 유사한 사용자가 선호하는 아이템을 추천하는 방법론이다.
딥러닝 기반 추천시스템은 2가지 소개됐는데, 우선 하나는 'Neural Collaborative Filtering' 논문에 나온 모델이다. 이는 협력 필터링 방식에서 사용자가 많아질 경우 각 사용자 간 구매성향 유사도가 잘 나타나게끔 2차원 공간에 벡터화하기 어렵다는 단점을 극복하기 위해 제시됐다. 모델은 사용자 정보와 아이템 정보를 임베딩한 뒤 다층신경망에 투입하는 식으로 문제를 해결했다.
하지만 여기까지 언급된 모든 방법론은 사용자가 어떤 시점에 아이템을 선택하든 동일하게 취급한다는 한계를 갖고 있다. 이에 과거 선택으로부터 유미한 패턴을 찾으면서도 최신 선택에 더 가중치를 둬 추천 아이템을 선정하는 Sequential 추천 시스템이 제안됐다. 딥러닝 기반 추천시스템 중 두번째는 이중에서도 Transformer를 활용한 모델이다. 모델은 2개 층으로 이뤄지는데, 순차적인 아이템 선택 목록과 아이템 자체적인 정보(브랜드 등)에 관한 정보 층을 병렬연산하는 구조다. 각 정보는 self-attention block을 거친 후 합쳐져 Fully connected layer를 통과, 최종적으로 추천 아이템을 출력한다.
추천 시스템의 기초부터 최신 모델까지 모두 깔끔하게 설명해 줘 입문자에게도 좋은 세미나였다. 시험기간임에도 많은 준비를 해 준 서연이에게 감사 인사를 전한다.
이번 세미나는 서연이가 추천시스템의 기초적인 내용과 사용자의 아이템 선택 순서를 고려할 수 있는 추천시스템 분야인 순차적 추천시스템 방법론을 소개해주었다. 지금은 NLP쪽으로 공부하느라 손을 뗏지만 머신러닝/딥러닝 공부를 시작하면서 가장 먼저 관심을 두었던 분야가 추천시스템이였어서 반갑기도 했다. 딥러닝 기반의 협력 필터링 방식은 사용자 X 아이템 행렬에서 특정 cell 값에 대한 확률을 출력하기 위해 인풋으로 사용자 벡터와 아이템 백터를 각각의 embedding layer와 MLP를 통과시키게 된다. 간단한 아이디어로 기존 matrix factorization 연산의 차원 축소 방식을 개선한 점에서 의의가 있다고 생각되지만, 여전히 cold start를 포함한 전통적인 CF 알고리즘의 단점을 개선했다고 보기는 어려울 것 같다. 순차적 추천 시스템은 사용자의 아이템 선택 이력이 시점에 따라 중요도가 다르다는 가정하에 출발한 분야이다. 실제로 사용자의 현재 아이템 선호도는 과거의 정보로부터 순차적으로 영향을 받기 때문에 이러한 가정은 타당하다고 생각된다. 순차적인 특성을 고려한 딥러닝 모델은 순차적 특징을 갖는 데이터인 텍스트에 대한 연구분야인 NLP에서 많은 연구들이 되어왔기 때문에 NLP 모델들은 추천시스템 분야에 적용한 모델들이 많이 연구되고 있다. 이번 세미나에서 서연이가 소개해준 Self-attention 기반의 추천시스템은 사용자의 아이템 선택/선호 이력을 학습하는 어텐션 레이어와 해당 아이템의 메타정보를 학습하는 어텐션 레이어를 각각 두고 각 hidden state를 결합하여 최종적으로 인풋 아이템 시퀀스 다음에 등장할 아이템을 추천하는 방식으로 설계된 모델이였다. 사실 분야만 추천시스템이지, 입력 데이터 구조나 모델 구조가 NLP와 동일하다고 볼 수 있다. 이러한 방식이 베스트인지는 잘 모르겠지만, 모델 구조나 인풋 데이터 설계 방식이 연구자들이 왜 이렇게 설계했는지 어느 정도 납득이 가는 논문이였다. 유저에 대한 정보를 추가로 입력으로 사용할 수 있는 네트워크 구조를 추가하거나 아이템 메타 정보를 임베딩할 때 다른 방식으로 결합해보면 좋겠다는 생각이 들었다. 테이블 임베딩하는 연구나 그래프 신경망 분야의 연구를 더 리서치해보면 응용할만한 아이디어가 있을 것 같다. 무튼, 결론적으로 제안 모델은hybrid 방식으로 전통적인 추천시스템 모델들이 갖고 있었던 단점들이 많이 보완되었을 것으로 생각되며 NLP에서 우수한 성능을 이미 입증한 모델 구조를 적용하여 우수한 추천 성능을 보였다.
추천시스템은 다양한 산업에서 활용되고 있고, 그 비즈니스적인 가치를 입증한 회사들이 많기 때문에 관심을 두고 연구하면 좋을 것 같다고 생각한다. 연구적인 측면에서 입력 데이터를 무엇을 어떻게 사용하고 어떤 모델 구조를 사용할 것인가에 따라 발전 가능성이 많은 분야라고 생각한다. 특히 그래프 신경망 쪽 연구들이 NLP쪽 모델보다 더 item-to-item, user-to-user, item-to-user 관계를 표현하기에 이점과 자유도가 많을 것이라고 생각한다. 발표자의 성의가 돋보이는 장표와 똑부러지는 설명으로 이해하기가 쉬웠던 세미나였으며 덕분에 신입생때 이후로 놓아버린 추천시스템에 대해서 공부도 다시 해볼 수 있는 기회가 된 것 같다. 연구실 메인 분야가 아니라서 어려움이 있을 수도 있겠지만 좋은 아이디어를 통해 개인 연구에서 좋은 성과를 내기를 응원하면서 후기 작성을 마친다.
추천 시스템이란 사용자가 관심을 가질 만한 Content를 '추천'해주는 체계다. Collaborative Filtering 방식이 있다. 전자의 경우 '추천'을 받고자 하는 사용자의 과거 내용을 토대로 유사한 Content를 추천해주는 Content-based Filtering과, 특정 Content에 비슷한 선호도를 갖는 사용들은 다른 아이템에 대해서도 비슷한 선호도를 가질 것이라고 가정하여 '추천' 받고자 하는 사용자와 비슷한 선호도를 갖는 사용자가 pick한 아이템을 추천해주는 Collaborative Filtering 방식이 있다. 후자의 경우 사용자와 Content 사이에는 사용자의 행동과 평점에 영향을 끼치는 잠재된 특성이 있을 것이라 가정하는데, Content Matrix와 Item Matrix를 Neural Network로 임베딩하는 것으로 대체하는 Neural Collaborative Filtering 방식으로 성능을 더 높이기도 한다. 앞서 말한 모델들은 모두 사용자의 과거 아이템 선택의 정보가 동일하게 중요하다는 기본 가정에서 출발한 추천 시스템 알고리즘인데, 실제로 사용자가 선택을 할 때에는 과거 구매 정보가 동일하게 중요할까? 라는 의문에서 출발한 추천시스템 방식이 Sequential Recommender System이다. 따라서, 이 방식에서는 과거 행동에서 유의한 순차적인 패턴을 찾고, 최근 아이템에 더 집중하여 이를 기반으로 가장 선호할 다음 아이템을 추천하게 되는데 금일 주로 다룬 'Feature-level Deeper Self-Attention Network for Sequential Recommendation'에서는 Transformer의 Attention을 사용하여 순차적 패턴을 추출해내었다. 최근에 CV분야에서도 Transformer를 패턴 추출기로 완전히 대체한 Visual Transformer가 나오고 나아가 Google에서 Performer까지 나오는 등 Transformer 아키텍쳐가 어느 분야 막론하고 잘 나오는터라 Transformer에 대해서 계속 눈여겨 보고 공부하고 있어 다른 분야에서의 활용도 궁금하던 차, Recommender System에서의 Transformer application을 한 눈에 보이게 정돈된 발표를 준비해준 서연이에게 감사하다는 말을 전한다.
오늘의 세미나 주제는 추천시스템이었다. 추천시스템은 콘텐츠 기반, 협력 필터링, 하리브리드 방식으로 나뉜다. 우선 콘텐츠 기반은 이전에 선택 이력이 없는 새로운 아니템 추천이 가능하다는 장점이 있지만, 데이터(콘텐츠)가 부족하면 성능 보장이 어려울 수 있다. 이에 사용자 기반 협력 필터링은 사용자간의 유사도를 측정하여 이용하는 방법이다. 이는 Matrix factorization을 이용하여 크기가 크고 복잡한 데이터로도 빠른 분석이 가능하다. 최근에는 데이터가 증가하고 딥러닝이 발전하여 이러한 Matrix를 사용하지 않고 딥러닝 모델을 많이 활용하고 있다. CNN, RNN등 여러 모델이 사용되고 있다. 추천시스템은 일반 사람들이 가장 쉽게 접할 수 있는 AI중 하나이다. 정교한 추천시스템이 구축되면, 사람들이 원하는 것을 잘 어필할 수 있으며 이는 소비자와 기업 둘 다에 많은 도움이 된다. 과거에는 머신러닝 기반의 방법들을 많이 사용하였지만, 최근에는 딥러닝을 활용하여 더 많은 발전이 될 가능성이 높은 것 같다. 가장 쉽게 접할 수 있는 유튜브, 넷플릭스등 여러 서비스들이 있으며 실제 사용자의 입장에서는 아쉬운 부분도 있지만 전반적으로 만족할만한 추천 시스템들이 사용되는 것 같다. 특히 유튜브의 사용자 분석을 보면 상당히 놀라울 때도 있다. 여러가지로 흥미로운 주제인 것 같다.
금일 세미나는 “Introduction to Sequential Recommender Systems” 주제로 서연이가 발표하였다. 개인 선호에 맞춰 아이템을 추천해주는 시스템은 유튜브, 넷플릭스, 웨이브, 다양한 앱 등의 플랫폼에 적용된다. 이번 세미나에서는 추천 시스템에 활용하는 다양한 방법에 대해 소개해주었다. 기억에 남는 방법은 협력 필터링 기법으로 다른 사용자의 데이터를 사용하여 가장 유사한 사용자가 선택한 아이템 혹은 유사한 아이템을 추천해주는 방법이다. 이는 Matrix factorization을 이용하여 복잡한 데이터도 빠르게 처리가 가능하다. 최근 방대한 데이터를 처리하기 위해 Matrix factorization 방법이 아닌 딥러닝 기반의 모델로 발전하고 추천 시스템의 성능이 향상되고 있다. 오늘 소개해준 추천 시스템은 우리 일상 생활에서 많이 사용하고 있으며 나 또한 다양한 플랫폼에서 추천 시스템의 편리함에 살고 있다. 이번 세미나는 추천 시스템의 활발한 연구 동향에 대해 살펴볼 수 있었고 편견을 깨트렸던 귀중한 시간이었다.
기존에 듣던 세미나 내용 중에 없었던 추천 시스템과 관련한 내용이었다. 졸업한 선배 연구원 이후 처음으로 추천 시스템에 관심을 가지고 세미나를 진행해준 서연이에게 우선 감사하다는 이야기를 전하고 싶다. 본인은 레이블이 없으면 추천 시스템에 대한 성능 평가가 불가능하다는 안일한 생각을 가지고 있었는데, 이번 세미나를 통해 이러한 아집을 없앨 수 있었다. 기존 텍스트에서 사용하는 딥러닝 기반 분류 모델과 유사한 모델을 시작으로 Attention, Self-Attention을 활용한 연구까지 연구 트렌드를 조목 조목 집어주는 세미나였다. 그리고 순차적 추천 시스템에 입력 데이터를 이해할 수 있도록 하는 방법론을 개발하는 분야도 있을 것 같고, 재미 있을 것 같다. 새로운 분야에 도전하며 알기 쉽게 설명해준 서연이의 개인 연구에서도 좋은 성과가 있기를 응원한다.
이번 세미나는 오랜만에 추천시스템에 대해서 진행되었다. 추천 시스템은 일반적으로 콘텐츠 기반 필터링 / 협력기반 필터링으로 분류되며 일반적으로는 협력기반을 많이 사용하거나 두 가지를 섞는 하이브리드 방법론을 사용한다. 하지만 전통적인 추천시스템 알고리즘들은 matrix factorization에 기반한다는 한계점이 있다. 사용자와 아이템의 개수가 너무나도 많은 현실 상황을 반영하기가 매우 힘들며, 실제로 현업에서 근무하는 사람들의 말을 들어봐도 알고리즘의 성능과는 별개로 실제 시스템에 임베딩 하려면 matrix를 효율적으로 연산하는 것이 가장 큰 병목이라고 할 정도이다. 오늘 세미나에서 추가적으로 소개한 것은 순차적인 정보를 반영한 추천시스템인데 이는 '사용자가 최근에 산 아이템에 대한 영향력을 키워서 모델을 학습하자'라는 아이디어에 기반한 것이다. 최근 순차적 정보를 반영하기 위한 알고리즘들이 많이 발전된 만큼, 간단한 아이디어 만으로 좋은 성능을 낼 수 있다고 느꼈다. 손지은 박사 이후로 관련 연구를 들을 기회가 별로 없었는데, 이번 기회로 다시 한번 기억을 살릴 수 있었다.
이번주 세미나는 서연이가 ‘Introduction to Sequential Recommender Systems’라는 주제로 발표하였다. 요즘에는 어디서나 개인에 맞는 추천 시스템이 존재한다. 이번 세미나를 통해 이러한 추천시스템의 원리에 대해 할게 되었다. 추천 시스템은 크게 콘텐츠 기반 필터링, 협력 필터링, 하이브 리드 이렇게 3개가 존재한다. 기존 추천 시스템은 모델을 기반하여 추천을 하였지만 현재는 딥러닝을 활용한 추천시스템도 나오게 되었다. 기존의 추천시스템은 새로운 사용자가 등장했을때 2차원상에 이를 표현하는데 어려움이 존재한다. 이를 해결하기 위해 Neural Collaborative Filtering을 사용하여 이러한 문제를 해결해준다. 추천 시스템에 대해 잘 모르는 부분이 많이 존재했는데 서연이의 세미나를 듣고 이 분야의 연구가 얼만큼 진행 되고 있는지 알 수 있었다.
금일 세미나는 서연이가 추천 시스템을 주제로 발표해주었다. 추천 시스템은 크게 콘텐츠 기반 필터링, 협력 필터링, 하이브리드 방식으로 구분할 수 있다. 콘텐츠 기반으로 분석하여 추천해주는 방식을 콘텐츠 기반 필터링이라고 간단히 말해 사용자가 특정 영화를 좋아할 경우 이와 비슷한 장르의 콘텐츠를 추천하는 방식이다. 협력 필터링은 사용자 간의 유사도를 측정하여 유사도가 높은 사용자가 선택한 아이템 중에서 추천해주는 사용자 기반 협력 필터링과 아이템을 기준으로 비슷한 분포를 띄는 아이템을 추천해주는 아이템 기반 필터링으로 구분 할 수 있다. 이 때 모델 기반으로 협력 필터링을 할 경우 Matrix Factorization 알고리즘을 이용하는데 이때 많은 선형대수 테크닉이 요구된다. 특히 추천 시스템 기반의 이러한 행렬의 경우 sparse한 경우가 많은데 large sparse matrix의 rank를 estimating하여 축소된 아이템-사용자 matrix를 추론하는 기법들이 많이 연구되고 있다.
처음 소개해 준 Neural Collaborative Filtering이라는 논문에서는 아이템-사용자 matrix 구축 대신 아이템 벡터와 사용자 벡터를 embedding하여 deep learning network를 통해 아이템-사용자의 intersaction를 추론한다. 다음으로 소개해 준 Sequential Recommender System에서는 transformer의 self-attention network를 통해 과거의 행동에서 유의한 순차적인 패턴을 찾고 최근 아이템에 더 집중하여 이를 기반으로 가장 선호할 다음 아이템을 추천해주는 추천 시스템 방식이다. 전체적으로 공들인 발표자료와 깔끔한 설명으로 추천 시스템에 대해 처음 접했음에도 수월하게 이해할 수 있었다. 첫 발표임에도 훌륭한 발표를 해 준 서연이에게 다시금 감사를 표한다.
이번 세미나 주제는 ‘Introduction to sequential recommender systems’로 서연이가 진행하였다. 추천 시스템에 대한 기본적인 방법론 소개부터 순차적인 시퀀스를 고려한 알고리즘까지 전반적으로 다뤄주었다. 우선, 사용자가 관심있어 하는 아이템의 콘텐츠(평점, 구매여부 등)을 기반으로 하는 콘텐트 기반 필터링, 특정 아이템에 대한 선호도가 유사한 사용자 간의 유사도를 측정하는 사용자 기반 협력 필터링과 아이템 간 유사도를 측정하는 아이템 기반 협력 필터링 방법이 있다. 모델 기반의 협력 필터링은 matrix factorization 개념을 활용하여 사용자와 아이템 사이의 잠재된 행렬을 사용하여 추천을 진행한다. Matrix factorization은 2차원 공간으로의 표현으로 한정되기 때문에 새로운 사용자가 추가되었을 때 추천에 한계가 있고 최근 사용되는 데이터가 다양해짐에 따라 이미지 및 텍스트 데이터를 활용한 뉴럴 네트워크기반의 추천시스템이 등장하게 된다. 하지만, 변화하는 사용자의 관심을 반영할 수 없다는 단점을 가지고 있기 때문에 관심이 변화하는 패턴을 고려한 모델이 등장하게 된다. 그 중에서도 transformer 개념이 활용된 논문이 소개되었다. 해당 알고리즘은 순차적인 아이템 정보를 요약하는 부분과 아이템의 부가적인 정보(카테고리, 브랜드,텍스트)를 활용하는 부분으로 이루어져 있다. 1~5번째 까지의 아이템이 인풋으로 들어간다면, 2~6번째 까지의 아이템이 출력되고 hit ratio와 normalized discounted cumulative gain 두 지표를 통해 성능을 평가하게 된다. 개괄적인 부분만 알고 있던 추천시스템에 대해 기초부터 최근 응용 알고리즘까지 매끄러운 흐름으로 소개해준 서연이에게 고맙다는 말 전하고 싶다. 특히, 추천시스템은 기존 딥러닝 모델과 다른 성능지표를 쓰며 텍스트 분석 분야의 성능지표와 유사하다는 느낌을 받았다. 항상 해당 분야에 대해 열심히 연구하는 서연이를 응원하고 같이 연구에 성실히 임하는 자세를 가지고자 한다.
추천시스템의 모델 디자인은 인간의 '선호'라는 사고체계에 대한 리버스 엔지니어링이다. 하지만 선호의 주체인 인간 스스로도 자신의 선택에 대한 내재적인 이유를 채 알지 못하는 경우가 많으며, 안다고 생각하는 것 조차 의식의 영역에서의 이유일 뿐 무의식의 영역에 존재하는 이유는 대부분 알지 못한다.
따라서 추천시스템 분야에서는 인간이 무언가를 좋아하는 방식을 어떻게 정의할 것인지에 따라 수많은 모델들이 존재한다. 금일 서연이가 준비해준 "Introduction to Sequential Recommender Systems"이라는 제목의 세미나는 제목에도 쉽게 알 수 있듯이 순차적인 추천 시스템에 대한 소개를 해주었다. 본 세미나에서는 이에 이르기까지 추천 시스템의 기본적인 모델들인 콘텐츠 기반 필터링, 모델 기반의 협력 필터링을 시작으로 머신러닝 기반 방법론들에 대한 설명을 해주었다. 또한 더 방대하고 복잡한 데이터를 다루기 위한 딥러닝 기반의 방법론들도 설명해 주었다. Sequential Recommender System은 인간의 선호에 일련의 순차적인 의존성이 존재한다는 가정을 반영하는 접근법이며 이는 시간 또는 상황에 따라 선호가 바뀌는 인간의 특성상 상당히 타당한 가정이라고 생각한다. 관련하여 언어모델에서 시작하여 순차적인 의존성을 잘 잡아내는 Self-Attention 기반 방법론이 소개되었다. 순차적인 선호의 변화를 잡아내는 것에 포커스를 맞춘 연구였지만 개인적으로 아이템 특성 자체를 어떻게 표현할 것인지가 가장 중요할 것이라는 생각이 들었다. 오늘도 좋은 내용을 이해하기 쉽도록 잘 준비해준 서연이에게 감사한다.
이번주 세미나는 서연이가 ‘Introduction to Sequential Recommender Systems’라는 주제로 발표하였다. 추천시스템은 넷플릭스, 유튜브와 같이 우리 실생활에 이미 많이 내재 되어있어 여러 시스템의 편의를 도모한다. 추천시스템에 관해 수업 term project를 수행했던 경험이 있었는데 최근 연구 사례에 대해 살펴볼 수 있어 흥미롭게 접할 수 있었다. 추천 시스템은 일반적으로 콘텐츠 기반 필터링/협력기반 필터링을 분류되며 일반적으로는 두가지 방법론이 함께 사용되는 하이브리드 방법론을 사용한다. 전통적인 추천시스템 알고리즘은 matrix factorization에 기반하여 결측인 값을 채워넣는 것이 추천으로 이루어지는 매커니즘을 갖고있다. 하지만 matrix를 지속적으로 연산에 활용해야한다는 점에서 연산량이 크다는 한계가 지속적으로 제기되어 왔다. 최근에는 이러한 한계점을 개선하기 위해 딥러닝 기반의 추천시스템들이 많이 제안되어오고 있고, 금일 세미나에서도 해당 주제들을 다루었다. 금일 세미나에서 서연이가 추천 시스템에 대해 연구 흐름에 대해 차근히 설명해주어 생소한 내용에 대해서도 쉽게 자세한 부분까지 받아들일 수 있었다. 서연이가 평소에도 설명을 할 때 침착하게 상세히 잘 전달한다고 생각해왔었는데 금일 세미나에서도 역시나 서연이가 잘 설명해준 것 같아 인상깊었고 많은 점을 배울 수 있었다. 최근 각광받는 응용분야인만큼 서연이를 통해 추천시스템에 대해 공부할 수 있는 기회가 마련되어 감사하다.
이번주 세미나는 ‘Introduction to Sequential Recommender Systems’라는 주제로 진행되었다. 세미나 순서는 추천시스템에 대한 소개와 딥러닝 기반의 추천시스템, Sequential 추천시스템 논문 소개로 진행되었다. 기본적인 추천시스템은 "콘텐츠 기반 필터링, 협력 필터링, 하이브리드 방식" 으로 나누는데, 콘텐츠 기반 방식은 사용자가 선택한 아이템을 기반으로 가장 유사한 다른 아이템을 추천해주는 방식이다. 장점은 컨텐츠 기반 추천이기에 이전 경험이 없어도 새로운 아이템 추천이 가능하다. 단점은 사용자에 대한 데이터가 부족한 경우 성능 보장이 어렵다. 이어 기억기반 방식은 사용자 간의 유사도를 측정하여 유사도가 높은 이웃이 선택한 아이템을 추천하거나 아이템 간의 유사도를 측정하여 유사도 높은 아이템을 추천하는 방식이다. 역시 이방법도 콘텐츠 가반 방식과 비슷한 단점이 있다. 모델 기반의 협력 필터링은 데이터에 내재되어 있는 복잡한 패턴을 발견하는 모델을 활용한 기법으로 실제 데이터에 적용했을 때 성능이 가장 우수하다. 이 때 사용자-아이템 평점 행렬을 사용자의 잠재 정보 행렬과 아이템의 잠재 정보 행렬로 분해하는 Matrix Factorization을 사용한다. Matrix Factorization에서 유사도 정도를 2차원으로 표현하는데 한계가 있어, 이러한 단점을 극복하기 위해 첫번째 논문 소개로 "Neural Collaborative Filtering"을 소개하였다. Neural Collaborative Filtering 모델은 사용자 벡터와 아이템 벡터를 Input으로 하여 Multi Layer Neural Architecture를 통과시켜 해당 사용자가 해당 아이템을 선택할 확률을 출력하는 모델이다. 이를통해 과거 행동에서 유의한 순차적인 패턴을찾고, 최근 선택한 아이템에 더 집중하여 이를 기반으로 가장 선호할 아이템 추천한다. 두번째로 소개된 논문은 "Sequential Recommender System"으로 사용자의 아이템 이용 정보에 Sequential 개념을 적용하여 추천 성능을 더욱 향상시킨 모델이다. 모델의 전반적인 구조는 순차적인 아이템 정보 요약 파트와 추가적인 정보 요약 파트를 통해 모델을 학습하게 된다. 평가 지표는 Hit Ratio, NDCG의 두가지 로 평가하였고 실험결과로는 가장높은 성능을 보여주었다. 추천 시스템이 내부에서 어떻게 동작하는지 알려준 좋은 세미나를 해준 서연이에게 감사의 말을 표한다.
금일은 Introduction to Sequential Recommender Systems를 주제로 세미나가 진행되었다. 세미나는 추천 시스템에 대한 설명이 진행된 이후 딥러닝 기반 추천 시스템과 순차적인 추천 시스템에 대한 설명이 이어졌다. 추천 시스템에는 콘텐츠 기반으로 분석해서 추천해주는 콘텐츠 기반 필터링 방식과 사용자 간 유사도가 높은 이웃을 선정하고 그 이웃이 선택한 아이템을 추천해주는 사용자 기억 기반 협력 필터링 방식이 있다. 여기에 더하여 데이터 내에 복잡한 패턴을 발견해 추천해주는 모델 기반 협력 필터링 방식이 존재한다. 이 때 사용자의 잠재 정보 행렬과 아이템의 잠재 정보 행렬간 연산을 하는 Matrix Factorization 방법을 통해 사용자별 각 아이템의 평점을 파악할 수 있다. 이후 딥러닝 기반의 Neural Collaborative Filtering에 대한 설명이 이어졌다. 기존에 사용했던 Matrix Factorization으로 추천했던 방식은 새로운 사용자가 등장했을 때 기존에 계산했던 결과를 사용하기 어렵다는 단점이 있다. 하지만 Neural Collaborative Filtering 방식은 사용자 정보와 아이템 정보를 활용하여 특정 사용자가 특정 아이템을 사용할 확률을 학습하게 된다. 이를 통해 새로운 사용자 정보와 아이템 정보가 들어왔을 때 추천해줄 확률을 구할 수 있게 된다. 마지막으로 사용자의 과거 사용 시기 정보를 활용한 Sequential Recommender System에 대한 설명이 이어졌다. Sequential Recommender System은 사용자가 아이템을 사용하거나 구매한 시기가 멀어질수록 가중치를 줄이도록 학습하는 방식이다. Sequential Recommender System 중 최근에 발표된 논문에 대한 방법론에서는 순차적인 아이템 정보와 아이템에 대한 추가정보를 학습할 수 있는 Self-Attention Blocks를 2개 만들어서 마지막에 concat한 뒤 Fully Connected Layer를 통해 다음 아이템을 추천하게 해준다. 최근 과제 제안서를 작성하면서 추천시스템 내용을 공부해야 일이 있었다. 그 때 여기저기서 봤던 내용들이 본 세미나에서 잘 정리되어 있어서 좋았다. 추천시스템에 대한 기본적인 개념 및 최근 사용한 알고리즘을 공부할 때 이 세미나 내용을 참고하면 좋을 것 같다. 또한 Self-Attention Blocks을 2개로 나누어 서로 다른 2개 특징 정보를 각 Block별로 추출하는 방식이 인상적이었다. 이 부분은 개인적으로 연구하고 있는 게임 연구에서도 적용해볼 수 있도록 더 공부해 볼 예정이다. 좋은 세미나를 주요 개념위주로 잘 설명해준 서연이에게 감사함을 표하고 싶다.
본 세미나에서는 추천시스템에 대한 소개와 모델에 대해 알려주는 시간을 가졌다.
추천시스템이란 사용자에 대하여 이해하도록 도와주는 시청한 동영상 및 구독정보와 같은 데이터를 기반으로 유사한 동영상을 추천해주는 것을 의미한다. 추천시스템에는 콘텐츠 기반 필터링, 협력필터링, 하이브리드(콘텐츠기반+협력)으로 구분할 수 있다.
콘텐츠 기반 필터링은 콘텐츠를 기반으로 하여 추천하는 방식으로 사용자가 선택한 아이템이 있을 시 가장 유사한 아이템을 추천해주는 방식으로 설명할 수 있다. 장점으로는 이전 이력이 없는 상태에서도 새로운 아이템을 추천해줄 수 있는 부분이 있다.
기억기반 협력필터링 방법은 사용자간 유사도가 높은 이웃을 선택하여, 이웃들의 선호도가 높은 아이템을 선택해주는 방식이다. 모델기반 협력필터링 방법은 복잡한 패턴을 발견하고 활용하는 기법으로 우수한 성능을 보이고 있다. 가장 대표적인 Matrix factorization 방법에 대해 설명하였으며, 이는 크기가 크고 복잡한 데이터도 빠르게 분석이 가능한 장점을 가지고 있다.
복잡한 데이터들이 많이 증가하며, 딥러닝을 활용한 추천시스템이 등장하였다. Train 데이터를 기반으로 모델을 학습시키고, Test 데이터로 타겟 사용자의 정보를 넣었을 때 추천 아이템을 추천해주게 되는 방법이다.
Neural collaborative filtering 방법은 Matrix factorization의 2차원 공간의 투영 방식의 한계를 보완하기 위해 등장하였으며, 사용자 아이템에 대한 input 벡터를 토대로 진행된다. 위 알고리즘들은 사용자의 과거 아이템 선택의 정보가 중요하다라는 가정이 있고, 실제로 사용자가 선택을 할 때 과거 구매정보가 동일하게 중요할지에 대한 의문을 가지게 된다. 이에 대해 유의한 순차적인 패턴을 찾고 다음 아이템을 추천해보자하는 추천시스템으로 Sequential Recommender system으로 Transformer 방법론을 소개하였다. Attention Network for Sequential Recommendation에 대한 모델 구조 설명과 모델의 성과지표 및 결과를 설명해주었으며, 실험 결과 이전 제안한 순차적 추천 시스템 알고리즘 보다 높은 성능을 보이는 것을 확인하였다. 본 세미나를 통해 기본 추천 알고리즘과 순차적 추천 시스템 알고리즘에 대해 배울 수 있는 기회였다.
이번 세미나는 'Introduction to Sequential Recommender Systems'라는 주제로 김서연 선배님이 발표해 주셨다. 기존에 일반적인 모델을 사용하지 않는 추천 시스템에는 컨텐츠 기반 필터링, 기억 기반 필터링, 등이 있지만 각각은 모두 꽤 치명적인 단점을 가지고 있다. 컨텐츠 기반 필터링은 선택 이력이 없는 새로운 아이템도 추천을 할 수 있지만 고객의 데이터가 부족한 경우 성능이 낮을 수 있고 아이템 속성이 유사한 제품만을 추천하다보니 과도한 특수화에 빠질 수 있다. 협력 기반 필터링 또한 데이터 부족, 아이템에 대한 평가 부족, 고의적인 평가로 인해 정확한 추천을 할 수 없다는 단점을 가지고 있다. 이 단점을 보완하기 위한 모델 기반 필터링은 사용자와 아이템의 잠재 정보 행렬을 이용하여 특정 사용자의 특정 아이템에 대한 평점을 예측한다.
이를 더 발전시켜 딥러닝을 기반으로 기존 데이터 뿐만 아니라 이미지, 텍스트 등 다양한 데이터를 활용하여 더 좋은 추천을 해주는 알고리즘인 'Neural Collaborative Filtering'을 소개했다. 기존 잠재 정보 행렬을 이용하면 특징을 2차원 공간으로 투영시킨다. 하지만 이는 새로운 유저가 등장할 때, 유사도 거리를 정확히 나타낼 수 없다는 단점이 있다. 이를 딥러닝을 활용하여 해결하고 기본적인 모델을 활용하던 방법보다 높은 성능을 보여준다.
다음 소개된 'Sequential Recommender System'은 기존 구매하던 물품의 카테고리가 다른 카테고리로 바뀌었을 때를 잘 설명하기 위해 만들어진 알고리즘이다. L개의 아이템에 대한 순차적 목록과 각 아이템에 대한 추가정보를 인풋으로 하여 다음 아이템을 추천하는 구조를 가지는 모델이다.
이번 세미나를 들으며 추천 시스템에 대해 처음 접하게 되었다. 매일 접하지만 크게 생각하지 않았던 부분에 머신러닝과 딥러닝 기술이 활용된다는 것에 재미있게 세미나를 들을 수 있었고, 적절한 이미지와 표로 설명을 쉽게 풀어주어 어려움 없이 이해할 수 있었다.
좋은 세미나를 준비해준 김서연 선배님에게 감사를 표하며 세미나 후기를 마치겠습니다.
이번 세미나는 서연이가 Introduction to Sequential Recommender Systems라는 주제로 진행을 해주었다. 추천 시스템은 크게 두 가지 방식으로 상품을 추천해준다. 하나는 콘텐츠 기반 필터링 방식이고 다른 하나는 협력 필터링 방식이다. 콘텐츠 기반 필터링의 경우에는 사용자가 남긴 정보를 바탕으로 선호하는 아이템을 파악한 뒤 이와 유사한 다른 아이템을 추천해준다. 따라서 사용자가 정보가 적을 경우 추천이 힘들고 과도한 특수화가 일어난다는 단점이 있다. 한편 협력 필터링의 경우에는 사용자 또는 아이템 간의 유사도를 측정하여 아이템을 추천하게 된다. 다만 이 방법 역시도 사용자에 대한 데이터가 적거나 데이터의 노이즈에 따라서 성능이 저하된다는 단점이 있다. 모델 기반의 경우 사용자-아이템 평점 행렬을 각각 사용자와 아이템 잠재 정보 행렬로 분해하는 Matrix Factorization을 통해서 특정 사용자의 특정 아이템에 대한 평점을 추론하게 된다. 다만 이 경우에는 새로운 사용자가 등장했을 때 이를 다른 사용자들과 유사한 정도를 알맞게 표현하는 것의 어려움이 존재한다고 한다.
한편 컴퓨팅 파워가 늘어나면서 추천 시스템에도 딥러닝을 활용하기 시작했는데 그 중 한 방법이 Neural Collaborative Filtering이다. 이는 앞서 설명했던 모델 기반의 협력 필터링 방식에서 사용했던 잠재 정보 행렬을 각각 사용자와 아이템 벡터로 만들어 임베딩을 한 뒤 결합하여 Multi Layer Neural Architecture의 입력값으로 사용하는 방법을 거친다. 이 네트워크의 결과 값은 사용자가 각각의 아이템을 선택할 확률을 출력하게 된다.
이에 더 나아가서 과거 구매 정보를 전부 보는 것이 아닌 최근 구매 순서를 고려한 아이템으로 추천하는 방식을 고안하게 된다. Feature-level Deeper Self-Attention Network for Sequential Recommendation에서는 사용자의 과거 행동에서 유의미한 순차적인 패턴을 찾고 최근에 구매한 아이템에 초점을 맞춰서 다음 아이템을 추천하게 된다. 따라서 순차적인 아이템 목록과 같은 순서로 구성된 추가정보 벡터들을 구성한 뒤 이를 Self-Attention Block으로 구성된 임베딩 레이어를 통해서 하나의 임베딩 벡터로 출력을 한다. 이후에는 Neural Collaborative Filtering과 같은 방식으로 아이템과 이에 대한 추가정보가 결합된 벡터를 입력값으로 사용하여 다음에 추천할 아이템을 선정하게 된다.
추천시스템에 대해서는 정말 단편적인 지식만을 가지고 있었는데 이번 기회를 통해서 딥러닝을 접목한 새로운 방법에 대해서 알게 되었다. 복잡한 설명 없이 여러 개념을 쉽게 이해할 수 있도록 소개해준 서연이에게 감사의 말을 전한다.