안녕하세요, 이번 리뷰는 video generation에 입문하고자 기초부터 다잡기 위해 읽게 된 논문입니다. GAN, VAE(Variational AutoEncoder) 등의 생성 모델에 기반하던 video generation에 diffusion을 처음으로(?) 적용시킨 연구입니다. 베이스 논문이다보니 수식이 많고 복잡해서 아직 완전히 이해한 느낌은 아니지만, 이해한 대로 끄적여 보았습니다,,
Introduction
Diffusion model은 이미지/오디오 생성에서 좋은 성능을 보이며 새로운 생성 모델의 패러다임으로 자리잡았으나, 이를 비디오에 적용하기 위해서는 개별 프레임의 시각적 품질 뿐만 아니라 temporal 정보까지 고려해야 합니다. 그래서 이미지 생성보다 연산량과 메모리 코스트가 크며, 제한된 길이와 해상도로 학습된 모델을 이용해 장시간&고해상도 영상을 생성하는 방법도 필요합니다. 따라서 본 논문은 기존의 Gaussian Diffusion Model을 video generation으로 확장하고 unconditional/conditional video generation에서 확산 모델의 가능성을 검증합니다.
여기서 unconditional video generation은 별도의 입력 조건 없이, 학습된 video distribution으로부터 새로운 비디오를 생성하는 task이며, conditional video gen은 텍스트 프롬프트나 첫 프레임(단일 이미지) 등의 조건이 주어졌을 때 그것에 부합하는 영상을 생성하는 task입니다.
Background : Diffusion Model
diffusion을 video gen에 적용해보려는 첫 연구여서 그런지, Background라는 섹션을 파서 diffusion에 대해 설명하는 파트가 있었습니다. 다른 연구원 분들은 대략적으로라도 알고 계실 것 같은데, 저는 개인적으로 diffusion을 이번에 처음 공부하게 되서 간략하게라도 정리해보았습니다. 우선 큰 틀은, 학습 때 원본 이미지에 노이즈를 여러 스텝 동안 점진적으로 추가하고(Forward Proccess), 이후 denoising network에서 해당 노이즈를 예측하도록 합니다.
forward process에서는 원본 데이터 x에 시간 t에 따라 gaussian noise를 점진적으로 추가하여 noisy latent $z_t$를 생성합니다. 여기서 α_t 와 σ_t는 각각 원본 신호와 노이즈의 비중을 결정하며, t가 증가할수록 z는 standard Gaussian distribution에 가까워집니다.
Reverse process에서는 noisy latent z_t로부터 원본 x를 복원하는 denoising network를 학습합니다. 이 과정에서 z_t에 추가된 노이즈를 예측하며, 예측 노이즈와 (forward process 때의) 실제 노이즈 간 MSE를 최소화하는 방식으로 학습됩니다. 또한 timestep은 cosine noise schedule에 따라 샘플링됩니다. 이렇게 에측된 노이즈를 ϵ_θ(z_t)를 이용하면 다음과 같이 noisy latent z_t로부터 원본 데이터 추정값 \hat{x}_\theta(z_t)를 계산합니다.
Inference 단계에서는 학습 data가 아닌 standard Gaussian noise z_1∼N(0,I)에서 시작합니다. 이후 denoising network가 현재 latent에 포함된 noise를 예측하고, 이를 제거하여 이전 timestep의 latent z_s(s<t)를 생성합니다. 이러한 과정을 t=1에서 t=0까지 반복하면 최종적으로 학습 데이터 분포를 따르는 이미지를 얻을 수 있습니다. 즉, 학습은 임의의 timestep에서 noise를 예측하는 방식으로 수행되지만, 실제 생성에서는 여러 timestep에 걸쳐 denoising network를 반복적으로 호출합니다.
본 논문은 이 reverse process를 수행하기 위해 기본적인 ancestral sampler를 사용합니다. Ancestral sampling은 각 timestep에서 model이 예측한 clean data를 바탕으로 이전 timestep의 latent distribution을 구성하고, 해당 분포에서 새로운 latent를 sampling하는 방식입니다. 따라서 동일한 initial noise나 condition을 사용하더라도 sampling 과정의 stochasticity에 따라 서로 다른 결과가 생성될 수 있습니다.
또한 이후 제안하는 reconstruction-guided sampling에서는 predictor-corrector sampler를 함께 사용합니다. Predictor 단계에서는 일반적인 ancestral sampling을 통해 latent를 이전 timestep으로 이동시키고, corrector 단계에서는 Langevin correction을 적용하여 생성된 latent가 실제 data distribution에 가까워지도록 추가로 보정합니다. 나이브하게만 짚고 가면, “기본 denoising 결과를 한 번 더 data distribution 방향으로 수정하는 sampling 방식”으로 이해하고 넘어가시면 되겠습니다.
마지막으로 Diffusion Model은 class label, text caption, initial frame 등의 condition c를 denoising network에 함께 입력함으로써 conditional generation을 수행할 수 있습니다. 본 논문에서는 text condition을 더욱 강하게 반영하기 위해 classifier-free guidance를 사용합니다.
이는 conditioned noise prediction과 unconditioned noise prediction의 차이를 증폭하는 방식으로, guidance strength w가 커질수록 생성 결과가 text나 initial frame같은 조건을 더 많이 반영하지만, sample diversity가 감소할 수 있습니다.
Video Diffusion Models
저자들은 diffusion model의 학습 및 sampling 방법을 그대로 유지하고, denoising network를 비디오 도메인에 적합한 아키텍처로 확장하기 위해 기존 image diffusion의 U-Net을 시공간 정보를 처리할 수 있는 3D U-Net으로 확장하였습니다.
image diffusion에서 쓰이던 U-Net은 spatial downsamling과 upsampling으로 구성되며 두 경로의 동일한 resolution feature를 skip connection으로 연결합니다. 각 stage는 2D conv 기반 residual block과 spatial attention block으로 구성됩니다. 또한 text condition c와 현재 noise level을 나타내는 log-SNR λ_t는 embedding vector로 변환된 뒤, 여러 MLP layer를 거쳐 각 residual block에 추가됩니다.
이를 video diffusion으로 확장하기 위해 저자들은 시간과 공간을 분리하여 처리하는 factorized 3D U-Net을 구성합니다. 먼저 기존 3×3 2D conv를 1x3x3의 space-only 3D conv로 변경합니다. 이때 첫 번째 축은 프레임 축, 나머지 두 차원은 height&width를 의미하므로 이 conv 과정은 각 프레임의 공간 피처를 처리하지만 서로 다른 프레임의 정보를 직접 혼합하지 않습니다.
Temporal 정보는 attention block을 통해 별도로 처리합니다. 기존 spatial attention에서는 프레임 축을 배치 차원 축처럼 취급하여 각 프레임 내부의 spatial relationship을 학습합니다. 이후 각 spatial attention block 뒤에 temporal attention block을 추가하여, 동일한 spatial position에 해당하는 피처들이 서로 다른 frame 사이에서 상호작용하도록 합니다. 이렇게 spatial attention과 temporal attention을 분리함으로써 전체 spatiotemporal 토큰 한 번에 attention을 수행하는 것보다 연산비용을 줄이면서 프레임 간 temporal consistency를 학습하게 됩니다. Temporal attention에는 relative position embedding을 사용하여 모델이 절대적인 video time에 의존하지 않고 프레임 사이의 상대적인 순서를 구분하도록 합니다.

