์ด ๋ ผ๋ฌธ์ ์ฒ์ ์๊ฒ ๋ ๊ฒ์ ์ ๋ฒ๋ฌ์ Google Brain์์ Tensorflow Recommenders ๋ผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ณต๊ฐํ๋ฉด์ ์ ๋๋ค. Youtube๋ผ๋ ๊ฑฐ๋ํ ์ถ์ฒ์์คํ ์ ์ด์ํ๊ณ ์๋ ๊ตฌ๊ธ์ด ์ถ์ฒ ์์คํ ๊ด๋ จ ์ฝ๋๋ฅผ ๊ณต๊ฐํ๋ค๊ณ ํด์ ์ง์คํด์ ๋ณด๊ฒ ๋์์ต๋๋ค. ์ ์ฒด์ ์ธ ๋ด์ฉ์ Tensorflow Blog์ ๋ ์์ธํ ๋์์์ผ๋ ์ฝ์ด๋ณด์๊ธฐ ๋ฐ๋๋๋ค.
TFRS(TensorFlow Recommeners)์ ๋ชฉํ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ถ์ฒ ํ๋ณด๊ตฐ์ ๋น ๋ฅด๊ณ ์ ์ฐํ๊ฒ ๋น๋
- Item, User, Context ์ ๋ณด๋ฅผ ์์ ๋กญ๊ฒ ์ฌ์ฉํ๋ ๊ตฌ์กฐ
- ๋ค์ํ objective๋ฅผ ๋์์ ํ์ตํ๋ multi-task ๊ตฌ์กฐ
- ํ์ต๋ ๋ชจ๋ธ์ TF Serving์ผ๋ก ํจ์จ์ ์ผ๋ก ์๋น
์ฌ์ค ์ฝ๋ ์์ฒด๋ ํฌ๊ฒ ๋ค์ํ ๋ด์ฉ๋ค์ด ์์ง๋ ์์์ง๋ง, ์ ์ผ ์ธ์ ๊น์๋ ๊ฒ์ ์ฝ๋์์ ๊ธฐ๋ณธ ๋ชจ๋ธ๋ก ์๊ฐํ Two Tower Model์ด์์ต๋๋ค. ๋ฐ๋ก User์ Item์ ์์ ๋ ๋ฆฝ์ ์ผ๋ก ํ์ต์์ผ ๋ง์ง๋ง ๋จ์์ dot product๋ก๋ง click / unclick์ ์์ธกํ๋ ๊ฒ์ธ๋ฐ, ์๊ฐํ๋ฉด ์๊ฐํ ์๋ก ์ข์ ๊ตฌ์กฐ๋๋ผ๊ตฌ์. ๋น๋ก ํ์ตํ๋ ๋จ์์ user tower์ item tower๊ฐ interact ๋ชปํ๊ธฐ ๋๋ฌธ์ ์์ฒญ๋ ์ฑ๋ฅ์ ๋ผ ์ง๋ ๋ฏธ์ง์์์ง๋ง, ๊ตฌ์กฐ ์์ฒด๊ฐ input feature์ ์ ์ฝ์ด ์์ด์ ๊ฐ๋ฅํ feature๋ฅผ ์์ ๋กญ๊ฒ ๋ฃ์ ์ ์์๊ณ , inferenceํ ๋๋ user๋ณ embedding, item๋ณ embedding์ผ๋ก ๊ฐ์ง๊ณ ์๋ค๊ฐ dot product๋ก๋ง similarity๋ฅผ ๊ณ์ฐํด์ servingํ ์ ์๊ธฐ ๋๋ฌธ์ ANN(Approximate Nearest Neighbors) ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํธํ์ฑ๋ ์ข์ ๋ณด์์ต๋๋ค.
๋ํ๋์ ์ฅ์ ์ ๋ฉํ ์ ๋ณด๋ฅผ ๋ฃ์ ์ ์๋ค๋ผ๋ ๊ฒ์ธ๋ฐ, ์ถ์ฒ ์์คํ ์์ ์์ฃผ ๋ง๋๋ ๋ฌธ์ ๊ฐ cold start problem์ ๋๋ค. Item์ด๋ User๋ ์ฒ์์ ์ฌ์ฉ ๊ธฐ๋ก์ด ์์ ๊ฒฝ์ฐ ๋ฉํ ์ ๋ณด๋ฅผ ํ์ฉํ ์๋ฐ์ ์๋๋ฐ, ์ด๋ฅผ ๋ฒ์ฉ์ ์ผ๋ก ์ ๋ชจ๋ธ๋งํ๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค. ํ์ง๋ง ์์ two tower ๋ชจ๋ธ์ ์ฌ์ฉ ๊ธฐ๋ก์ด ์์ด๋ User๋ Item์ ๋ฉํ ์ ๋ณด๋ฅผ ๋ฃ๊ณ ๋๋จธ์ง๋ ํ๊ท ๊ฐ ๊ฐ์ ๊ฑธ ๋ฃ์ผ๋ฉด ๋ฐ๋ก modeling์ด ๋๊ธฐ ๋๋ฌธ์, cold start ๋ฌธ์ ๋ ์์์ ์ ํด๊ฒฐํ ์ ์์ ๊ฒ ๊ฐ์์ต๋๋ค. ์ด ๋ง์ dynamicํ๊ฒ ์์ดํ ํ์ด ๋ฐ๋๋ ๊ตฌ์กฐ์์ ์ ์ฐ์ผ ์ ์๋ค๋ ๋ง์ด๊ธฐ๋ ํ๊ตฌ์.
์ฌ๊ธฐ๊น์ง ์๊ฐ์ ํ๋ฉด์ Two Tower Model ๊ด๋ จ ๋ ผ๋ฌธ์ ๋ ์์ธํ ์ฝ๊ณ ์ ๋ฆฌํด ๋ณด์์ต๋๋ค. ์๋ณธ ๋ ผ๋ฌธ ์ ๋ชฉ์ “Sampling-Bias-Corrected Neural Modeling for Large Corpus Item Recommendations” ์ด๊ณ , Google Brain in Youtube์์ ๊ณต๊ฐํ์์ผ๋ฉฐ, ์ง๊ธ Youtube ์ถ์ฒ ์์คํ ์์ candidate generation์์ ์ฌ์ฉํ๊ณ ์๋ ๋ชจ๋ธ์ ๋๋ค.
1. Concept
์ ํ๋ธ์์๋ ํฌ๊ฒ 2๊ฐ์ง stage๋ก ๋๋์ด์ ์ถ์ฒ์ด ์ด๋ค์ง๊ณ ์์ต๋๋ค. ๋ฐ๋ก candidate generation๊ณผ ranking model์ธ๋ฐ์. ์ด๋ค ์ ์ ์๊ฒ ์ด๋ค ์์์ ์ถ์ฒํด์ค๋ค๊ณ ํ์ ๋ 1) candidate generation์ ํตํด ์ ์ฒด ์์ดํ ์ค์์ ์ถ์ฒ ํ๋ณด๊ตฐ์ผ๋ก ๋ฝ์ ๋งํ ๋ช ๋ฐฑ๊ฐ์ ์์ดํ ์ ์ถ๋ฆฌ๊ณ , ๊ทธ ๋ช ๋ฐฑ๊ฐ ์ค์์ ์ต์ข ์ถ์ฒ์ ๋๊ฐ ๋ช ๊ฐ๋ 2) ranking model์ด ๊ฒฐ์ ํฉ๋๋ค. ์ด ๋ candidate generation์ ์ค์ ์ํ๋ ์์ดํ ์ด ๋ฐ๋์ ์ถ์ฒ ํ๋ณด๊ตฐ์ ์์ด์ผ ํ๋ฏ๋ก recall@k ๊ฐ ์ค์ํ๊ณ , ranking model์ ์ค์ ์ํ๋ ์์ดํ ์ด ์ต์์์ ๋ญํฌ๋์ด์ผ ํ๋ฏ๋ก nDCG@k, HR@k ๋ฑ์ด ์ค์ํฉ๋๋ค.
๋ ์ค์ ์ถ์ฒ์์คํ ์ ๋ง๋ค์ด์ผ ํ๋ ์ ์ฅ์์ ์๊ฐํด ๋ณธ๋ค๋ฉด, candidate generation model์ ์ ์ฒด ์์ดํ ์ค์์ ๋ช๋ฐฑ๊ฐ๋ฅผ ์ถ๋ ค์ผ ํ๊ธฐ ๋๋ฌธ์ ์ต๊ณ ์ ์ฑ๋ฅ๋ณด๋ค๋ ์ ๋นํ ์ฑ๋ฅ๊ณผ ๋น ๋ฅธ inference ์๋๊ฐ ๋ ์ค์ํฉ๋๋ค. Inference๋ฅผ ๋น ๋ฅด๊ฒ ํ์ฌ ์๋ฐฑ~์์ฒ๋ง๊ฐ์ ์์ดํ ์ค ๋ช๋ฐฑ๊ฐ๋ฅผ ์ถ๋ฆฌ๋ ๋ฐฉ๋ฒ์ item์ ์ข์ embedding vector๋ฅผ ๋ฝ์์ user๊ฐ ์ต๊ทผ์ ์๋นํ item๊ณผ ์ ์ฌํ ์์ดํ ์ ํ๋ณด๊ตฐ์ผ๋ก ๋ฝ๋ ๊ฒ์ ๋๋ค.
์ด๋ค item์ embedding์ ๋ฝ๋ ๋ฐฉ์์ ๊ฐ๋จํ๊ฒ๋ word2vec๊ณผ bag of words๋ฅผ ๊ฒฐํฉํ์ฌ item์ text embedding์ ๋ฝ์ ์๋ ์๊ณ , ์์์ด๋ ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ pretrained image model์ ํ์ฉํด low dimension์ feature๋ฅผ ๋ฝ์ ์๋ ์์ต๋๋ค. ์ด ๋ ผ๋ฌธ์์ ์ ์๋ two tower model์ meta์ ๋ณด์ ๋ค์ํ feature๋ฅผ ๋ฃ์ด์ ์ข์ user / item embedding์ ๋ง๋ ๋ค์์ dot distance ๊ธฐ๋ฐ์ผ๋ก nearest neighbor๋ฅผ ์ฐพ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
2. Modeling Overview
๊ทธ๋ฌ๋ฉด ์ด ๋ ผ๋ฌธ์์ ํต์ฌ์ด ๋๋ two tower ๊ตฌ์กฐ์, ์ด ๋ ผ๋ฌธ์ ๋ฐ์ดํฐ ๋จ์์๋ positive pair๋ง ๊ฐ์ง๊ณ ์๋ค๊ฐ batch ๋ด์์ negative sample์ ๋ฝ์๋๋ฐ ์ด๋ฅผ ์ด๋ป๊ฒ ํ๋์ง ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
Two-tower Model
์ฌ์ค two tower model์ dual encoder๋ผ๋ ๋ง๋ก ์์ฐ์ด์ฒ๋ฆฌ ๋ถ์ผ์์ ๋จผ์ ์ ํ๋์์ต๋๋ค. ์ด๋ค ๋ ๋ฌธ์ฅ์ ๊ด๊ณ๋ฅผ ์์ธกํ๊ณ ์ ํ๋ ๊ณผ์ ์์, ๋ฌธ์ฅ ํ๋๋ง๋ค encoder๋ฅผ ํ์ฐ๊ณ ๊ฑฐ๊ธฐ์ ๋์จ sentence representation์ผ๋ก ๋ฌธ์ฅ์ ๊ด๊ณ๋ฅผ ๋ถ๋ฅํฉ๋๋ค. ์ด ๋ ์ฌ์ฉํ๋ encoder๋ก๋ RNN, Transformer๋ถํฐ ์ต๊ทผ์๋ pretrained BERT ๊ตฌ์กฐ๊น์ง๋ ์ฌ์ฉ๋์์ต๋๋ค. ๋ถ๋ฅํ๊ณ ์ํ๋ label์ด ๋ฌดํํ ๋ง์ ๋, ์ด๋ฅผ multi label classification์ผ๋ก ์ ๊ทผํ์ง ์๊ณ query์ label๋ฅผ input์ผ๋ก ํด์ ์ ํฉํ์ง ์๋์ง๋ฅผ ํ๋จํ๋ binary classification์ผ๋ก ์ ๊ทผํ๋ค๋ ์ ์ด ์ด ๊ตฌ์กฐ์ ํต์ฌ์ ๋๋ค.
Batch Negative Sampling
Two-tower ๋ชจ๋ธ์ ํ์ตํ๋ค๊ณ ํ์ ๋ ํ์ํ ๋ฐ์ดํฐ๋ ์ด๋ค user๊ฐ item์ ํด๋ฆญํ๋ค๋ผ๋ ๋ฐ์ดํฐ์ ์ด๋ค user๊ฐ item์ ๋ดค์ง๋ง clickํ์ง ์์๋ค๋ผ๋ ๋ฐ์ดํฐ์ ๋๋ค. ํ์ง๋ง ์ด clickํ์ง ์์๋ค๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ์์งํ ๋ ๋ฐ์ํ ์ ์๋ ๋ช๊ฐ์ง ์ด๋ ค์์ด ์๋๋ฐ, ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ ์ด์ ์๋น์ค ํ๊ฒฝ์ ๋ฐ๋ผ ๋ ธ์ถ๋์๋ค๋ผ๋ ๋ฐ์ดํฐ๋ฅผ ๊ตฌํ ์ ์์ ์๋ ์์ต๋๋ค.
- ๋ฐ์ดํฐ ํฌ๊ธฐ: ๋ณดํต click์ ๋นํด impression(๋ ธ์ถ)์ ์๋ ์๋์ ์ผ๋ก ๋ง์ต๋๋ค. ์ด๋ฅผ ์ ์ฅํ๊ธฐ ์์ํ๋ค๋ฉด ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ์ง๋์น๊ฒ ๋์ด๋ฉ๋๋ค.
- Serving bias: unclick์ ์ ์ ์ผ๋ก ๋น์์ ์ถ์ฒ ๋ก์ง์ด ๋ฌด์์ด์๋๋์ ๋ฐ๋ผ์ ๋ฐ์ดํฐ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํด๋น ์ถ์ฒ ๋ก์ง์ ๋ฐ๋ผ negative์ data distribution์ด ๋งค์ฐ ๋ฌ๋ผ์ง๋๋ค.
- Hard negative: ๋ ธ์ถ์ด๋ผ๋ ๊ฒ๋ ๊ฒฐ๊ตญ ๊ธฐ์กด ๋ก์ง์์ topk๋ก ์ถ์ฒ์ด ๋๊ฐ ๊ฒฐ๊ณผ ์ค์ ์คํจํ ๊ฒ๋ค์ธ๋ฐ, ๊ธฐ์กด ๋ก์ง์์ topk๋ก ๋ ธ์ถ๋์๋ค๋ผ๋ ๊ฒ ์์ฒด๊ฐ ์ด๋ฏธ ์ด๋ ค์ด negative์ ๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ click๋ฐ์ดํฐ ๋ง์ผ๋ก ํ์ต์ ํ ๋ batch ๋ด์์ ์์๋ก negative๋ฅผ ๋ฝ๋ ๊ฒ์ด batch negative sampling์ ๋๋ค. Batch ๋จ์๋ก positive pair๋ค์ด ๋ค์ด์ฌ ๋, ์์๋ฅผ ์ด๊ธ๋๊ฒ ํด์ ํด๋น user์๊ฒ ๋ค๋ฅธ item์ ๋งตํ์ํจ ๋ค์์ ์ด๋ฅผ negative๋ผ๊ณ ์๊ฐํ๋ ๊ฒ์ ๋๋ค. Two Tower ๋ชจ๋ธ์์๋ ์ค๋ณต๋ ๊ณ์ฐ์ ํผํ๊ธฐ ์ํด ๋ง์ง๋ง dot product ์ง์ ์์ batch negative sampling์ ์งํํ ์ ์์ต๋๋ค.
์ ๊ทธ๋ฆผ์์ query embedding๊ณผ item embedding์ matmul ๊ณ์ฐ์ ํ๋ฉด label matrix๊ฐ ๋๊ณ ์ด๋ $(i,i)$ ์ด๋ง positive์ด๊ณ ๋๋จธ์ง๋ ๋ค negative๊ฐ ๋ฉ๋๋ค. ๋ชจ๋ ๊ฑธ ๋ค negative๋ก ์ฐ์ง๋ ์๊ณ negative sampling์๋ ์ฌ๋ฌ๊ฐ์ง ๊ธฐ๋ณธ ๋ฐฉ์์ด ์กด์ฌํฉ๋๋ค. ๋ํ์ ์ธ ๊ฒ๋ค์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- random negative: $B$-1๊ฐ ์ค์์ k๊ฐ๋ฅผ ์์๋ก sampling ํฉ๋๋ค.
- hard negative: $B$-1๊ฐ ์ค์์ ๋ชจ๋ธ์ด ํ๋จํ๊ธฐ์ ๊ฐ์ฅ ์ด๋ ค์ํ๋ pair (dot product ๊ฐ์ด ๊ฐ์ฅ ๋์ ๊ฒ๋ค)๋ง samplingํฉ๋๋ค.
- semi-hard negative: $B$-1๊ฐ ์ค์์ ๋ชจ๋ธ์ด ํ๋จํ๊ธฐ์ ๋ค์ ์ด๋ ค์ํ๋ pair (dot product ๊ฐ์ด ํน์ range์ ์๋ ๊ฒ๋ค) ์ค์์ k๊ฐ๋ฅผ samplingํฉ๋๋ค.
์ด๋ฌํ negative sampling์ two-tower model ๋ง์ง๋ง ๋จ์์ ์งํํ๊ฒ ๋๋ค๋ฉด ๋ฐ๋์ ์ฑ๋ฅ์ด ์ข๋ค๋ผ๋ ๋ณด์ฅ์ ์์ง๋ง, ์ ์ด๋ ๋ฐ์ดํฐ์ ํฌ๊ธฐ๊ฐ ๋ช์ญ๋ถ์ 1๋ก ์ค๊ณ , ๊ธฐ์กด๊ณผ ๊ณ์ฐํ๋ ๊ฒ์ ํฌ๊ฒ ๋ค๋ฅด์ง ์๊ธฐ ๋๋ฌธ์ ํ์ต ์๋๋ ๋ช ์ญ๋ฐฐ ์ฆ๊ฐํ๋ค๊ณ ๋ณผ ์ ์์ต๋๋ค.
ํ์ง๋ง ๋ฐ๋์ ์ข์ ์ ๋ง ์๋ ๊ฒ์ ์๋๋ฐ์, ์์ ์ค๋ช ๋๋ ธ๋ค์ํผ batch negative sampling์ ์ถ์ฒ ๋ง๊ณ ๋ ๋ค๋ฅธ ๋ถ์ผ์์๋ ๋ง์ด ์ฌ์ฉ๋์ง๋ง ์ถ์ฒ์์ batch negative sampling์ ํ ๋ ๋ฐ์ํ๋ ๋ฌธ์ ์ ์ด ์์ต๋๋ค. ๋ฐ๋ก popular item์ธ๋ฐ์. ์ถ์ฒ์์๋ item์ ๋ฑ์ฅ ํ๋ฅ ์ด ํน์ ์ธ๊ธฐ์๋ ๊ฒ๋ค์ ๋งค์ฐ ์น์ฐ์ณ ์์ต๋๋ค. ๊ทธ๋งํผ click์ด ๋ง์ด ์ผ์ด๋๋ค๋ ๊ฒ์ด๋๊น positive sample์ ๋ฐ๋ผ๋ณผ ๋๋ ์๊ด์ด ์์ง๋ง, ๋ฌธ์ ๋ negative samplingํ ๋ negative ํ๋ณด๊ตฐ๋ค์๋ popular item์ด ๋๋ฌด ๋ง๋ค๋ผ๋ ๊ฑฐ์ฃ . ์ด๋ฅผ item frequency bias๋ผ๊ณ ๋งํฉ๋๋ค. ์ด ๋ ผ๋ฌธ์์๋ ์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ matmulํ logit์๋ค๊ฐ ๊ฐ ์์ดํ ๋ณ sampling probability๋ฅผ estimateํด์ ๋นผ์ค๋๋ค. ๊ทธ๋ ๊ฒ ๋๋ฉด popular item์ ๋ํ loss๋ ์์์ ์ค์ด๋ค๊ฒ ๋ฉ๋๋ค.
์ด ๊ธ์ ์๋ณธ์ ์ผ๋ถ๋ง ํฌํจํ๊ณ ์์ต๋๋ค. ์ ์ฒด ๋ด์ฉ์ ์ด์ ๋ธ๋ก๊ทธ์์ ํ์ธํ์ค ์ ์์ต๋๋ค.