Slide 1

Slide 1 text

ࡾ୐༔հ / Pepabo R&D Institute, GMO Pepabo, Inc. 2020.03.02 Fukuoka.go#15+ࣛࣇౡGophers Adaptiveͳ΢Οϯυ΢ΛٻΊͯ ʙ αʔϕΠͱ࣮૷ Goݴޠฤ ʙ

Slide 2

Slide 2 text

1SJODJQBMFOHJOFFS :VTVLF.*:",&!NPOPDISPNFHBOF 1FQBCP3%*OTUJUVUF (.01FQBCP *OD IUUQTCMPHNPOPDISPNFHBOFDPN

Slide 3

Slide 3 text

ΤϯδχΞϑϨϯυϦʔγςΟ෱ԬΞϫʔυड৆ 3 < Thank you!!

Slide 4

Slide 4 text

1. ͸͡Ίʹ 2. Adwin in Go 3. Exponential Histograms in Go 4. ·ͱΊ 4 ໨࣍

Slide 5

Slide 5 text

1. ͸͡Ίʹ

Slide 6

Slide 6 text

• λΠϜεςοϓ t͝ͱʹ஋͕؍ଌ͞ΕΔ࣌ܥྻσʔλ • 1෼͝ͱͷαʔό΁ͷΞΫηεස౓ͷਪҠɺ1࣌ؒ͝ͱͷΫϦοΫ཰ͷਪҠ etc… 6 Time series data and Windowing 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0 ?, ?, ?, ?, ?, ?,?, … աڈ ະདྷ ݱࡏ

Slide 7

Slide 7 text

• ແݶʹଓ࣌͘ܥྻσʔλͷશظؒσʔλΛอ࣋ɾ෼ੳ͢Δͷ͸ݱ࣮తͰ͸ͳ͍ • ௚ۙ nεςοϓͷσʔλΛؚΉ΢Οϯυ΢Λର৅ͱͯ͠อ࣋ɾ෼ੳ͢Δ 7 Time series data and Windowing 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0 ?, ?, ?, ?, ?, ?,?, … n=7 աڈ ະདྷ t=15 t=9 t=15

Slide 8

Slide 8 text

• ແݶʹଓ࣌͘ܥྻσʔλͷશظؒσʔλΛอ࣋ɾ෼ੳ͢Δͷ͸ݱ࣮తͰ͸ͳ͍ • ௚ۙ nεςοϓͷσʔλΛؚΉ΢Οϯυ΢Λର৅ͱͯ͠อ࣋ɾ෼ੳ͢Δ 8 Time series data and Windowing 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0 ?, ?, ?, ?, ?, ?,?, … n=7 t=15 t=9 t=15 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0 ?, ?, ?, ?, ?, ?,?, … t=16 t=10 t=16

Slide 9

Slide 9 text

• ΢Οϯυ΢αΠζܾఆͷδϨϯϚ • ྫ͑͹ɺ΢Οϯυ΢ʹؚ·ΕΔ஋ͷฏۉΛར༻͢ΔͳΒ͹ • αΠζ͕গͳ͚Ε͹ɺաڈͷ৘ใΛऔΓ͜΅͢ • αΠζ͕ଟ͚Ε͹ɺ௚ۙͷ৘ใͷॏཁੑ͕ബΕΔ 9 How many is the optimal window size?

Slide 10

Slide 10 text

10 Kaburaya autoscaler • ఏҊ͢ΔΦʔτεέʔϦϯά੍ޚܥ[1]ʹ͓͍ͯαʔό͋ͨΓͷϨεϙϯελΠ ϜΛੑೳࢦඪͱͯ͠ར༻ • ͲΕ͙Β͍ͷظؒͷฏۉϨεϙϯελΠϜΛऔಘ͢Ε͹Α͍ͷ͔ = ΢Οϯ υ΢αΠζͷܾఆ • Ҡಈฏۉʁ • ՃॏҠಈฏۉʁ • ࢦ਺Ҡಈฏۉʁ <>ࡾ୐༔հ ܀ྛ݈ଠ࿠ ,BCVSBZB"VUP4DBMFSଟ؀ڥͰͷӡ༻ੑΛߟྀͨࣗ͠཯దԠܕΦʔτεέʔϦϯά੍ޚܥ Πϯλʔωοτͱӡ༻ٕज़γϯϙδ΢Ϝ ࿦จू QQ /PW

