๐Ÿ ๋จธ์‹ ๋Ÿฌ๋‹ | ๋”ฅ๋Ÿฌ๋‹/์ถ”์ฒœ์‹œ์Šคํ…œ

[K-Data x ๋Ÿฌ๋‹์Šคํ‘ผ์ฆˆ] 3-3. Matrix Factorization๊ณผ ์ตœ์ ํ™” ๊ธฐ๋ฒ•

xod22 2022. 1. 24. 10:11
728x90

์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” Matrix Factorizaton๊ณผ ์ตœ์ ํ™” ๊ธฐ๋ฒ•์„ ์†Œ๊ฐœํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!_!


๋จผ์ € ๋‹ค์‹œํ•œ๋ฒˆ Matrix Factorization ๊ธฐ๋ฒ•์— ๋Œ€ํ•ด ์ •์˜ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค~_~

 

Matrix Factorization์ด๋ž€?

R๊ณผ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•˜๊ฒŒ R^์„ ์ถ”๋ก ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ

์ฆ‰ ๋ชฉ์ ํ•จ์ˆ˜๋Š” explicit feedback(1~5์  ํ‰์ )์—์„œ true rating๊ณผ ์šฐ๋ฆฌ๊ฐ€ ์˜ˆ์ธกํ•œ predicted rating์˜ ์ฐจ๋ฅผ Minimizeํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


Objective Fuction (๋ชฉ์ ํ•จ์ˆ˜)

1) ํ•™์Šต๋ฐ์ดํ„ฐ์— ์žˆ๋Š” ์œ ์ € u์˜ ์•„์ดํ…œ i์— ๋Œ€ํ•œ ์‹ค์ œ rating

2) ์œ ์ € u์˜ latent vector

3) ์•„์ดํ…œ i์˜ latent vector

->2),3)์€ ์ตœ์ ํ™” ๋ฌธ์ œ๋ฅผ ํ†ตํ•ด ์—…๋ฐ์ดํŠธ ๋˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ

4) ๋žŒ๋‹ค term์€ L2Regularization(์ •๊ทœํ™”)๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํ•™์Šต๋ฐ์ดํ„ฐ์— Overfitting(๊ณผ์ ํ•ฉ)๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด weight ๊ฐ’์ด ๋„ˆ๋ฌด ์ปค์ง€์ง€ ์•Š๊ฒŒ ์กฐ์ ˆํ•˜๋Š”(?)๊ฒƒ์ด๋‹ค.

 

* ์ •๊ทœํ™”์˜ ์ข…๋ฅ˜์—๋Š” L1(๋ผ์˜), L2(๋ฆฟ์ง€) ์ •๊ทœํ™”๊ฐ€ ์žˆ๋‹ค!

๋‹จ L1๊ทœ์ œ๋Š” weight๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  MF์—์„œ๋Š” L2๋งŒ ์‚ฌ์šฉํ•œ๋‹ค


MF์˜ ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜

 

  • SGD (Stochastic Gradient Descent in MF)

๋ชจ๋“  ์ตœ์ ํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ ๋””ํดํŠธ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

์—๋Ÿฌ๋ฅผ ์ค„์—ฌ๋‚˜๊ฐ€๋Š” ์ชฝ์˜ Gradient๋ฅผ ๊ตฌํ•ด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ Gradient(๊ธฐ์šธ๊ธฐ)์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธ ํ•˜๋Š” ๋ฐฉ์‹

Gradient์˜ ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ p,q๋ฅผ ์—…๋ฐ์ดํŠธ

* SGD์ด๋ฆ„์— Stochastic์ด ๋ถ™์€ ์ด์œ ๋Š” ๋ฐ์ดํ„ฐ ์ „์ฒด์— ๋Œ€ํ•ด Gradient๋ฅผ ๊ตฌํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ํ•˜๋‚˜ํ•˜๋‚˜ ํฌ์ธํŠธ์— ๋Œ€ํ•ด Gradient๋ฅผ ๊ตฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— Stochastic์ด ๋ถ™์Œ!

 

  • ALS (Alternative Least Square)

-> implicit feedback๋ฐ์ดํ„ฐ์ผ ๊ฒฝ์šฐ ์‚ฌ์šฉ

 

