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

[K-Data x ๋Ÿฌ๋‹์Šคํ‘ผ์ฆˆ] 4-3. Multi-Armed Bandit (MAB)์˜ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•

xod22 2022. 2. 18. 00:31
728x90

2022.02.17 - [๋จธ์‹ ๋Ÿฌ๋‹ | ๋”ฅ๋Ÿฌ๋‹/์ถ”์ฒœ์‹œ์Šคํ…œ] - [K-Data x ๋Ÿฌ๋‹์Šคํ‘ผ์ฆˆ] 4-3. Multi-Armed Bandit (MAB)

 

[K-Data x ๋Ÿฌ๋‹์Šคํ‘ผ์ฆˆ] 4-3. Multi-Armed Bandit (MAB)

์‹ค์ œ ์ถ”์ฒœ์— ๋งŽ์ด ํ™œ์šฉ๋˜๊ณ  ์žˆ๋Š” ๋ฐฉ๋ฒ•์ธ Mutli-Armed Bandit์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค! Multi-Armed Bandit(MAB)? ๊ฐ•ํ™”ํ•™์Šต์€ ์•„๋‹ˆ์ง€๋งŒ ๊ฐ•ํ™”ํ•™์Šค๋ธŒ์ด ํ•ต์‹ฌ ์•„์ด๋””์–ด์ธ Exploitation(์ฐฉ์ทจ) / Exploration(ํƒํ—˜)..

xod22.tistory.com

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ MAB์˜ ๊ธฐ๋ณธ์ ์ธ ์›๋ฆฌ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค!

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” MAB์˜ 4๊ฐ€์ง€ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค!!

 

1. Simple Average Method (greedy algorithm) --๊ธฐ๋ณธ์ ์ธ ๋ฐฉ๋ฒ•

2. epsilon-greedy algorithm --๋ฒ ์ด์Šค๋ผ์ธ์œผ๋กœ ๋งŽ์ด ์‚ฌ์šฉ

3. UCB (Upper Confidence Bound)

4. Thompson Sampling


โ‘  Simple Average Method (greedy algorithm)

 

: ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ• : ๋‹ค ๋‹น๊ฒจ๋ณด๊ณ  ํ‰๊ท  ๊ฐ’์„ ์‚ฌ์šฉ

ํ‘œ๋ณธ ํ‰๊ท ์„ ์‚ฌ์šฉํ•จ!

 

* ๋ฌธ์ œ : ์ฒ˜์Œ์— ์„ ํƒ๋˜๋Š” action๊ณผ reward์— policy๊ฐ€ ํฌ๊ฒŒ ์˜ํ–ฅ์„ ๋ฐ›์Œ! exploration(ํƒํ—˜)์ด ๋ถ€์กฑํ•˜๋‹ค..


โ‘ก epsilon-greedy algorithm

 

exploration(ํƒํ—˜)์ด ๋ถ€์กฑํ•œ greedy algorithm์˜ policy๋ฅผ ์ˆ˜์ •ํ•œ ์ „๋žต

 

- ์ผ์ •ํ•œ ํ™•๋ฅ ์— ์˜ํ•ด ๋žœ๋ค์œผ๋กœ ์Šฌ๋กฏ๋จธ์‹ ์„ ์„ ํƒํ•˜๋„๋ก ํ•จ

: ๋™์ „์„ ๋˜์ ธ ์•ž๋ฉด์ด ๋‚˜์˜ค๋ฉด greedy(์ œ์ผ ๋†’์€๊ฑฐ), ๋’ท๋ฉด์ด ๋‚˜์˜ค๋ฉด ๋žœ๋ค ์„ ํƒ(์•„๋ฌด๊ฑฐ๋‚˜ ์„ ํƒ). epsilon=0.1/0.2

- epsion-greedy๋Š” ์‹ฌํ”Œํ•˜๋ฉด์„œ๋„ ๊ฐ•๋ ฅํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ -> ์ด๊ฑฐ๋ณด๋‹ค ๋ชปํ•˜๋ฉด ๊ทธ MAB ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์ž˜๋ชป์ง  ๊ฒƒ

- ๋ณดํ†ต ์‹ค๋ฌด์—์„œ๋„ MAB๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ epsion-greedy์™€ ๋งŽ์ด ๋น„๊ต๋ฅผ ํ•จ!


โ‘ข UCB (Upper Confidence Bound)

 

epsilon-greedy algorithm๋ณด๋‹ค ๋” ๋ฐœ์ „ํ•œ ๋ฐฉ๋ฒ•์ธ UCB


โ‘ฃ Thompson Sampling

 

: ์ฃผ์–ด์ง„ k๊ฐœ์˜ action์— ํ•ด๋‹นํ•˜๋Š” ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ

-> ์•ž์˜ ์„ธ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์—์„œ ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๊ฐ€์ •ํ•˜์ง€ ์•Š์Œ. ๋‹จ ์ด action์„ ๊ณจ๋ž์„ ๋•Œ reward๋ฅผ ์ฃผ๋ƒ ์ฃผ์ง€์•Š๋ƒ..! ์ด์ •๋„(?)

 

action a์— ํ•ด๋‹นํ•˜๋Š” reward ์ถ”์ •์น˜๊ฐ€ ํ™•๋ฅ ๋ถ„ํฌ๋ฅผ ๋”ฐ๋ฅธ๋‹ค๊ณ  ๊ฐ€์ •! => ๋ฒ ํƒ€๋ถ„ํฌ

 

<๋ฒ ํƒ€๋ถ„ํฌ>

:๋‘๊ฐœ์˜ ์–‘์˜ ๋ณ€์ˆ˜๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํ™•๋ฅ ๋ถ„ํฌ์ด๋ฉฐ 0๊ณผ 1์‚ฌ์ด์˜ ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค

๋ถ„ํฌ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ ์•ŒํŒŒ, ๋ฒ ํƒ€

 

* Thompson Sampling ์˜ˆ์‹œ

  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ๋Š” ๊ด‘๊ณ  ๋ฐฐ๋„ˆ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
  • ๋ฒ ํƒ€ ๋ถ„ํฌ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” 2๊ฐ€์ง€ 

=> ๋ฐฐ๋„ˆ๋ฅผ ๋ณด๊ณ  ํด๋ฆญํ•œ ํšŸ์ˆ˜(α)

=> ๋ฐฐ๋„ˆ๋ฅผ ๋ณด๊ณ  ํด๋ฆญํ•˜์ง€ ์•Š์€ ํšŸ์ˆ˜(β)

 

  • ๋ฐฐ๋„ˆ๋ฅผ ํด๋ฆญํ•  ํ™•๋ฅ (Reward๋ฅผ ์–ป์„ ํ™•๋ฅ ) :

0์ด ๋˜๋ฒ„๋ฆด ์ˆ˜๋„ ์žˆ์œผ๋‹ˆ๊นŒ smoothing

 

Step1) ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋Š” ์ดˆ๊ธฐ์ƒํƒœ

* ์ถ”์ฒœํ•  ์•„์ดํ…œ์ด 3๊ฐœ๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •

banner1 ~Beta(1,1)

banner2 ~Beta(1,1)

banner3 ~Beta(1,1)

-> ์ตœ์ดˆ์˜ ์‚ฌ์ „ํ™•๋ฅ  ๋ถ„ํฌ

Step2) ๋žœ๋คํ•˜๊ฒŒ 100ํšŒ ์ •๋„ ๋…ธ์ถœ

๋…ธ์ถœ ํ›„ ํด๋ฆญ -&gt; ์•ž์— &alpha;+1 / ๋…ธ์ถœ ํ›„ ํด๋ฆญx -&gt; ๋’ค์— &beta;+1

Step3) ๋ฒ ํƒ€ ๋ถ„ํฌ(ํ™•๋ฅ ๋ถ„ํฌ)์—์„œ ์ƒ˜ํ”Œ๋งํ•˜์—ฌ ๋…ธ์ถœ

banner3๋ฅผ ๋…ธ์ถœํ–ˆ์„ ๋•Œ ํด๋ฆญ์ด ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์•˜๋‹ค๋ฉด ๊ทธ์— ๋งž์ถฐ ๋ฒ ํƒ€ ๋ถ„ํฌ ์—…๋ฐ์ดํŠธ!

banner1 ~ Beta(3,2)

banner2 ~ Beta(2,3)

banner3 ~ Beta(2,3) -> ๋…ธ์ถœ ํ›„ ํด๋ฆญx

=> ์‹ค์‹œ๊ฐ„ ์—…๋ฐ์ดํŠธ(๊ณ„์‚ฐ๋„ ๊ฐ„๋‹จ!)

 

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ ์ƒ˜ํ”Œ๋ง!

=> ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์ด ์ƒ˜ํ”Œ๋ง๋œ banner1 ๋…ธ์ถœ

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ

banner1 ~ Beta(3,3) -> ๋…ธ์ถœ ํ›„ ํด๋ฆญx

banner2 ~ Beta(2,3)

banner3 ~ Beta(3,2)

 

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ ์ƒ˜ํ”Œ๋ง

=> ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์ด ์ƒ˜ํ”Œ๋ง๋œ banner1 ๋…ธ์ถœ

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ

banner1 ~ Beta(4,3) -> ๋…ธ์ถœ ํ›„ ํด๋ฆญ

banner2 ~ Beta(2,3)

banner3 ~ Beta(3,2)

 

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ ์ƒ˜ํ”Œ๋ง!

=> ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์ด ์ƒ˜ํ”Œ๋ง๋œ banner3 ๋…ธ์ถœ

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ

banner1 ~ Beta(4,3) 

banner2 ~ Beta(2,3)

banner3 ~ Beta(4,2)-> ๋…ธ์ถœ ํ›„ ํด๋ฆญ

 

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ ์ƒ˜ํ”Œ๋ง!

=> ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์ด ์ƒ˜ํ”Œ๋ง๋œ banner3 ๋…ธ์ถœ

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ

banner1 ~ Beta(4,3) 

banner2 ~ Beta(2,3)

banner3 ~ Beta(5,2)-> ๋…ธ์ถœ ํ›„ ํด๋ฆญ

 

๋ฒ ํƒ€๋ถ„ํฌ ์—…๋ฐ์ดํŠธ ํ›„ ๋‹ค์‹œ ์ƒ˜ํ”Œ๋ง!

์˜ค๋ฅธ์ชฝ์œผ๋กœ ์น˜์šฐ์ณ์ ธ์žˆ๋Š”๊ฒŒ ๋” ํ™•๋ฅ ์ด ๋†’์Œ / ๊ธฐ๋Œ€๊ฐ’์ด ๋‚ฎ์€ ์• ๋Š” ๋œ exploration(ํƒํ—˜), but ์ƒ˜ํ”Œ๋ง์ด๋ฏ€๋กœ ํ™•๋ฅ ์ด ์กด์žฌํ•˜๊ธด ํ•˜๋‹ˆ๊นŒ..!

=> ๊ฐ€์žฅ ๋†’์€ ํ™•๋ฅ ์ด ์ƒ˜ํ”Œ๋ง๋œ banner3 ๋…ธ์ถœ

 

Step4) ์ˆ˜๋งŽ์€ ๋…ธ์ถœ์„ ๊ฑฐ์นœ ํ›„ CTR์ด ๊ฐ€์žฅ ๋†’์€ ๋ฐฐ๋„ˆ๋ฅผ ์„ ํƒ(?)

banner1 ~ Beta(33,100)

banner2 ~ Beta(100, 223)

banner3 ~ Beta(435, 611)

๋ฒ ํƒ€๋ถ„ํฌ๊ฐ€ ๋พฐ์กฑํ•˜๊ฒŒ ์ˆ˜๋ ด

=> ์‹คํ—˜ ๊ฒฐ๊ณผ banner3์ด ๊ฐ€์žฅ reward(CTR)์ด ๋†’๋‹ค!


MAB๋ฅผ ์ถ”์ฒœ์— ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

 

๊ทธ๋ ‡๋‹ค๋ฉด MAB ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ถ”์ฒœ์— ์–ด๋–ป๊ฒŒ ํ™œ์šฉํ• ๊นŒ?

 

  • ์šฐ๋ฆฌ๊ฐ€ ์ถ”์ฒœํ•˜๋Š” ๊ฐœ๋ณ„ ์•„์ดํ…œ(=์Šฌ๋กฏ๋จธ์‹  ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐ)์€ ๊ฐœ๋ณ„ action์— ํ•ด๋‹นํ•จ
  • ์œ ์ €์—๊ฒŒ ์•„์ดํ…œ์„ ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ์‹์ด MAB์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ policy
  • ์•„์ดํ…œ์„ ์ถ”์ฒœํ–ˆ์„ ๋•Œ ์‚ฌ์šฉ์ž์˜ ํด๋ฆญ/๊ตฌ๋งค ์—ฌ๋ถ€๋ฅผ reward๋กœ ์ธก์ •

* ๋‹จ, ๊ธฐ๋ณธ์ ์ธ MAB ์•Œ๊ณ ๋ฆฌ์ฆ˜๋งŒ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๊ฐœ์ธํ™” ์ถ”์ฒœ์€ ์–ด๋ ค์›€

 

๊ฐœ์ธ ์œ ์ €์— ๋Œ€ํ•ด์„œ ๋ชจ๋“  ์•„์ดํ…œ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ..!

(๊ฐœ์ธ๋ณ„๋กœ ๊ตฌ์ถ•ํ•˜๊ธฐ์—๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ€์กฑ)

=> ํด๋Ÿฌ์Šคํ„ฐ๋ง์„ ํ†ตํ•ด ๋น„์Šทํ•œ ์œ ์ €๋ผ๋ฆฌ ๋ฏธ๋ฆฌ ๊ทธ๋ฃนํ•‘์„ ํ•œ๋’ค์—

ํด๋Ÿฌ์Šคํ„ฐ ๋ณ„๋กœ ์ธ๊ธฐ์žˆ๋Š” ์•„์ดํ…œ ํ›„๋ณด ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค!

 

์ด ์ดํ›„์— ํ•ด๋‹น ์œ ์ €์˜ ๊ทธ๋ฃน์—์„œ MAB๋ฅผ ํ†ตํ•œ ์ถ”์ฒœ์„ ์ง„ํ–‰!


๋!

728x90