Slide 11

Slide 11 text

• ΢Οϯυ΢αΠζܾఆͷδϨϯϚ • αΠζ͕গͳ͚Ε͹ɺաڈͷ৘ใΛऔΓ͜΅͢ • αΠζ͕ଟ͚Ε͹ɺ௚ۙͷ৘ใͷॏཁੑ͕ബΕΔ 11 Adaptive windowing • มԽ͕ͳ͍ظؒ͸ͳΔ΂͘௕͍ظؒͷ৘ใΛอ࣋͢Δ • มԽ͕͋ͬͨ࣌͸ɺաڈͷ৘ใΛ੾Γࣺͯɺ௚ۙͷ৘ใΛ༏ઌ͢Δ ࠓ೔ͷΞϓϩʔν"EBQUJWF8JOEPXJOH దԠతͳ΢Οϯυ΢

Slide 12

Slide 12 text

• ࿦จͷΞϧΰϦζϜ͸ಡΜ͚ͩͩͩͱΘ͔Βͳ͍ʢ๻͸ʣ • ଞͷݴޠͷ࣮૷΋࠷ऴతʹ͸࿦จͱಥ͖߹ΘͤͯಡΉͷͰࣗ෼Ͱ࣮૷͢Δఔ౓ ʹ͸͕͔͔࣌ؒΔ • ࣗ෼Ͱ࣮૷͢Δ͜ͱͰ࿦จʹର͢Δཧղ͕֨ஈʹ޿͕Δ • Ұ౓࣮૷͓͚ͯ͠͹αʔϏεͰར༻͢Δࡍʹ࠷దͳݴޠ΁ͷίϯόʔτ͸ָ • GoͰ࣮૷͢Δͱɺཚ਺Λ൐͏γϛϡϨʔγϣϯ݁ՌͷฏۉԽͳͲʹର͢Δฒ ྻγϛϡϨʔλͷ࣮૷͕ൺֱత༰қ 12 Why Go?

Slide 13

Slide 13 text

2. ADWIN in Go

Slide 14

Slide 14 text

• “Learning from time-changing data with adaptive windowing”, Bifet, Albert, and Ricard Gavalda; Proceedings of the 2007 SIAM international conference on data mining. Society for Industrial and Applied Mathematics, 2007 • ࣌ܥྻσʔλͷ෼෍͕࣌ؒܦաʹΑͬͯมԽ͢Δ͜ͱΛલఏʹ࠷దͳ΢Οϯυ ΢αΠζΛಈతʹܾఆ͢ΔΞϧΰϦζϜ (ADWIN) • ΢Οϯυ΢αΠζ͕େ͖͘ͳͬͨ৔߹ʹ΋ܭࢉྔ΍ϝϞϦ࢖༻ྔΛ཈͑ΔͨΊ ʹExponential histogramsͱ͍͏σʔλߏ଄Λಋೖ (ADWIN2) 14 ADWIN: Adaptive Windowing Algorithm

Slide 15

Slide 15 text

15 ADWIN in Go https://github.com/monochromegane/adwin • ADWINΛGoͰ࣮૷

Slide 16

Slide 16 text

16 ADWIN: Adaptive Windowing Algorithm • ฏۉ0.8ɺඪ४ภࠩ0.01ͷཚ਺ Λ࣌ܥྻσʔλͱͯ͠ੜ੒ • ్த͔ΒฏۉΛ0.4ʹมߋ • ΢Οϯυ΢αΠζͷมԽʹ஫໨ ᶃ҆ఆظؒ΢Οϯυ΢αΠζ૿Ճ ᶄมԽ఺΢Οϯυ΢αΠζ࡟ݮ ᶅ҆ఆظؒ΢Οϯυ΢αΠζ૿Ճ