이러한 factorized architecture로 인해, 하나의 모델을 video 뿐만 아니라 image generation에도 사용할 수 있게 됩니다. 이미지 데이터를 입력할 때는 temporal attention의 연산을 제거하고, 각 timestep이 자기 자신에만 attention하도록 attention matrix를 identity로 고정함으로써 각 frame이 서로 독립적인 image로 처리되어, 동일한 아키텍처를 사용해 이미지와 비디오 generation objective를 jointly training할 수 있게 됩니다. image-video joint training은 풍부한 이미지 데이터로부터 spatial appearance와 detail을 학습하면서, 비디오 데이터로부터 temporal dynamics를 함께 학습할 수 있도록 합니다. 저자들은 이런 joint training이 minibatch gradient의 분산을 줄여 최적화를 빠르게 하고, 최종 video sample 품질을 향상시킨다고 설명합니다.
Reconstruction-guided sampling
앞선 3D U-Net은 고정된 frame 수와 spatial resolution의 video만 생성하도록 학습됩니다. 실제 비디오는 수백~ 수천 개의 frame으로 구성되지만, 전체 비디오를 한 번에 학습하는 것은 연산 비용 이슈가 있어 본 논문에서는 약 16개의 frame만을 하나의 clip으로 학습합니다. 따라서 inference 단계에서 짧은 video sample을 더 긴 길이 또는 높은 resolution으로 확장하고자 reconstruction-guided sampling을 적용합니다.
저자들은 생성할 video를 이미 알고 있는 부분 x^a와 새롭게 생성해야 하는 부분 x^b로 구분합니다. 예를 들어 먼저 16-frame video x^a를 생성하고, 이를 condition으로 후속 프레임 x^b를 생성하면 다음과 같이 video를 autoregressive하게 확장할 수 있습니다.
또한 x^a를 낮은 frame rate로 sampling된 video라고 가정하고, 기존 프레임 사이에 위치할 x^b를 생성하면 temporal upsampling에도 적용할 수 있습니다. 두 경우 모두 기존 프레임과 일관성을 유지하는conditional distribution p_θ에서 새로운 프레임을 sampling해야 합니다. 가장 직접적인 방법은 이러한 conditional model을 별도로 학습하는 것이지만, 저자들은 이미 학습된 unconditional model p_θ(x)을 conditional generation에 재사용하는 방법을 고려합니다. 기존 replacement method에서는 매 reverse step마다 condition에 해당하는 noisy latent z_s^a를 실제 x^a의 forward process에서 얻은 값으로 교체하고, 생성 대상인 z_s^b만 일반적인 denoising process로 업데이트합니다. 이를 통해 z_s^a는 올바른 marginal distribution을 유지하며, denoising network 내부에서 z_s^b가 z_s^a의 영향을 받도록 합니다.
그러나 저자들의 실험에서 replacement method로 생성된 x^b는 독립적으로 보았을 때는 자연스러웠지만, condition으로 제공된 x^a와 temporal coherence를 유지하지 못했습니다. 이는 기존 method가 x^a를 denoising network의 입력에 포함하기만 할 뿐, 생성되는 x^b가 x^a와 일치하도록 sampling direction을 명시적으로 보정하지 않기 때문입니다. 구체적으로 기존 denoising model은 다음과 같이 현재 noisy latent z_t만을 고려한 x^b의 기댓값을 예측합니다.
하지만 conditional generation에 필요한 것은 conditional x^a까지 고려한 $\mathbb{E}[x^b \mid z_t,x^a]$ 입니다. 즉, replacement method에는 생성 결과가 주어진 condition과 얼마나 일치하는지를 나타내는 conditional score가 반영되지 않습니다.
이를 해결하기 위해 저자들은 denoising network가 condition 영역을 복원한 결과 \hat{\mathbf{x}}_\theta^a(\mathbf{z}_t와 실제 condition \mathbf{x}^a 사이의 reconstruction error를 이용합니다. 정확한 conditional distribution q(\mathbf{x}^a|\mathbf{z}_t)은 closed form으로 계산할 수 없으므로, 이를 model prediction \hat{\mathbf{x}}_\theta^a(\mathbf{z}_t)를 평균으로 갖는 Gaussian distribution으로 근사합니다. 이 근사는 denoising이 완료되는 t\rightarrow0에서 정확해지며, 저자들은 noise가 더 많은 timestep에서도 empirically 유효하다고 설명합니다.
최종적으로 생성 대상 \mathbf{x}^b의 denoising prediction은 다음과 같이 수정됩니다.
여기서 \left|\mathbf{x}^a-\hat{\mathbf{x}}_\theta^a(\mathbf{z}_t)\right|_2^2는 model이 condition 영역을 얼마나 정확하게 reconstruction하는지를 나타내며, 이에 대한 gradient는 생성 영역 \mathbf{z}_t^b를 condition과 일관되는 방향으로 조정합니다. 다시 말해, 새로운 프레임을 단순히 자연스럽게 생성하는 것에서 끝나는 것이 아니라, 해당 프레임으로 구성된 전체 video를 denoising network에 입력했을 때 기존 프레임 \mathbf{x}^a가 정확하게 복원되도록 sampling direction을 수정하는 방식입니다. 저자들은 이를 reconstruction-guided sampling 또는 reconstruction guidance라고 정의합니다.
w_r은 reconstruction guidance의 strength를 결정하는 weighting factor입니다. 일반적인 guidance와 마찬가지로 w_r을 크게 설정하면 condition과의 일관성 및 sample quality가 향상되는 경향을 보입니다. 특히 predictor-corrector sampler의 Langevin correction과 결합했을 때 효과적으로 작동한다고 보고합니다. 다만 각 sampling step에서 reconstruction error의 gradient를 추가로 계산해야 하므로, 일반적인 denoising보다 inference cost가 증가한다는 특징이 있습니다.
Reconstruction guidance는 temporal extension뿐만 아니라 spatial super-resolution에도 적용됩니다. High-resolution model이 예측한 video를 bilinear interpolation과 같은 differentiable operation으로 downsampling한 뒤, 주어진 low-resolution video \mathbf{x}^a와의 reconstruction error를 계산합니다. 이후 해당 error를 high-resolution latent \mathbf{z}_t까지 backpropagation하여, 생성되는 high-resolution video가 low-resolution condition의 content와 motion을 유지하도록 합니다.
이러한 temporal·spatial guidance는 동시에 적용할 수도 있습니다. 본 논문에서는 먼저 16\times64\times64, frameskip 4의 low-resolution video를 생성한 뒤, 이를 condition으로 사용하여 64\times128\times128, frameskip 1의 video로 확장합니다. 따라서 프레임 수와 frame rate를 증가시키는 temporal extension과 spatial resolution을 높이는 super-resolution을 하나의 reconstruction guidance process에서 함께 수행합니다.
Experiments
본 논문은 unconditional video generation, video prediction, text-conditioned video generation을 대상으로 실험을 진행합니다. 이 중 본 리뷰에서는 기본 Video Diffusion Model의 생성 성능, image-video joint training의 효과, 그리고 핵심 제안인 reconstruction guidance의 효과를 보여주는 결과를 중심으로 정리하였습니다.
먼저 UCF101 dataset에서 unconditional video generation 성능을 평가합니다. Model은 별도의 class condition 없이 16\times64\times64 크기의 video clip을 생성하며, 10,000개의 generated sample을 대상으로 FID와 IS를 측정합니다. 실험 결과, Video Diffusion Model은 FID 295와 IS 57을 기록하여 기존 TGAN-v2의 FID 3,431 및 IS 26.60을 크게 개선합니다. 특히 IS 57은 real data의 60.2에 근접한 결과로, 기존 image diffusion의 formulation을 video에 맞게 확장하는 것만으로도 높은 video generation 성능을 확보할 수 있음을 보여줍니다.

다만 기존 연구마다 resolution과 preprocessing setting이 일관되지 않으며, 평가에 사용된 C3D network가 입력 video를 동일한 resolution으로 resize합니다. 따라서 Table 1의 큰 성능 차이를 model architecture의 효과만으로 단정하기에는 어렵다고 봐야합니다.
다음으로 저자들은 text-conditioned video generation에서 image-video joint training의 효과를 분석합니다. 하나의 video sample에 서로 독립적인 image 프레임을 추가하고, temporal attention masking을 통해 image와 video 프레임 사이의 불필요한 information mixing을 방지합니다. 추가 image 프레임 수를 0개에서 4개, 8개로 증가시켰을 때 validation FVD는 각각 205.42, 70.74, 60.72로 감소하며, FID-avg 역시 37.40에서 15.44로 개선됩니다. 이는 independent image sample을 함께 학습하는 것이 spatial appearance뿐만 아니라 전체 video quality 향상에도 효과적임을 보여줍니다.

저자들은 이러한 개선이 하나의 batch에 더 많은 independent sample을 포함함으로써 minibatch gradient의 variance가 감소하기 때문이라고 해석합니다.
마지막으로 핵심 method인 reconstruction guidance는 16\times64\times64) model을 autoregressive하게 적용하여 64\times64\times64 video를 생성하는 실험으로 검증합니다. Guidance weight w=2에서 기존 replacement method의 validation FVD는 436.16인 반면, reconstruction guidance는 134.55를 기록합니다. FID-avg 역시 25.52에서 13.62로 개선되어, reconstruction guidance가 각 block의 생성 품질과 block 사이의 temporal coherence를 모두 향상시키는 것으로 나타납니다.

