SlideShare a Scribd company logo
1 of 20
Enhancing VAEs for Collaborative Filtering:
Flexible Priors & Gating Mechanisms
(2019)
Seung Woo Kim
Movie Lens Recommendation
Leader-board and Champion Model
Introduction
Kaggle MovieLens Recommendation Leader Board
Kaggle MovieLens Recommendation Leader Board
[Data Set]
Related Works
Vanilia VAE (Variational Auto Encoder)
https://ratsgo.github.io/generative%20model/2018/01/27/VAE/ https://github.com/AntixK/PyTorch-VAE/blob/master/models/vanilla_vae.py
Encoder
Mean Vector
Std Vector
Sampled
Latent
Space
Sample Noise
*
+
Decoder
MSE
Loss
-KL
Loss
+
reparameterization Trick
Variationa
l
Inference
N(0,1)
Loss =
Amortized Inference
Reconstruction
Error
Loss = +
Regularization
Error
Variational Auto Encoder 논문은 이해하기가 난해한 측면이 있는데, 이는 통계적인 접근 방법으로 전체를
설명하고, 그래서 결론적으로 만들어 보니 Encoder - Decoder 구조의 신경망과 Loss 가 설계되었다의 순서로
이야기가 진행되기 때문인것 같다. 그래서 역으로 신경망 구조를 먼저 시각화 해놓고, 논문에서 이야기하는
논리가 무엇인지를 순서대로 이해하는 방법으로 풀어가보고자 한다.
Vanilia VAE (Variational Auto Encoder)
[Amortized Inference] 원래 데이터 마다 latent vector 인 z 를 구하기 위한 아래 도표로 하면 stochastic
variational inference 의 ksi는 z 의 수만큼 필요한 문제가 있어서, VAE 에서는 데이터 x를 받아서 z 를 생성하
는 모델 phi를 전체 훈련 데이터로 훈련하고, 이 모델 phi 가 데이터 x 를 받아서 매번 다른 z 를 생성하는 형태
로 연산량을 절약한다는 이야기인데, 근데 신경망 구조로 보면 결국 z를 Encoder를 붙였음이 결론이다 => 공
통된 Encoder 가 주어진 데이터에 맞는 z를 생성해 줄꺼야!
Encoder (x1~xn 데이터 전체 훈련된 모델)
https://ricoshin.tistory.com/3
x 別 ksi 가 필요함
x
https://arxiv.org/pdf/1711.05597.pdf
Vanilia VAE (Variational Auto Encoder)
[Reparameterization trick] VAE 는 기본적으로 평균과 분산을 Encoder 에서 추출하여 어떤 분포를 만들고, 이
분포에 가장 적합한 데이터를 Decoder 를 통해서 Generation 해내는 것이 그 설계 목적이다. 그 의미 그대로 해
석해서 신경망을 설계하면 그림에서 좌측과 같이 평균과 분석으로 Distribution 을 만들고 이것을 Decoder 에 넣
어야 하는데 이렇게 하면 Back Prop 이 안된다. 왜냐면, Graph 상으로 연결이 안되어 있기 때문이다. 그래서
Noise Distribution 을 만들고 여기에 분산을 곱하고 평균을 더해서 Decoder 에 연결하는 Trick 을 사용한다
=> 이제 그래프에 연결되었다 !!
https://gregorygundersen.com/blog/2018/04/29/reparameterization/
Back Prop 불가 Back Prop 가능
Vanilia VAE (Variational Auto Encoder)
[ELBO : Evidence Lowerbound] ELBO = Reconstruction Term + Regularlization Term 으로 구성된다. 여기에
서 원래 가정은 뭐였는데, 구할수가 없어서 정규분포로 대신하고 어쩌구 이런 이야기들은 뒤에 하고, 그냥 신경
망 관점에서 Loss Function 으로만 생각하고 보면 너무 간단하다. Decoder 가 만들어낸 데이터가 원래 데이터
와 가까워 지도록 훈련해야 하니 그 차이를 MSE Loss로 설계하고, Z(Latent Space) 를 통제하기 좋은 형태가
되도록 유도하려고 하니 정규분포와 Ecnoder 와 Reparameterized를 통해 생성된 Z 와의 차이를 최소화하도록
하는 Term 추가 사실 이렇게 해석하면 신경망 관점에서는 끝이다.
VAE with a VampPrior
https://arxiv.org/pdf/1705.07120.pdf
Vamp Prior 논문 및 코드를 확인 결과 Loss Function 만 차이가 있다. 그 차이는 p(z) 에대한 정의의 차이인데,
Vanila VAE 에서는 N(0,1) 로 보통 정의하는 Prior 를 Pseudo 라고 지칭하는 Sample 된 데이터들의 평균 분포
로 대체하는 것이 핵심이다. 직관적으로 생각해보면, 그냥 Gaussian 에 수렴하게 훈련하세요 보다는, q_pi함
수의 결과 값의 평균을 사용하는게 더 합리적이라고 생각된다.
Vanilia VAE
Sample (k개) Over fitting 방지
Encoder
sample 수
https://github.com/AntixK/PyTorch-VAE/blob/master/models/vanilla_vae.py
Variational Autoencoders for Collaborative Filtering
이 논문은 Vanilia VAE 와의 차이점은 데이터 구성을 CF 로 하였다는 점(user x item) , Loss Function에 Binary
Cross Entropy 를 사용했다는 점, KL 에 Annealing 라는 가중치를 부여하였다는 점 3가지로 요약된다.
https://arxiv.org/pdf/1802.05814.pdf
annealing
(가중치)
Item (Bag of Words)
u
s
e
r
Encoder
Mean Vector
Std Vector
Sampled
Latent
Space
Sample Noise
*
+
Decoder
BCE
Loss
-KL
Loss
+
reparameterization Trick Variationa
l
Inference
N(0,1)
Loss =
Amortized Inference
Item (Bag of Words)
u
s
e
r
*
https://github.com/mkfilipiuk/VAE-CF
Champion Model
Enhancing VAEs for Collaborative Filtering: Flexible
Priors & Gating Mechanisms
https://arxiv.org/ftp/arxiv/papers/1911/1911.00936.pdf
이 논문은 Variational Autoencoders for Collaborative Filtering 을 Base 로 하고 있으며, 단순히 Layer를
추가하는 것으로 성능이 향상되지 않아, Gated Mechanism 의 적용과 VampPrior 적용 두 가지가 핵심이다.
annealing
(가중치)
Item (Bag of Words)
u
s
e
r
Encoder
(Gated
Mechanism)
Mean Vector
Std Vector
Sampled
Latent
Space
Sample Noise
*
+
Decoder
(Gated
Mechanism)
BCE
Loss
-KL
Loss
+
reparameterization Trick
Loss =
Amortized Inference
Item (Bag of Words)
u
s
e
r
* VampPrior
Binary Cross Entropy
Enhancing VAEs for Collaborative Filtering: Flexible
Priors & Gating Mechanisms
https://arxiv.org/ftp/arxiv/papers/1911/1911.00936.pdf
⊗ is the element-wise product with 𝑿 the
input of the layer and 𝑾, 𝑽, 𝒃, 𝒄 learned
parameters, and 𝜎 the sigmoid function.
[FCC Version gated Mechanism]
Language modeling with gated convolutional networks.(2016) 논문의 아이디어를 차용하여, AutoEncoder에
적용 함. W ,V, B, C 는 모두 학습되는 Parameter 이며, Gate Vector 생성에 사용되는 Activation Function 은
Sigmoid 이다. => 이게 Vanishing Gradient 문제를 해결해 준다고 하는 듯.
More to Think about..
Multi Level VAE
Encoder
Mean Vector
Std Vector
[Style]
Sampled
Latent
Space
Random
*
+
Decoder
Mean Vector
Std Vector
[Group]
Sampled
Latent
Space
Random
*
+
concat
https://github.com/ananyahjha93/multi-level-vae/blob/master/training.py
Multi Level VAE 의 Concept 은 기본적인 VAE 와 약간 다릅니다. 기본적인 VAE 와는 달리 Group Latent
Space를 추가하였습니다. Reparamerization 시 전체 훈련 데이터 대해서 동일한 Noise 를 사용하는 VAE와는
달리 Group Latent 는 우리가 알고 있는 Label 별 Noise 를 따로 관리하여 훈련하는 구조를 가지고 있습니다.
Label 별 Latent Space Vector 사용
Multi Level VAE
https://github.com/ananyahjha93/multi-level-vae/blob/master/training.py
이러한 구조를 통해서 이루고자 하는 목적은 아래 그림으로 잘 설명이 됩니다. 기존의 VAE 는 입력이 되는 x
의 그룹과 항상 동일한 데이터만 생성하게 됩니다. 하지만 ML-VAE 에서는 두개의 Latent 를 분리하였기 때문
에
아래의 예시처럼 두가지 다른 조합을 통한 생성이 가능하게 됩니다.
Multi Level VAE
아래와 같은 예시들이 ML VAE 의 결과물이라고 볼 수 있습니다. 추천에 있어서 Random 성은 굉장히 중요하
다고 생각합니다. 상품 추천에 있어서, Group 이라는 요소를 활용하며, 추천에 Random 성격을 부여하거나,
원하는 상품 그룹으로 추천을 한다던지 하는 적용이 가능하지 않을지 고민해면 어떨지요.
You Tube Recommendation
현재 대부분의 추천 알고리즘 논문은 MovieLens 와 같은 Toy Data 에 기반하여 만들어져 있습니다. You-
Tube 논문도 실제 시스템 구축을 위해서는 더 많은 고민이 필요해 보지만, 다른 실험실에서만 동작하는 논문
들 보다는 실용성 측면의 고민이 많이 가미되었다고 생각합니다. 그렇다면 VAE-CF 같은 연구들이 실무에서
는 아주 무가치할까요? You Tube 추천 시스템의 Candidate Generation 에 사용해 보면 어떨지 고민해 봅니다