Slide 17

Slide 17 text

ᶃ มԽ఺ͷݕ஌ • ΢Οϯυ΢Λաڈͱݱࡏʹೋ෼ͯ͠஋ͷ܏޲ʹมԽ͕͋ͬͨՕॴΛݟ͚ͭΔ • > Whenever two “large enough” sub windows of W exhibit “distinct enough” average, • ౷ܭͷݕఆతͳΞϓϩʔν 17 How to achieve adaptive windowing? 1, 1, 0, 1 1 1, 0, 1 1, 1 0, 1 1, 1, 1

Slide 18

Slide 18 text

ᶃ มԽ఺ͷݕ஌ • ྫ͑͹ೋ෼ͨ͠΢Οϯυ΢ಉ࢜ΛʮରԠͷͳ͍tݕఆʯͰߟ͑Δʢ࣮ࡍ͸΋ͬ ͱෳࡶɻ࿦จͷAppendix A ࢀরʣ 18 How to achieve adaptive windowing? 11.01, 12.02, 11.01, 12.02, 11.01 11.00, 12.01, 11.02, 12.01, 11.02 t = 0.0057 9.92, 9.01, 9.82, 9.01, 9.12 t = 6.4083 ˎࣗ༝౓ͷU஋͸

Slide 19

Slide 19 text

ᶄ ΢Οϯυ΢ͷॖখ • มԽ఺Λݕ஌ͨ͠Βɺ࠷΋ݹ͍ํͷ΢Οϯυ΢ΛҰͭ࡟ݮ • มԽ͕ͳ͘ͳΔ·Ͱ܁Γฦ͢ 19 How to achieve adaptive windowing? 11.00, 12.01, 11.02, 12.01, 11.02 9.92, 9.01, 9.82, 9.01, 9.12

Slide 20

Slide 20 text

20 ADWIN: Adaptive Windowing Algorithm • มԽ͕ͳ͚Ε͹΢Οϯυ΢αΠ ζ͸ͲΜͲΜେ͖͘ͳΔ • ΢Οϯυ΢αΠζʹൺྫͯ͠ • ϝϞϦ࢖༻ྔ͕૿Ճ • ܭࢉྔ͕૿Ճ • ΢Οϯυ΢ͷ෼ׂճ਺ • ݕఆճ਺

Slide 21

Slide 21 text

3. Exponential Histograms in Go

Slide 22

Slide 22 text

• “Maintaining Stream Statistics over Sliding Windows”, M.Datar, A.Gionis, P.Indyk, R.Motwani; ACM-SIAM, 2002 • େ͖ͳαΠζͷ΢Οϯυ΢޲͚ͷσʔλߏ଄ • աڈσʔλΛόέοτʹαϚϥΠζͯ͠ϝϞϦ༰ྔͱܭࢉྔΛ࡟ݮ • ͨͩ͠஋ͷूܭ͸ۙࣅ஋ͱͳΔ • ७ਮͳExponential histograms͸Bits(0or1)͔Positive Integers(ਖ਼ͷ੔਺)ͷ࣌ ܥྻσʔλͷΈѻ͏ʢADWIN2Ͱ͸࣮਺΋ѻ͑ΔΑ͏ʹ͍ͯ͠Δʣ 22 Exponential histograms: data structure for sliding windows

Slide 23

Slide 23 text