Figure 4의 정성 결과에서도 replacement method는 block이 전환될 때 장면과 motion이 불연속적으로 변화하는 반면, reconstruction guidance는 전체 64개 프레임에서 비교적 일관된 content와 motion을 유지합니다. 특히 두 방법의 FID-first는 거의 동일하지만 전체 video의 FVD에서는 큰 차이가 발생하므로, reconstruction guidance의 주요 효과가 첫 프레임의 appearance보다 장기적인 temporal coherence 개선에 있음을 확인할 수 있습니다.

결론적으로, 실험 결과는 factorized 3D U-Net 기반 Diffusion Model이 unconditional video generation에서 높은 생성 품질을 보이며, image-video joint training이 학습 안정성과 sample quality를 개선한다는 것을 보여줍니다. 또한 reconstruction guidance는 별도의 conditional model을 학습하지 않고도 짧은 video model을 long video generation에 활용하면서, 기존 replacement method의 temporal inconsistency 문제를 효과적으로 완화합니다.
리뷰 잘 읽었습니다. 해당 논문이 짧은 video clip을 학습한 뒤 reconstruction guidance를 통해 autoregressive하게 긴 영상을 생성하는 것으로 이해했는데요.
그런데 이러한 방식이 물론 인접한 clip 사이의 temporal consistency는 개선할 수 있어도, 영상 전체의 long-range temporal dependency나 장기적인 semantic consistency까지 유지하기에는 한계가 있을 것 같다는 당연한 생각이 듭니다.
이후 연구에서는 이러한 문제를 어떤 방식으로 개선했는지, 혹은 최근 video diffusion에서는 긴 temporal context를 직접 modeling하는 방향으로 어떻게 발전했는지 궁금하네요!
안녕하세요. 좋은 리뷰 감사합니다.
video generation에 처음으로(?) diffusion을 결합한 논문이여서 디테일한 부분에서 2d image와 어떻게 다르게 가져가는지를 볼 수 있었던 것 같습니다.
간단한 질문이 있는데 reconstruction guidance는 매 스텝 gradient를 추가로 계산해야 하는데, 실제 inference 시간이 replacement 대비 몇 배 정도 느려지는지 논문에 언급이 있나요? gradient를 latent까지 backprop하는 거면 사실상 backward pass가 한 번 더 도는 건데, 그 비용 대비 성능이 적절한 수준인지 궁금합니다!
안녕하세요 재윤님 리뷰 감사합니다!
기존의 이미지 디퓨전의 u-net을 시공간 정보를 따로 처리하는 factorized 3d u-net으로 확장하면서 비디오에서는 temporal attention까지 사용하고 이미지에서는 그 temporal attention을 꺼서 각 프레임을 약간 독립적으로 처리하게 해주는데,
이렇게 해주는 것으로 이미지 학습만의 강점+비디오 학습만의 강점을 joint training으로 오히려 더 좋아졌다~ 이렇게 이해했습니다
여기서 한가지 궁금한 점은 이미지 데이터를 같이 학습했을대 비디오 성능까지 좋아지는 이유가 이미지 데이터로 spatial quality를 더 잘 학습했기 때문인건지 아니면 저자들이 말하는 gradient variance감소효과가 더 큰건지 따로 분석한 부분이 있는지 궁금합니다!
없다면 재윤님의 의견은 어떤지도 궁금합니다!
안녕하세요 재윤님 좋은 리뷰 감사합니다.
간단한 질문이 있습니다.
일반적인 이미지/비디오 생성은 텍스트나 이미지를 conditioned로 하는 것으로 알고 있습니다
그런데 unconditioned 이미지/비디오 생성은 어떻게 사용되는지 궁금합니다.
감사합니다.