[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๋ฅผ ์ป์ ํ๋ฅ ) :
Step1) ๋ฐ์ดํฐ๊ฐ ์๋ ์ด๊ธฐ์ํ
* ์ถ์ฒํ ์์ดํ ์ด 3๊ฐ๊ฐ ์๋ค๊ณ ๊ฐ์
banner1 ~Beta(1,1)
banner2 ~Beta(1,1)
banner3 ~Beta(1,1)
-> ์ต์ด์ ์ฌ์ ํ๋ฅ ๋ถํฌ
Step2) ๋๋คํ๊ฒ 100ํ ์ ๋ ๋ ธ์ถ
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)-> ๋ ธ์ถ ํ ํด๋ฆญ
๋ฒ ํ๋ถํฌ ์ ๋ฐ์ดํธ ํ ๋ค์ ์ํ๋ง!
=> ๊ฐ์ฅ ๋์ ํ๋ฅ ์ด ์ํ๋ง๋ 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๋ฅผ ํตํ ์ถ์ฒ์ ์งํ!
๋!