23 Exponential histograms: data structure for sliding windows 1 1 1 2 1 1 2 3 1 1 2 3 2 3 NFSHF 4 1 2 3 4 5 0 2 3 4 6 1 2 3 4 6 2 4 6 NFSHF *HOPSF 7 1 2 4 6 7 8 1 2 4 6 7 8 2 4 7 8 4 7 8 NFSHFY Time Bit Bucket Time Bit Bucket .FSHFTJ[F .FSHFTJ[F

Slide 24

Slide 24 text

• όέοτͷ࣋ͭλΠϜελϯϓ͸Ұͭલͷόέοτ·ͰͷλΠϜελϯϓͷؒ ʹόέοταΠζ෼ͷ1ؚ͕·ΕΔ͜ͱΛࣔ͢ • όέοτͷλΠϜελϯϓ͕΢Οϯυ΢αΠζΛ௒͑Δ৔߹ʢظݶ੾Εͷόέο τʣ͸࡟আ͞ΕΔ • ࣮ࡍ͸TOTALʢظݶ಺ͷόέοτͷ஋ͷ߹ܭʣͱLASTʢظݶ಺ͷόέοτͷ ࠷େαΠζ (2^i)ʣͱ͍͏ม਺Λߋ৽͢Δ • Χ΢ϯτ͸ TOTAL - LAST/2 ͰۙࣅͰ͖Δʢabsolute error͸LAST/2ʣ • ޡࠩΛͲͷఔ౓ڐ༰Ͱ͖Δ͔ΛύϥϝλEpsilonͰ੍ޚ 24 Exponential histograms: data structure for sliding windows

Slide 25

Slide 25 text

• ࿦จͰ͸Positive Integers΋঺հ͞Ε͍ͯΔ • ୯७ʹ஋͕Nͷ৔߹ɺNճͷσʔλૠೖ͕ߦΘΕΔ • ܭࢉྔ͸ͱΓ͏Δ੔਺ͷ࠷େ஋·Ͱ૿Ճ 25 Exponential histograms: data structure for sliding windows

Slide 26

Slide 26 text

26 Exponential Histograms in Go https://github.com/monochromegane/exponential-histograms • Exponential Histograms (Bits, Positive Integers)ΛGoͰ࣮૷

Slide 27

Slide 27 text

27 ADWIN2: Adaptive Windowing using ExpHist • ΢Οϯυ΢Λ഑ྻ͔ΒExpHistʢͷѥछʣʹมߋ • ࣮਺Λ֨ೲ͠ɺόέοτ͸߹ܭ஋Λอ࣋͢Δ • αϒ΢Οϯυ΢ͷࠩͷݕఆΛ࠷΋աڈʢ=௕͍ظؒʣͷόέοτͱͦΕҎ֎Λ ൺֱ͢Δ͚ͩʹมߋ • มߋΛݕ஌ͨ͠৔߹͸ɺͦͷ࠷΋աڈόέοτΛ࡟আͯ͠ऴΘΓ

Slide 28

Slide 28 text

28 ADWIN2 in Go https://github.com/monochromegane/adwin • ADWIN2ΛGoͰ࣮૷

Slide 29

Slide 29 text

29 ADWIN2: Adaptive Windowing using ExpHist &YQ)JTUͷಋೖʹΑͬͯ΢Οϯυ΢ͷ࡟আ͕ όονతʹͳΔ͕͜ͷྫͰ͸໰୊ͳͦ͞͏

Slide 30

Slide 30 text

4. ·ͱΊ

Slide 31

Slide 31 text

• ࿦จͷΞϧΰϦζϜͷཧղͷͨΊʹADWINͱExponential HistogramsΛGoݴ ޠͰ࣮૷ͨ͠ • Adaptiveͳ΢Οϯυ΢ͷ࣮ݱ͢ΔɺADWINΛ঺հͨ͠ • େ͖ͳαΠζͷεϥΠσΟϯά΢Οϯυ΢ΛলϝϞϦͰ࣮ݱ͢ΔExponential HistogramsΛ঺հͨ͠ • ͜ΕΒΛ૊Έ߹ΘͤͨADWIN2Λ঺հͨ͠ • GoͰ࣮૷͢Δ͜ͱͰΞϧΰϦζϜͷཧղͰ͖Δ૚Λ޿͛Δ͜ͱʹߩݙʢଟ෼ʣ 31 ·ͱΊ

Slide 32

Slide 32 text

No content