DV365: Extremely Long User History Modeling at Instagram (2025)
๐ ์์ฝ
- ๊ธด ์ฌ์ฉ์ ํ์คํ ๋ฆฌ๋ ์ถ์ฒ ํ์ง ํฅ์์ ์ค์ํ์ง๋ง ๋น์ฉ์ด ํผ
- ๊ธฐ์กด์ end-to-end ์ํ์ค ๊ธธ์ด ์ต์ ํ ๋ฐฉ์์ ํ์ฅ์ฑ ๋ฐ ROI ํ๊ณ์ ๋๋ฌํ๊ธฐ์ ๋์ ์คํ๋ผ์ธ ์๋ฒ ๋ฉ ๋ฐฉ์์ ์ฑํ = DV365
- ๋ชฉ์ : ์ฌ์ฉ์์ ๋งค์ฐ ๊ธธ๊ณ ์์ ์ ์ธ ๊ด์ฌ์ฌ๋ฅผ ๋ํ๋ด๋ ์ผ๋ฐํ ๊ฐ๋ฅํ ์ ์ ํํ์ ์์ฑ
- ๊ธธ์ด๊ฐ ์ต๋ 70,000๊ฐ, ํ๊ท 40,000๊ฐ์ ๋ฌํ๋ ์ฌ์ฉ์ ํ์คํ ๋ฆฌ๋ฅผ ์ธ์ฝ๋ฉ
- ์คํ๋ผ์ธ ์๋ฒ ๋ฉ์ ํ๊ณ์ธ freshness ๋ฌธ์ ๋ฅผ ์๊ฐ์ ๋ฐ๋ผ ํฌ๊ฒ ๋ณํ์ง ์๋ ์์ ์ ์ธ ๊ด์ฌ์ฌ์ ์ด์ ์ ๋ง์ถค์ผ๋ก์จ ์ํ
- ๋จ์ผ foundational model์์ ์์ฑ๋ ์๋ฒ ๋ฉ ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ์์ ํ์ฉํ๊ณ ์ด๋ ๊ฐ๋ฒผ์ด domain adaptation ๋ชจ๋์ ์ถ๊ฐ -> ์ธ์คํ๊ทธ๋จ/์ค๋ ๋์ 15๊ฐ ์ด์ ๋ชจ๋ธ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐฐํฌ๋์ด 1๋ ์ด์ ํ๋ก๋์ ํ๊ฒฝ์์ ๊ฒ์ฆ๋จ
Data & Feature
- UniTi (Unified User Timeline)
- ๊ฐ ์ ์ ์ํธ์์ฉ์ ๋ฏธ๋์ด ID, ์์ฑ์ ID, ์ด๋ฒคํธ ํ์์คํฌํ, ์ก์ ์ ํ(like, share, comment, โฆ), ๋น๋์ค ๊ธธ์ด, ์์ฒญ์๊ฐ, ์ง๋ฉด(surface) ์ ํ, ๋ฏธ๋์ด ์ ํ ๋ฑ์ผ๋ก ์ด๋ฃจ์ด์ง
- ์ด ํ๋์ ๋ฏธ๋์ด๋ฅผ ํํํ๋ ๋ฒกํฐ(๊ฐ ์์๊ฐ ๋ฏธ๋์ด ID, ์์ฑ์ ID, topic Id๋ฑ ๋ฏธ๋์ด ์์ฑ๊ฐ์ ๋ํ๋)๋ผ๊ณ ํ๋ฉด, 2๊ฐ์ง ์ ํ์ ํ์๋ผ์ธ์ ๋ง๋ค ์ ์์
- Explicit timeline(like, share๋ฑ)
- Implicit timeline(๋ฏธ๋์ด๋ฅผ ๋ณด๊ฑฐ๋ ๋จธ๋ฌด๋ฅด๋ ํ์)
- Multi-Slicing
- ์ด UniTi๋ฅผ ์ฌ๋ฌ ๊ธฐ์ค์ ๋ฐ๋ผ slicingํ์ฌ ๋ ๊ตฌ์ฒด์ ์ด๊ณ ์๋ฏธ ์๋ subsequence๋ฅผ ๋ง๋ฆ
- Explicit timeline slicing
- ํ๋ ์ ํ๋ณ slicing(e.g. ์ข์์ ๋๋ฅธ ๋ฏธ๋์ด๋ง ์๋ฅด๊ธฐ), ๋ฏธ๋์ด ์ ํ๋ณ slicing
- Implicit timeline slicing
- Dwell Time slicing: ์ฌ์ฉ์๊ฐ ํน์ ์๊ฐ ์ด์ ๋จธ๋ฌด๋ฅธ ๋ฏธ๋์ด๋ง
- Watch Ratio slicing: ๋์์ ๊ธธ์ด ๋๋น ์์ฒญํ ๋น์จ์ ๊ธฐ์ค์ผ๋ก
- Duration-debiased Weighted Watch Score slicing
- ๊ธด ๋์์์ ์์ฐํ ์์ฒญ ์๊ฐ๋ ๊ธธ์ด์ง๊ธฐ ๋๋ฌธ์ ๋จ์ํ ์์ฒญ ์๊ฐ๋ง์ผ๋ก๋ โ์ง์ ํ ๊ด์ฌโ์ ํ์ ํ๊ธฐ ์ด๋ ค์. duration์ผ๋ก debiasํ ์ ์๋ฅผ ์์ฑํด์ ํด๋น ์ ์๊ฐ ํน์ ๊ธฐ์ค ์ด์์ธ ๋ฏธ๋์ด๋ง
- Time slicing
- ์ผ๋ง๋ ์ต๊ทผ์ ํ๋์ธ๊ฐ๋ฅผ ๊ธฐ์ค์ผ๋ก ์๋ฆ (์ ์ฒด ๊ธฐ๊ฐ, 3์ผ์ด๋ด, 7์ผ์ด๋ด)
- ์ด๋ ๊ฒ ์ด 200์ฌ๊ฐ์ ํ์ํผ์ณ(์ฌ๋ผ์ด์ค๋ ์ญ์ํ์ค๋ค)๊ฐ ๋ง๋ค์ด์ง
- ๊ฐ ํผ์ณ๋ฅผ ์๋ฒ ๋ฉ์ผ๋ก summarize
- Non-weighted categorical features: ๋๋ถ๋ถ์ ํ๋ ๊ธฐ๋ฐ ํผ์ฒ(e.g. โ์ข์์โ ์ํ์ค)๋ ํด๋น ์ํ์ค ๋ด์ ๋ชจ๋ ์์ดํ ์๋ฒ ๋ฉ์ ๋จ์ mean-pooling
- Weighted categorical features: ๋์์ ์์ฒญ ์ ์์ฒ๋ผ ๊ฐ์ค์น๊ฐ ์๋ ํผ์ฒ๋weighted mean-pooling
- Embedding Table sharing
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ๊ฐ ์๋ฒ ๋ฉ ํ
์ด๋ธ์ด ํน์ ์ ํ์ ์ ๋ณด์ ์ง์คํ๋๋ก ํ๊ธฐ ์ํด ์์ฑ๋ ๋ฒ์ฃผํ ํผ์ฒ๋ค์ ๋ช ๊ฐ์ง ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ raw ์๋ฒ ๋ฉ ํ
์ด๋ธ์ ๊ณต์ ํจ
- ์๋ฅผ ๋ค์ด, โ๊ธ์ ์ ๋ฐ์(์ข์์, 15์ด ์ด์ ์์ฒญ)โ๊ณผ โ๋ถ์ ์ ๋ฐ์(์คํต, 3์ด ๋ฏธ๋ง ์์ฒญ)โ์ ๊ตฌ๋ถํ๊ณ , ๋ช ์์ /์๋ฌต์ ํ์๋ผ์ธ, ID ์ ํ(๋ฏธ๋์ด ID, ์์ฑ์ ID) ๋ฑ์ผ๋ก ๊ทธ๋ฃนํ
- ๊ฐ์ ๋ฏธ๋์ด๋ผ ํด๋ ์ด๋ค ๋งฅ๋ฝ์ด๋์ ๋ฐ๋ผ ํนํ๋์ด ํ์ต๋๋๋ก ํด์ ํํ๋ ฅ์ ๊ทน๋ํํจ
- ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ์ค์ด๊ณ ๊ฐ ์๋ฒ ๋ฉ ํ
์ด๋ธ์ด ํน์ ์ ํ์ ์ ๋ณด์ ์ง์คํ๋๋ก ํ๊ธฐ ์ํด ์์ฑ๋ ๋ฒ์ฃผํ ํผ์ฒ๋ค์ ๋ช ๊ฐ์ง ๊ธฐ์ค์ผ๋ก ๊ทธ๋ฃนํํ์ฌ raw ์๋ฒ ๋ฉ ํ
์ด๋ธ์ ๊ณต์ ํจ
Model Architecture
![[model-architecture.png]]
User Encoder
- ๋ชฉํ: ํผ์ฒ ์์ง๋์ด๋ง ๋จ๊ณ์์ ์์ฑ๋ 200๊ฐ์ pooled embedding๋ฅผ ๋์ฑ ์์ถํ์ฌ, ๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ์ด ์ฌ์ฉํ๊ธฐ์ ํจ์จ์ ์ธ โDV365 Embeddingโ์ ๋ง๋ค์ด๋ด๋ ๊ฒ
- Funnel Summarization Arch (FSA)
- ํธ๋์คํฌ๋จธ ๊ณ์ด ๋ชจ๋ธ์ ๊ธด ์ํ์ค์ ๋ชจ๋ ํ ํฐ์ ์ฒ์๋ถํฐ ๋๊น์ง ๊ฐ์ ๊ธธ์ด๋ก ์ฒ๋ฆฌํ์ง๋ง FSA๋ ๊น๋๊ธฐ์ฒ๋ผ ์ ์ง์ ์ผ๋ก ์ํ์ค ๊ธธ์ด๋ฅผ ์ค์ฌ๋๊ฐ
- ์ด๊ธฐ ์ ๋ ฅ ํํ: N๊ฐ์ ์๋ฒ ๋ฉ (=200), ๊ฐ ์๋ฒ ๋ฉ์ ์ฐจ์ (e.g. 256)
- Token-wise View
- ์ผ๋ฐ์ ์ธ MLP๋ Transformer๋ ์ด ์ ๋ ฅ์ ๋๋ ํํ๋ก ๋ณด๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ, FSA๋ ์ด ํ ์๋ฅผ transposeํ์ฌ ํํ๋ก ๋ง๋ฆ
- ์ฐจ์์ ์๋ฒ ๋ฉ ๋ฒกํฐ ํ๋ํ๋๋ฅผ ํ๋์ โํ ํฐโ์ฒ๋ผ ๋ณด๊ณ , ์ด ํ ํฐ๋ค์ ์ํ์ค(๊ฐ)๋ฅผ ์ฒ๋ฆฌ -> ๊ฐ ์๋ฒ ๋ฉ ๋ฒกํฐ ๋ด๋ถ์ ์๋ฏธ๋ฅผ ์ ์งํ๋ฉด์, ์ด ์๋ฒ ๋ฉ๋ค ์ฌ์ด์ ์ํธ์์ฉ์ ํ์ต
- Funnel Transformer Encoder (์ฌ๋ฌ ๋ธ๋ก์ผ๋ก ๊ตฌ์ฑ)
- ๊ฐ ๋ธ๋ก ๋ด: Transformer์ ํ์ค EncoderLayer (๋ฉํฐํค๋ ์ ํ ์ดํ ์ ๊ณผ ํผ๋ํฌ์๋ ๋คํธ์ํฌ)๋ฅผ ์ ์ฉํ์ฌ N๊ฐ์ ํ ํฐ(pooled embedding)๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ํ์ต
- ๋ธ๋ก ๊ฐ: ๊ฐ ๋ธ๋ก ์ฌ์ด์ Pool ์ฐ์ฐ์ ์ ์ฉํ์ฌ ๊ฐ์ ํ ํฐ ์ํ์ค์ ๊ธธ์ด๋ฅผ ๋ก ์ค์ฌ๋๊ฐ๋ฉด์ ๊ฐ์ฅ ์ค์ํ ์ ๋ณด๋ง ๋จ๊ธฐ๊ณ ๋ถํ์ํ ์ค๋ณต ์ ๋ณด๋ฅผ ๊ฑธ๋ฌ๋
- ๊ฒฐ๊ณผ: (์: 58)๊ฐ์ ์ฐจ์ ์๋ฒ ๋ฉ์ผ๋ก ์ด๋ฃจ์ด์ง ๋ ์งง์ ์ํ์ค๋ก ์์ถ
- Linear Compression Encoder (LCE)
- FSA์ ๋ณ๋ ฌ์ ์ผ๋ก ์ ํ ์์ถ ์ธ์ฝ๋๋ฅผ ํต๊ณผ
- FSA์ LCE์ ์ถ๋ ฅ ์๋ฒ ๋ฉ๋ค์ ํฉ์ณ์ ธ (stacked) ๋ฐฑ๋ณธ ์๋ฎฌ๋ ์ด์ ๋คํธ์ํฌ์ ์ ๋ ฅ์ผ๋ก ๋ค์ด๊ฐ
- ์๋น์์๋ ์ด ์ถ๋ ฅ ์๋ฒ ๋ฉ๋ค์ 4-bit quantizationํด์ ํฌ๊ธฐ๋ฅผ ๋ํญ ์ค์ฌ์ key-value store์ ์ ์ฅ
Backbone Simulation Network
- ๊ธฐ๋ฐ ๋ชจ๋ธ : DLRM (Deep Learning Recommendation Model)
- Software-Hardware Co-design for Fast and Scalable Training of Deep Learning Recommendation Models @Meta
- multi-task ๋ญ์ปค๋ก, ์ฌ๋ฌ ์์ธก ์์ (์: ์ข์์, ๋๊ธ, ์์ฒญ ์๋ฃ, ์คํต ๋ฑ ์ด์ง ๋ถ๋ฅ ์์ ๋ฐ ์์ฒญ ์๊ฐ ์์ธก ๊ฐ์ ํ๊ท ์์ )์ ๋์์ ์ํ
- ์ค์ ํ๋ก๋์ ๋ชจ๋ธ(๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ)๊ณผ ์ ์ฌํ ์ ์ฒด ๋ญํน ๋งฅ๋ฝ์์ ํ์ต๋๋๋ก ํ์ฌ ๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ์ ์ง์์ ์ ๋ฌํ๋ ํจ์จ์ฑ์ ๋์ด๊ณ , ์ฌ๋ฌ ๋ค์ด์คํธ๋ฆผ ๊ณผ์ ์ ๊ฑธ์ณ ์ ์๋ํ๋ ์ผ๋ฐํ๋ ์ฌ์ฉ์ ํํ์ด ๋๋๋ก ํจ
- Distant Interest Prediction Objective
- ์ ์ ์ ๊ฐ์ฅ ์ต๊ทผ 24์๊ฐ ๋์์ ํ๋ ๊ธฐ๋ก์ UniTi์์ ์๋์ ์ผ๋ก ์ ๊ฑฐํจ
- ๊ฐ์ฅ freshํ ์ ๋ณด ์์ด๋ ์์ธก์ ์ ์ํํด์ผ ํ๋ฏ๋ก, ๋จ๊ธฐ์ ์ธ ๋ณ๋์ฑ ๋์ ๊ด์ฌ์ฌ๋ณด๋ค๋ ์ค๋๋ ๋ฐ์ดํฐ์์๋ ํ์ ํ ์ ์๋ ์ฅ๊ธฐ์ ์ด๊ณ ์์ ์ ์ธ ์ ์ ๊ด์ฌ์ฌ๋ฅผ ํ์ตํ๋๋ก ์ ๋
- ์
๋ ฅ
- DV365 Embedding: ์์์ FSA๋ฅผ ํตํด ์์ฑ๋ DV365 ์ฌ์ฉ์ ์๋ฒ ๋ฉ
- ์ถ์ฒ ๋์ ์์ดํ ์ ๋ํ ํผ์ฒ๋ค
- ๋ค๋ฅธ ์ฌ์ฉ์ ํผ์ฒ: DV365๊ฐ ๋ชจ๋ธ๋งํ์ง ์๋, ๋ค๋ฅธ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ ํผ์ฒ๋ค
- ํด๋น ์ ๋ ฅ์ผ๋ก๋ถํฐ ์ฌ๋ฌ ํ์คํฌ์ ๋ํ ์์ธก ์ ์๋ฅผ ์ถ๋ ฅํ๊ณ binary task์ ๋ํด์๋ BCE Loss, regression task์ ๋ํด์๋ MSE Loss๋ฅผ ๊ณ์ฐํ๊ณ , ์ด๋ค์ ํฉํ์ฌ ์ด ์์ค๋ก ์ฌ์ฉ
Downstream Integration & Serving
![[recys-architecture.png]]
- Existing System - ์ค๋ฅธ์ชฝ ๋
น์ ๋ถ๋ถ
- DV365๊ฐ ๋์ ๋๊ธฐ ์ ์ ์ผ๋ฐ์ ์ธ ๋๊ท๋ชจ ์ถ์ฒ ์์คํ ์ ํ๋ฆ = ์ค์๊ฐ ์ฒ๋ฆฌ์ ์จ๋ผ์ธ ํ์ต
- app์์ ์ฌ์ฉ์ ์์ฒญ์ด ๋ฐ์ํ๋ฉด ๋ฐฑ์๋์์ ์ถ์ฒ ํ๋ณด ์์ดํ
๋ค์ ์ค๋นํ๊ณ model inference service์์ ๋ญํน ๋ชจ๋ธ์ ์ฌ์ฉํ์ฌ ์ ๋ ฌ
- ์ด๋ ๋ญํน ๋ชจ๋ธ์ online trainer๋ก๋ถํฐ ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๋ชจ๋ธ ๊ฐ์ค์น๋ฅผ ๋ฐ์ ์ฌ์ฉ
- ์ด ๊ตฌ์กฐ์์ผ๋ก ์จ๋ผ์ธ ํธ๋ ์ด๋์ ์ต์ ์ฌ์ฉ์ ํ๋ ๋ฐ์ดํฐ๋ฅผ ๊ฑฐ์ ์ค์๊ฐ์ผ๋ก ๋ฐ์ํ์ฌ ๋ชจ๋ธ์ ์ ๋ฐ์ดํธํ๋ฏ๋ก, ๋ชจ๋ธ์ freshness๋ฅผ ๊ทน๋ํํจ (๋งค์ฐ ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ)
- ์ด๋ฐ ๊ตฌ์กฐ์์ ๊ธด ์ฌ์ฉ์ ํ์คํ ๋ฆฌ๋ฅผ ์ค์๊ฐ์ผ๋ก ์ฒ๋ฆฌํ๊ธฐ์๋ ๋น์ฉ ์ด์๊ฐ ๋ฐ์
- DV365์ ์๋ก์ด ์ปดํฌ๋ํธ๋ค - ์ผ์ชฝ ๋
ธ๋์ ๋ถ๋ถ
- ์คํ๋ผ์ธ ์ฒ๋ฆฌ + ๋น์ฉ ํจ์จ์ ์ธ ์ง์ ๊ณต์
- Long-term User History Storage์ UniTi๋ฅผ ์ ์ฅํจ. ์ค์๊ฐ ์ ๊ทผ์ด ํ์ ์๋ ์์์ด๋ฏ๋ก ๋น๊ต์ ์ ๋ ดํ ์จ์ดํ์ฐ์ค๋ฅผ ์ฌ์ฉ
- Data ์ ์ฅ๊ธฐ ํ์คํ ๋ฆฌ(UniTi) ์ ์ฐ์ธก ๊ธฐ์กด ์์คํ ์ โTraining Data Generationโ์์ ์์ฑ๋๋ Online Training Data์ ์ผ๋ถ๋ฅผ ๊ฒฐํฉํ์ฌ DV365 Foundation Model ํ์ต์ ์ํ Offline Training Data๋ฅผ ์์ฑ
- DV365 Foundation Model: ์์ ์ค๋ช
๋ ์ ์ ์ธ์ฝ๋์ ๋ฐฑ๋ณธ ์๋ฎฌ๋ ์ด์
๋คํธ์ํฌ๋ฅผ ํฌํจํ๋ ๋ชจ๋ธ์ Offline Trainer๊ฐ ํ์ต์ํด
- recurring job scheduler๋ก ์ฃผ๊ธฐ์ ์ผ๋ก(๋ช์๊ฐ๋ง๋ค) ํ์ต - ์จ๋ผ์ธ ํ์ต์ฒ๋ผ ์ค์๊ฐ์ผ ํ์๋ ์์
- ํ์ต๋ foundation model์ ์ธ์ฝ๋ ๋ถ๋ถ๋ง ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ์ฑ ์ฌ์ฉ์์ ๋ํ DV365 ์๋ฒ ๋ฉ์ ์์ฑํ๊ณ ์์ํ ๊ธฐ๋ฒ์ ์ ์ฉํ์ฌ ์ ์ ID๋ฅผ ํค๋ก ํ๋ ๊ณ ์ฑ๋ฅ ์จ๋ผ์ธ key-value store์ ์ ์ฅ (Embedding Cache)
- ๊ธฐ์กด ์์คํ ์ Model Inference Service์์ ์ถ์ฒ ํ๋ณด ์์ดํ ์ ๋ํ ์์ธก ์ ์๋ฅผ ๊ณ์ฐํ ๋ ์ ๋ ฅ์ผ๋ก DV365์๋ฒ ๋ฉ์ ์กฐํํ์ฌ ํจ๊ป ์ฌ์ฉ + ๋ค์ด์คํธ๋ฆผ๋ณ Model-specific adoption arch๋ฅผ ๊ฑฐ์ณ์ ํตํฉ๋จ
Experiments
setup
- ๋ฐ์ดํฐ์
์ ์ธ์คํ๊ทธ๋จ์ ๋ด๋ถ ์ถ์ฒ ๋ก๊ทธ์์ ์์ฑ๋ ํ์ต ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ
- ๊ธฐ์กด ํ๋ก๋์ ํ์ต ํ ์ด๋ธ: ๊ธฐ์กด ํ๋ก๋์ ๋ชจ๋ธ(๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ) ํ์ต์ ์ฌ์ฉ๋๋ ๋ฐ์ดํฐ๋ก, ์ฌ์ฉ์ ์ด๋ ฅ ๊ธธ์ด๊ฐ ํ๊ท 1500๊ฐ, ์ต๋ 2000๊ฐ ์ ๋
- DV365 ํ์ต์ฉ ํ ์ด๋ธ: DV365๋ฅผ ์ํด ํน๋ณํ ์์ฑ๋ ํ ์ด๋ธ๋ก ํ์คํ ๋ฆฌ ๊ธธ์ด๊ฐ ํ๊ท 40,000๊ฐ, ์ต๋ 70,000๊ฐ์ ๋ฌํจ
- DV365 ๊ธฐ๋ฐ upstream model์์ Normalized Entropy (NE) ์งํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ชจ๋ธ ๋์์ธ์ ๊ฒฐ์ ํจ
- ๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ
- Ranking
- DLRM ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, HSTU ๋ผ๋ ๊ฐ๋ ฅํ ์ดํ ์ ๊ธฐ๋ฐ ์ํ์ค ์ธ์ฝ๋๋ฅผ ํฌํจํ ๋น์ ํ๋ก๋์ ๋ชจ๋ธ์ ๋ฒ ์ด์ค๋ผ์ธ์ผ๋ก ์ค์
- ํ๊ฐ์งํ๋ BCE Loss๋ฅผ ๋ฐฐ๊ฒฝ CTR์ผ๋ก ์ ๊ทํํ ๊ฐ (๊ฐ์ด ์์์๋ก ์ข๊ณ -0.1% ์ด์ ๊ฐ์ํ๋ฉด ํต๊ณ์ ์ผ๋ก ์ ์๋ฏธํ ์ฑ๋ฅ ํฅ์์ผ๋ก ๊ฐ์ฃผ)
- Retrieval
- Mixture of Logits ๊ธฐ๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ฉฐ, ๋ง์ฐฌ๊ฐ์ง๋ก HSTU๋ฅผ ํฌํจํ ๋น์ ํ๋ก๋์ ๋ชจ๋ธ์ ๋ฒ ์ด์ค๋ผ์ธ์ผ๋ก ์ค์
- ํ๊ฐ์งํ๋ HitRate@1, HitRate@10
- Ranking
design choices
- sequence encoder
- ์ต์ข ์ ์ผ๋ก mean-pooling ์ ํ
- ๋ค๋ฅธ ์ต์ ๋ค: position-weighted pooling, HSTU(์ดํ ์ ๊ธฐ๋ฐ)
- ํ์ค ๊ธธ์ด๊ฐ ์งง์ ๋๋ ์ ์ต์ ๋ค์ด Mean-pooling๋ณด๋ค ์ฝ๊ฐ์ ๊ฐ์ ์ด ์์์ผ๋ 30K์ด์์ ๋งค์ฐ ๊ธด ์ํ์ค์์๋ ์ถ๊ฐ์ ์ธ ์ํ์ค ๋ชจ๋ธ๋ง์์ ์ค๋ ์ด์ ์ด ์์ ํ ์ฌ๋ผ์ก์
- ์ํ์ค ์ ๋ณด๋ emerging interest์ ์ ์ฉํ๋ฉฐ, DV365๊ฐ ๋ชฉํ๋ก ํ๋ long-term stable interest์๋ (๋น์ฉ ํจ์จ์ฑ๊น์ง ๊ณ ๋ คํ๋ฉด) mean-pooling์ด ๋ฒ ์คํธ์๋ค
- backbone simulation network
- DLRM (ranking๊ณผ consistent), Siamese network (retrieval๊ณผ consistent) ๋ ๊ฐ์ง๋ฅผ ํ ์คํธ
- retrieval์์๋ ์ฑ๋ฅ์ด ์ ์ฌํ๊ณ ๋ญํน์์๋ DLRM ๋ฐฑ๋ณธ์ด 0.2% NE delta์ ์ ์๋ฏธํ ๊ฐ์ ์ ๋ณด์ฌ DLRM ์ ํ
- user encoder
- ๋์์ธ ์ ํ
- Compression perspective: Dim-wise vs. Token-wise
- ์ธ์ฝ๋ ์ํคํ ์ฒ: Linear Compression Encoder (LCE), MLP, Vanilla Transformer, Funnel Transformer
- ๋ค์ํ ์กฐํฉ์ ํ ์คํธํ์ ๋ Token-wise ์์ถ ๋ฐฉ์์ด ๋ชจ๋ ์ธ์ฝ๋์์ Dim-wise ๋ฐฉ์๋ณด๋ค ํจ์ฌ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ (๋ชจ๋ธ์ด ๋จ์ผ ํ ํฐ ์๋ฒ ๋ฉ ๋ด์์ ํ๋ผ๋ฏธํฐ ๊ณต์ ๋ฅผ ์ ํธํ๋ค๋ ๊ฒ์ ์ ์ ์์)
- ์ธ์ฝ๋ ์ ํ์์๋ Vanilla Transformer์ FSA (Funnel Transformer + LCE)๊ฐ ๊ฐ์ฅ ์ข์๊ณ , FSA๊ฐ ํ๋ผ๋ฏธํฐ ์๊ฐ ๋ ์ ๊ณ ํ๋ จ QPS (Query Per Second)๊ฐ 10% ๋ ๋์๊ธฐ ๋๋ฌธ์ ์ต์ข ์ ํ
- ๋์์ธ ์ ํ
Product Launches
- ์ธ์คํ๊ทธ๋จ์์ ๊ฐ์ฅ ํฐ ํธ๋ํฝ์ ์ฐจ์งํ๋ ๋ฆด์ค์๋น์ค์ ๋ํ ์คํ๋ผ์ธ ๊ฒฐ๊ณผ๋ง ๋ณด๊ณ ํจ(๋ค๋ฅธ ์๋น์ค์์๋ ์ ์ฌํ ๊ฒฐ๊ณผ)
![[ranking.png|400]]
- DV365๋ฅผ ์ถ๊ฐํ์ ๋, ๋ชจ๋ ๋ญํน ํ์คํฌ์์ NE๊ฐ ํ๊ท 0.4% ์ด์ ์ ์๋ฏธํ๊ฒ ๊ฐ์
- ํตํฉ ๋ฐฉ์์ผ๋ก๋ linear projection์ด ๋ ๋์ ์ฑ๋ฅ
![[retrieval.png|400]]
-
Hit Rate๊ฐ 2%์์ 8%๊น์ง ์ฆ๊ฐ
- ํตํฉ ๋ฐฉ์์ผ๋ก๋ Gatenet์ด ๋๋ถ๋ถ์ ํ์คํฌ์์ ๋ ๋์ ์ฑ๋ฅ
-
Production
- ์ธ์คํ๊ทธ๋จ๊ณผ ์ค๋ ๋์ 15๊ฐ ๋ค๋ฅธ ํ๋ก๋์ ๋ชจ๋ธ์ ์ฑ๊ณต์ ์ผ๋ก ์ถ์
- ๋ชจ๋ A/B ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ์ข ํฉํ์ ๋, ์ธ์คํ๊ทธ๋จ ์ฑ ์ฌ์ฉ ์๊ฐ์ 0.7% ํฅ์์์ผฐ์ผ๋ฉฐ, ๋ค๋ฅธ ์ค์ํ engagement metrics๋ ๊ฐ์
- ๋์ ์ผ๋ฐํ ๋ฅ๋ ฅ: ๋งค์ฐ ์ด์ง์ ์ธ ๋ค์ด์คํธ๋ฆผ ๋ชจ๋ธ ์ํคํ ์ฒ์ ๋ชฉํ์๋ ๋ถ๊ตฌํ๊ณ , ํ๋์ DV365 ๊ธฐ๋ฐ ๋ชจ๋ธ์์ ์์ฑ๋ ์๋ฒ ๋ฉ์ด ๋ค์ํ ์ฌ์ฉ ์ฌ๋ก(์ฝํ ์ธ ์ถ์ฒ ํ์ง ํฅ์, ์๋ฆผ CTR, ์ค๋ ๋ ์๋น์ค ์์ ๋ฑ)์ ํจ๊ณผ์ ์์ ์ ์ฆ
- ์๋ฒ ๋ฉ์ staleness๊ฐ ์ฆ๊ฐํด๋ ์๋ฒ ๋ฉ ํ์ง์ด ์์ ์ ์ผ๋ก ์ ์ง๋จ
![[staleness-and-negain.png|450]]
- X์ถ: ๋์ ํ์ต ๋ฐ์ดํฐ์ ์์ โ์ผโ ๋จ์๋ก ๋ํ๋ธ ๊ฒ - ํ์ต์ด ์งํ๋ ์๋ก ๋ ๋ง์ ๊ณผ๊ฑฐ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ธ์ด ๋ณด๊ฒ ๋จ
- Y์ถ (NE Gain (%)): Normalized Entropy (NE)์ ๊ฐ์ ์จ(๋ฎ์์๋ก ๋ฒ ์ด์ค๋ผ์ธ ๋๋น ์ฑ๋ฅํฅ์)
- ๋น๊ต
- Fresh Embedding NE Gain: DV365 ์๋ฒ ๋ฉ์ ๋งค์ผ ์
๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ
- NE Gain์ด ์ฒ์ 3์ผ ๋์์ ์ฆ๊ฐํ๋ค๊ฐ, ์ดํ์๋ ์ฝ -0.35% ์์ค์์ ์์ ์ ์ผ๋ก ์๋ ด
- Stale Embedding NE Gain: DV365 ์๋ฒ ๋ฉ์ ๊ณ ์ ๋ ์ํ๋ก ์
๋ฐ์ดํธํ์ง ์๋ ๊ฒฝ์ฐ (Age = ์ด๋ก์ ์ ์ ์ด ๊ณ์ ์ฆ๊ฐํจ)
- fresh์ ๊ฑฐ์ ์ ์ฌํ๊ฒ ์ฝ -0.35% ์์ค์์ ์์ ์ ์ผ๋ก ์๋ ดํ๋ฉฐ 7์ผ์ด ์ง๋๋ ์ฑ๋ฅ ์ ํ๊ฐ ๊ฑฐ์ ์์
- Fresh Embedding NE Gain: DV365 ์๋ฒ ๋ฉ์ ๋งค์ผ ์
๋ฐ์ดํธํ๋ ๊ฒฝ์ฐ
![[similarity-between-two-version.png|450]]
- ์๊ฐ์ ๋ณํ์ ๋ฐ๋ผ์๋ ์๋ฒ ๋ฉ์ด ์์ ์ ์ผ๋ก ์ ์ง๋จ์ ๋ณด์ฌ์ค
- 2๊ฐ์ 7์ผ ๊ฐ๊ฒฉ์ ์๋ก ๋ค๋ฅธ ์๋ฒ ๋ฉ ๋ฒ์ ์ ์ฝ์ฌ์ธ ์ ์ฌ๋ -> ๋์๊ฐ(0.95 ๊ทผ์ฒ)์ ๋งค์ฐ ์ง์ค๋์ด์์