- ์œ ์ €์™€ ์•„์ดํ…œ ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๋ฒˆ๊ฐˆ์•„๊ฐ€๋ฉด์„œ ์—…๋ฐ์ดํŠธ ํ•จ!
์˜ˆ) q๋ฅผ ๊ณ ์ •->p๋ฅผ ๋ณ‘๋ ฌ์—ฐ์‚ฐ / p๋ฅผ ๊ณ ์ •->q๋ฅผ ๋ณ‘๋ ฌ์—ฐ์‚ฐ

 

- Sparseํ•œ ๋ฐ์ดํ„ฐ(๋น„์–ด์žˆ๋Š” ๋ฐ์ดํ„ฐ)์— ๋Œ€ํ•ด SGD๋ณด๋‹ค Robust(ํฌ๊ฒŒ ์˜ํ–ฅx)ํ•œ ๋ชจ์Šต

 

- SGD์™€ ๋‹ค๋ฅด๊ฒŒ ๋ณ‘๋ ฌ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜์—ฌ Spark์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ ์‹œ์Šคํ…œ์—์„œ ๋Œ€์šฉ๋Ÿ‰ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋น ๋ฅธ ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋‹ค

 

SGD->์—ฐ์‚ฐํ•  ๋•Œ p๋ฅผ ์—…๋ฐ์ดํŠธ ํ•  ๋•Œ p,q์‚ฌ์šฉ / ๋ฐ์ดํ„ฐ๊ฐ€ 100๊ฐœ ์žˆ๋‹ค๋ฉด ์ˆœ์ฐจ์ ์œผ๋กœ 100๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผํ•จ

 

ALS->q๋ฅผ ๊ณ ์ •์‹œํ‚จ ์ฑ„๋กœ ์ „์ฒด ๋ฐ์ดํ„ฐ์…‹์— ๋Œ€ํ•ด์„œ ํ†ต์งธ๋กœ p๋กœ ์—…๋ฐ์ดํŠธ

 


๋…ผ๋ฌธ์—์„œ ์†Œ๊ฐœ๋œ ๋‹ค์–‘ํ•œ MF ํ…Œํฌ๋‹‰

MF ๊ณต๋ถ€ํ•  ๋•Œ ๊ผญ ์ฝ์–ด๋ณด๋ฉด ์ข‹์Œ

  • Adding Biases

- CF์—์„œ deviation ์•„์ด๋””์–ด๋ฅผ ์ ์šฉํ•˜์—ฌ biases ์ถ”๊ฐ€๋ฅผ ํ†ตํ•ด ์˜ˆ์ธก ์„ฑ๋Šฅ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•

- ์–ด๋–ค ์œ ์ €๋Š” ๋ชจ๋“  ์˜ํ™”์— ๋Œ€ํ•ด์„œ ํ‰์ ์„ ์งœ๊ฒŒ ์ค„ ์ˆ˜๋„ ์žˆ์Œ

Gradient ๋ฐ˜๋Œ€๋ฐฉํ–ฅ์œผ๋กœ ์—…๋ฐ์ดํŠธ

  • Temporal Dynamics

- ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ™”ํ•˜๋Š” ์œ ์ €, ์•„์ดํ…œ์˜ ํŠน์„ฑ์„ ๋ฐ˜์˜ํ•˜๊ณ  ์‹ถ์Œ

- ๋”ฐ๋ผ์„œ ๋ช‡๋‹ฌ..์ด๋ ‡๊ฒŒ ๊ณ„์† ํ•œ ๋ชจ๋ธ์„ ์“ฐ๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€

 

<daily ๋ชจ๋ธ>

daily ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•จ์œผ๋กœ cold start ๋ฌธ์ œ์™€ time effect(์ตœ์‹ ์„ฑ) ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ

์™œ๋ƒํ•˜๋ฉด ์ตœ์‹ ์„ฑ์„ ๋ฐ˜์˜ํ•˜๋Š”๊ฒŒ ๋ฌด์กฐ๊ฑด ์„ฑ๋Šฅ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ..!

 

๊ธฐ์กด๋ชจ๋ธ์— ๋น„ํ•ด ํ…Œํฌ๋‹‰์„ ์ถ”๊ฐ€ํ–ˆ์„ ๋•Œ RMSE๊ฐ’์˜ ๋ณ€ํ™”


๋

ูฉ(หŠ  แ—œห‹*)ูˆ

728x90