More Related Content

What's hot

한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
한컴MDS_AUTOSAR 기반 MBD 개발 프로세스한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
HANCOM MDS
 
Training language models to follow instructions with human feedback (Instruct...
Training language models to follow instructions with human feedback (Instruct...Training language models to follow instructions with human feedback (Instruct...
Training language models to follow instructions with human feedback (Instruct...
Rama Irsheidat
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
Rashila Rr
 

What's hot (20)

Under the Hood: Model-Based Development in the Automotive Industry by Darren ...
Under the Hood: Model-Based Development in the Automotive Industry by Darren ...Under the Hood: Model-Based Development in the Automotive Industry by Darren ...
Under the Hood: Model-Based Development in the Automotive Industry by Darren ...
 
Q4.11: Introduction to eMMC
Q4.11: Introduction to eMMCQ4.11: Introduction to eMMC
Q4.11: Introduction to eMMC
 
Multicore Processsors
Multicore ProcesssorsMulticore Processsors
Multicore Processsors
 
Introduction to Kernel and Device Drivers
Introduction to Kernel and Device DriversIntroduction to Kernel and Device Drivers
Introduction to Kernel and Device Drivers
 
Secure boot general
Secure boot generalSecure boot general
Secure boot general
 
Operating Systems - A Primer
Operating Systems - A PrimerOperating Systems - A Primer
Operating Systems - A Primer
 
한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
한컴MDS_AUTOSAR 기반 MBD 개발 프로세스한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
한컴MDS_AUTOSAR 기반 MBD 개발 프로세스
 
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
Fuzzing malware for fun & profit. Applying Coverage-Guided Fuzzing to Find Bu...
 
Physical Memory Management.pdf
Physical Memory Management.pdfPhysical Memory Management.pdf
Physical Memory Management.pdf
 
Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...Accelerating Virtual Machine Access with the Storage Performance Development ...
Accelerating Virtual Machine Access with the Storage Performance Development ...
 
Embedded Software Design
Embedded Software DesignEmbedded Software Design
Embedded Software Design
 
RISC-V Zce Extension
RISC-V Zce ExtensionRISC-V Zce Extension
RISC-V Zce Extension
 
Summary of linux kernel security protections
Summary of linux kernel security protectionsSummary of linux kernel security protections
Summary of linux kernel security protections
 
Inside the jvm
Inside the jvmInside the jvm
Inside the jvm
 
Training language models to follow instructions with human feedback (Instruct...
Training language models to follow instructions with human feedback (Instruct...Training language models to follow instructions with human feedback (Instruct...
Training language models to follow instructions with human feedback (Instruct...
 
Disk storage - SlideShare by jayed hossain jibon
Disk storage - SlideShare by jayed hossain jibonDisk storage - SlideShare by jayed hossain jibon
Disk storage - SlideShare by jayed hossain jibon
 
BeagleBone Black Bootloaders
BeagleBone Black BootloadersBeagleBone Black Bootloaders
BeagleBone Black Bootloaders
 
Embedded_Linux_Booting
Embedded_Linux_BootingEmbedded_Linux_Booting
Embedded_Linux_Booting
 
Closing the RISC-V compliance gap via fuzzing
Closing the RISC-V compliance gap via fuzzingClosing the RISC-V compliance gap via fuzzing
Closing the RISC-V compliance gap via fuzzing
 
Types Of Buses
Types Of BusesTypes Of Buses
Types Of Buses
 

Similar to Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms

Working Effectively With Legacy Perl Code
Working Effectively With Legacy Perl CodeWorking Effectively With Legacy Perl Code
Working Effectively With Legacy Perl Code
erikmsp
 
Real world java_ee_patterns
Real world java_ee_patternsReal world java_ee_patterns
Real world java_ee_patterns
Alassane Diallo
 
Ben Agre - Adding Another Level of Hell to Reverse Engineering
Ben Agre - Adding Another Level of Hell to Reverse EngineeringBen Agre - Adding Another Level of Hell to Reverse Engineering
Ben Agre - Adding Another Level of Hell to Reverse Engineering
Source Conference
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
JAX London
 

Similar to Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms (20)

2021 04-01-dalle
2021 04-01-dalle2021 04-01-dalle
2021 04-01-dalle
 
CakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your worldCakePHP 2.0 - It'll rock your world
CakePHP 2.0 - It'll rock your world
 
Attention mechanisms with tensorflow
Attention mechanisms with tensorflowAttention mechanisms with tensorflow
Attention mechanisms with tensorflow
 
Automated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE ApplicationsAutomated Scaling of Microservice Stacks for JavaEE Applications
Automated Scaling of Microservice Stacks for JavaEE Applications
 
Java Memory Model
Java Memory ModelJava Memory Model
Java Memory Model
 
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer HumankindAccord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
Accord.Net: Looking for a Bug that Could Help Machines Conquer Humankind
 
Unit I Advanced Java Programming Course
Unit I   Advanced Java Programming CourseUnit I   Advanced Java Programming Course
Unit I Advanced Java Programming Course
 
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
"Applied Enterprise Metaprogramming in JavaScript", Vladyslav Dukhin
 
Working Effectively With Legacy Perl Code
Working Effectively With Legacy Perl CodeWorking Effectively With Legacy Perl Code
Working Effectively With Legacy Perl Code
 
jefferson-mae Masked Autoencoders based Pretraining
jefferson-mae Masked Autoencoders based Pretrainingjefferson-mae Masked Autoencoders based Pretraining
jefferson-mae Masked Autoencoders based Pretraining
 
MV(C, mvvm) in iOS and ReactiveCocoa
MV(C, mvvm) in iOS and ReactiveCocoaMV(C, mvvm) in iOS and ReactiveCocoa
MV(C, mvvm) in iOS and ReactiveCocoa
 
Real world java_ee_patterns
Real world java_ee_patternsReal world java_ee_patterns
Real world java_ee_patterns
 
Ben Agre - Adding Another Level of Hell to Reverse Engineering
Ben Agre - Adding Another Level of Hell to Reverse EngineeringBen Agre - Adding Another Level of Hell to Reverse Engineering
Ben Agre - Adding Another Level of Hell to Reverse Engineering
 
Chapter 14 AutoEncoder
Chapter 14 AutoEncoderChapter 14 AutoEncoder
Chapter 14 AutoEncoder
 
ujava.org Deep Learning with Convolutional Neural Network
ujava.org Deep Learning with Convolutional Neural Network ujava.org Deep Learning with Convolutional Neural Network
ujava.org Deep Learning with Convolutional Neural Network
 
Evo star2012 Robot Base Disturbance Optimization with Compact Differential Ev...
Evo star2012 Robot Base Disturbance Optimization with Compact Differential Ev...Evo star2012 Robot Base Disturbance Optimization with Compact Differential Ev...
Evo star2012 Robot Base Disturbance Optimization with Compact Differential Ev...
 
닷넷 개발자를 위한 패턴이야기
닷넷 개발자를 위한 패턴이야기닷넷 개발자를 위한 패턴이야기
닷넷 개발자를 위한 패턴이야기
 
JAVA Collection and generics
JAVA Collection and genericsJAVA Collection and generics
JAVA Collection and generics
 
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben EvansJava Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
Java Core | Modern Java Concurrency | Martijn Verburg & Ben Evans
 
Java Starting
Java StartingJava Starting
Java Starting
 

More from seungwoo kim (10)

Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)Graph neural network #2-2 (heterogeneous graph transformer)
Graph neural network #2-2 (heterogeneous graph transformer)
 
Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)Graph Neural Network #2-1 (PinSage)
Graph Neural Network #2-1 (PinSage)
 
Graph neural network 2부 recommendation 개요
Graph neural network  2부  recommendation 개요Graph neural network  2부  recommendation 개요
Graph neural network 2부 recommendation 개요
 
Graph Neural Network 1부
Graph Neural Network 1부Graph Neural Network 1부
Graph Neural Network 1부
 
Deep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendationsDeep neural networks for You-Tube recommendations
Deep neural networks for You-Tube recommendations
 
XAI recent researches
XAI recent researchesXAI recent researches
XAI recent researches
 
Albert
AlbertAlbert
Albert
 
Siamese neural networks+Bert
Siamese neural networks+BertSiamese neural networks+Bert
Siamese neural networks+Bert
 
MRC recent trend_ppt
MRC recent trend_pptMRC recent trend_ppt
MRC recent trend_ppt
 
NLP Deep Learning with Tensorflow
NLP Deep Learning with TensorflowNLP Deep Learning with Tensorflow
NLP Deep Learning with Tensorflow
 

Recently uploaded

如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
zifhagzkk
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
ppy8zfkfm
 
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
pwgnohujw
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Valters Lauzums
 
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
ju0dztxtn
 
edited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdfedited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdf
great91
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
fztigerwe
 
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
acoha1
 
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
Amil baba
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
pyhepag
 

Recently uploaded (20)

如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
如何办理(Dalhousie毕业证书)达尔豪斯大学毕业证成绩单留信学历认证
 
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
1:1原版定制利物浦大学毕业证(Liverpool毕业证)成绩单学位证书留信学历认证
 
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
原件一样(UWO毕业证书)西安大略大学毕业证成绩单留信学历认证
 
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
Statistics Informed Decisions Using Data 5th edition by Michael Sullivan solu...
 
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
Data Analytics for Digital Marketing Lecture for Advanced Digital & Social Me...
 
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
如何办理英国卡迪夫大学毕业证(Cardiff毕业证书)成绩单留信学历认证
 
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
Jual Obat Aborsi Bandung (Asli No.1) Wa 082134680322 Klinik Obat Penggugur Ka...
 
NOAM AAUG Adobe Summit 2024: Summit Slam Dunks
NOAM AAUG Adobe Summit 2024: Summit Slam DunksNOAM AAUG Adobe Summit 2024: Summit Slam Dunks
NOAM AAUG Adobe Summit 2024: Summit Slam Dunks
 
edited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdfedited gordis ebook sixth edition david d.pdf
edited gordis ebook sixth edition david d.pdf
 
The Significance of Transliteration Enhancing
The Significance of Transliteration EnhancingThe Significance of Transliteration Enhancing
The Significance of Transliteration Enhancing
 
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
如何办理哥伦比亚大学毕业证(Columbia毕业证)成绩单原版一比一
 
Formulas dax para power bI de microsoft.pdf
Formulas dax para power bI de microsoft.pdfFormulas dax para power bI de microsoft.pdf
Formulas dax para power bI de microsoft.pdf
 
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
如何办理(UPenn毕业证书)宾夕法尼亚大学毕业证成绩单本科硕士学位证留信学历认证
 
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
NO1 Best Kala Jadu Expert Specialist In Germany Kala Jadu Expert Specialist I...
 
社内勉強会資料  Mamba - A new era or ephemeral
社内勉強会資料   Mamba - A new era or ephemeral社内勉強会資料   Mamba - A new era or ephemeral
社内勉強会資料  Mamba - A new era or ephemeral
 
Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)Atlantic Grupa Case Study (Mintec Data AI)
Atlantic Grupa Case Study (Mintec Data AI)
 
MATERI MANAJEMEN OF PENYAKIT TETANUS.ppt
MATERI  MANAJEMEN OF PENYAKIT TETANUS.pptMATERI  MANAJEMEN OF PENYAKIT TETANUS.ppt
MATERI MANAJEMEN OF PENYAKIT TETANUS.ppt
 
2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting2024 Q2 Orange County (CA) Tableau User Group Meeting
2024 Q2 Orange County (CA) Tableau User Group Meeting
 
一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理一比一原版阿德莱德大学毕业证成绩单如何办理
一比一原版阿德莱德大学毕业证成绩单如何办理
 
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital AgeCredit Card Fraud Detection: Safeguarding Transactions in the Digital Age
Credit Card Fraud Detection: Safeguarding Transactions in the Digital Age
 

Enhancing VAEs for collaborative filtering : flexible priors & gating mechanisms

  • 1. Enhancing VAEs for Collaborative Filtering: Flexible Priors & Gating Mechanisms (2019) Seung Woo Kim
  • 2. Movie Lens Recommendation Leader-board and Champion Model Introduction
  • 4. Kaggle MovieLens Recommendation Leader Board [Data Set]
  • 5.
  • 7. Vanilia VAE (Variational Auto Encoder) https://ratsgo.github.io/generative%20model/2018/01/27/VAE/ https://github.com/AntixK/PyTorch-VAE/blob/master/models/vanilla_vae.py Encoder Mean Vector Std Vector Sampled Latent Space Sample Noise * + Decoder MSE Loss -KL Loss + reparameterization Trick Variationa l Inference N(0,1) Loss = Amortized Inference Reconstruction Error Loss = + Regularization Error Variational Auto Encoder 논문은 이해하기가 난해한 측면이 있는데, 이는 통계적인 접근 방법으로 전체를 설명하고, 그래서 결론적으로 만들어 보니 Encoder - Decoder 구조의 신경망과 Loss 가 설계되었다의 순서로 이야기가 진행되기 때문인것 같다. 그래서 역으로 신경망 구조를 먼저 시각화 해놓고, 논문에서 이야기하는 논리가 무엇인지를 순서대로 이해하는 방법으로 풀어가보고자 한다.
  • 8. Vanilia VAE (Variational Auto Encoder) [Amortized Inference] 원래 데이터 마다 latent vector 인 z 를 구하기 위한 아래 도표로 하면 stochastic variational inference 의 ksi는 z 의 수만큼 필요한 문제가 있어서, VAE 에서는 데이터 x를 받아서 z 를 생성하 는 모델 phi를 전체 훈련 데이터로 훈련하고, 이 모델 phi 가 데이터 x 를 받아서 매번 다른 z 를 생성하는 형태 로 연산량을 절약한다는 이야기인데, 근데 신경망 구조로 보면 결국 z를 Encoder를 붙였음이 결론이다 => 공 통된 Encoder 가 주어진 데이터에 맞는 z를 생성해 줄꺼야! Encoder (x1~xn 데이터 전체 훈련된 모델) https://ricoshin.tistory.com/3 x 別 ksi 가 필요함 x https://arxiv.org/pdf/1711.05597.pdf
  • 9. Vanilia VAE (Variational Auto Encoder) [Reparameterization trick] VAE 는 기본적으로 평균과 분산을 Encoder 에서 추출하여 어떤 분포를 만들고, 이 분포에 가장 적합한 데이터를 Decoder 를 통해서 Generation 해내는 것이 그 설계 목적이다. 그 의미 그대로 해 석해서 신경망을 설계하면 그림에서 좌측과 같이 평균과 분석으로 Distribution 을 만들고 이것을 Decoder 에 넣 어야 하는데 이렇게 하면 Back Prop 이 안된다. 왜냐면, Graph 상으로 연결이 안되어 있기 때문이다. 그래서 Noise Distribution 을 만들고 여기에 분산을 곱하고 평균을 더해서 Decoder 에 연결하는 Trick 을 사용한다 => 이제 그래프에 연결되었다 !! https://gregorygundersen.com/blog/2018/04/29/reparameterization/ Back Prop 불가 Back Prop 가능
  • 10. Vanilia VAE (Variational Auto Encoder) [ELBO : Evidence Lowerbound] ELBO = Reconstruction Term + Regularlization Term 으로 구성된다. 여기에 서 원래 가정은 뭐였는데, 구할수가 없어서 정규분포로 대신하고 어쩌구 이런 이야기들은 뒤에 하고, 그냥 신경 망 관점에서 Loss Function 으로만 생각하고 보면 너무 간단하다. Decoder 가 만들어낸 데이터가 원래 데이터 와 가까워 지도록 훈련해야 하니 그 차이를 MSE Loss로 설계하고, Z(Latent Space) 를 통제하기 좋은 형태가 되도록 유도하려고 하니 정규분포와 Ecnoder 와 Reparameterized를 통해 생성된 Z 와의 차이를 최소화하도록 하는 Term 추가 사실 이렇게 해석하면 신경망 관점에서는 끝이다.
  • 11. VAE with a VampPrior https://arxiv.org/pdf/1705.07120.pdf Vamp Prior 논문 및 코드를 확인 결과 Loss Function 만 차이가 있다. 그 차이는 p(z) 에대한 정의의 차이인데, Vanila VAE 에서는 N(0,1) 로 보통 정의하는 Prior 를 Pseudo 라고 지칭하는 Sample 된 데이터들의 평균 분포 로 대체하는 것이 핵심이다. 직관적으로 생각해보면, 그냥 Gaussian 에 수렴하게 훈련하세요 보다는, q_pi함 수의 결과 값의 평균을 사용하는게 더 합리적이라고 생각된다. Vanilia VAE Sample (k개) Over fitting 방지 Encoder sample 수 https://github.com/AntixK/PyTorch-VAE/blob/master/models/vanilla_vae.py
  • 12. Variational Autoencoders for Collaborative Filtering 이 논문은 Vanilia VAE 와의 차이점은 데이터 구성을 CF 로 하였다는 점(user x item) , Loss Function에 Binary Cross Entropy 를 사용했다는 점, KL 에 Annealing 라는 가중치를 부여하였다는 점 3가지로 요약된다. https://arxiv.org/pdf/1802.05814.pdf annealing (가중치) Item (Bag of Words) u s e r Encoder Mean Vector Std Vector Sampled Latent Space Sample Noise * + Decoder BCE Loss -KL Loss + reparameterization Trick Variationa l Inference N(0,1) Loss = Amortized Inference Item (Bag of Words) u s e r * https://github.com/mkfilipiuk/VAE-CF
  • 14. Enhancing VAEs for Collaborative Filtering: Flexible Priors & Gating Mechanisms https://arxiv.org/ftp/arxiv/papers/1911/1911.00936.pdf 이 논문은 Variational Autoencoders for Collaborative Filtering 을 Base 로 하고 있으며, 단순히 Layer를 추가하는 것으로 성능이 향상되지 않아, Gated Mechanism 의 적용과 VampPrior 적용 두 가지가 핵심이다. annealing (가중치) Item (Bag of Words) u s e r Encoder (Gated Mechanism) Mean Vector Std Vector Sampled Latent Space Sample Noise * + Decoder (Gated Mechanism) BCE Loss -KL Loss + reparameterization Trick Loss = Amortized Inference Item (Bag of Words) u s e r * VampPrior Binary Cross Entropy
  • 15. Enhancing VAEs for Collaborative Filtering: Flexible Priors & Gating Mechanisms https://arxiv.org/ftp/arxiv/papers/1911/1911.00936.pdf ⊗ is the element-wise product with 𝑿 the input of the layer and 𝑾, 𝑽, 𝒃, 𝒄 learned parameters, and 𝜎 the sigmoid function. [FCC Version gated Mechanism] Language modeling with gated convolutional networks.(2016) 논문의 아이디어를 차용하여, AutoEncoder에 적용 함. W ,V, B, C 는 모두 학습되는 Parameter 이며, Gate Vector 생성에 사용되는 Activation Function 은 Sigmoid 이다. => 이게 Vanishing Gradient 문제를 해결해 준다고 하는 듯.
  • 16. More to Think about..
  • 17. Multi Level VAE Encoder Mean Vector Std Vector [Style] Sampled Latent Space Random * + Decoder Mean Vector Std Vector [Group] Sampled Latent Space Random * + concat https://github.com/ananyahjha93/multi-level-vae/blob/master/training.py Multi Level VAE 의 Concept 은 기본적인 VAE 와 약간 다릅니다. 기본적인 VAE 와는 달리 Group Latent Space를 추가하였습니다. Reparamerization 시 전체 훈련 데이터 대해서 동일한 Noise 를 사용하는 VAE와는 달리 Group Latent 는 우리가 알고 있는 Label 별 Noise 를 따로 관리하여 훈련하는 구조를 가지고 있습니다. Label 별 Latent Space Vector 사용
  • 18. Multi Level VAE https://github.com/ananyahjha93/multi-level-vae/blob/master/training.py 이러한 구조를 통해서 이루고자 하는 목적은 아래 그림으로 잘 설명이 됩니다. 기존의 VAE 는 입력이 되는 x 의 그룹과 항상 동일한 데이터만 생성하게 됩니다. 하지만 ML-VAE 에서는 두개의 Latent 를 분리하였기 때문 에 아래의 예시처럼 두가지 다른 조합을 통한 생성이 가능하게 됩니다.
  • 19. Multi Level VAE 아래와 같은 예시들이 ML VAE 의 결과물이라고 볼 수 있습니다. 추천에 있어서 Random 성은 굉장히 중요하 다고 생각합니다. 상품 추천에 있어서, Group 이라는 요소를 활용하며, 추천에 Random 성격을 부여하거나, 원하는 상품 그룹으로 추천을 한다던지 하는 적용이 가능하지 않을지 고민해면 어떨지요.
  • 20. You Tube Recommendation 현재 대부분의 추천 알고리즘 논문은 MovieLens 와 같은 Toy Data 에 기반하여 만들어져 있습니다. You- Tube 논문도 실제 시스템 구축을 위해서는 더 많은 고민이 필요해 보지만, 다른 실험실에서만 동작하는 논문 들 보다는 실용성 측면의 고민이 많이 가미되었다고 생각합니다. 그렇다면 VAE-CF 같은 연구들이 실무에서 는 아주 무가치할까요? You Tube 추천 시스템의 Candidate Generation 에 사용해 보면 어떨지 고민해 봅니다