『CatBoost: unbiased boosting with categorical features』at NeurIPS2018読み会

B69e29a7a1186a606efb05b1a212a158?s=47 tomoto
January 26, 2019

『CatBoost: unbiased boosting with categorical features』at NeurIPS2018読み会

Dwango Media Villageの大元が NeurIPS2018読み会@PFN ( https://connpass.com/event/115476/ ) にて発表した資料です。

紹介した論文は、Gradient Boosting Decision Tree ライブラリの1つである CatBoost の詳細に関するもので、
CatBoost: unbiased boosting with categorical features
https://papers.nips.cc/paper/7898-catboost-unbiased-boosting-with-categorical-features
です。

本論文の貢献は、
- Prediction shift という問題を定義した
- この問題を Ordered boosting with Ordered TS という1つのアルゴリズムで解決した
- 既存有名ライブラリである XGBoost, LightGBM を上回る性能を実験で示した
です。

B69e29a7a1186a606efb05b1a212a158?s=128

tomoto

January 26, 2019
Tweet

Transcript

  1. $BU#PPTUVOCJBTFECPPTUJOHXJUIDBUFHPSJDBMGFBUVSFT /FVS*14ಡΈձ!1'/ גࣜձࣾυϫϯΰ %XBOHP.FEJB7JMMBHF େݩ࢘

  2. େݩ ࢘  !IFOSZ  ͓͓΋ͱ ͔ͭ͞ גࣜձࣾυϫϯΰ%XBOHP.FEJB7JMMBHF IUUQTENWOJDP !%XBOHP@%.7

     ڝഅ༧ଌɺػցֶशߨ࠲ͷڭࡐ࡞੒ -JHIU(#.ͷίϛολʔ 1ZUIPOύοέʔδͱ$ ࣮૷෦෼Λओʹ໘౗Έ͍ͯΔ
 ʢ࠷ۙ͋·ΓؔΘΕ͍ͯͳ͍͕ŋŋŋʣ .FBO"CTPMVUF&SSPS΍
 )VCFSMPTTͷॳظ࣮૷Λͨ͠ ࣗݾ঺հ  
  3. ೥࿈ଓͷ(SBEJFOU#PPTUJOH%FDJTJPO5SFF (#%5 ϥΠϒϥϦ 9(#PPTU ,%%  -JHIU(#. /*14  $BU#PPTU

    /*14  $BU#PPTUͷಛ௃ ΧςΰϦΧϧಛ௃ྔͷѻ͍͕ଞϥΠϒϥϦΑΓ্ख͍ CBTFQSFEJDUPSʹCJOBSZ TZNNFUSJD EFDJTJPOUSFFΛ࠾༻͢Δ͜ͱͰɺ աֶशΛ཈͑Δ ϋΠύʔύϥϝʔλͷมԽʹ҆ఆ͢Δ σϑΥϧτύϥϝʔλͰͦͦ͜͜ͷੑೳ͕ग़ͤΔ ਪ࿦଎౓͕଎͍ -JHIU(#.ͷʙഒૣ͍Β͍͠ $BU#PPTUͱ͸   /7*%"%FWFMPQFS#MPHΑΓ
  4. ʦ໰୊ʧͭͷύʔτͰλʔήοτ࿙Ӯ͕ى͖ΔՄೳੑ͕͋ΓɺຊདྷٻΊ͍ͨؔ਺ʢϞσϧʣ ͱɺ࠷దԽ͞ΕΔؔ਺ʹͣΕ͕ੜ͡Δ ΧςΰϦΧϧσʔλͷલॲཧ ϒʔεςΟϯάΞϧΰϦζϜ ʦఏҊʧͭͷॱং PSEFSJOH ख๏ͰɺͭͷύʔτͰى͖ΔՄೳੑͷ͋Δλʔήοτ࿙Ӯ Λ๷͙ λʔήοτ࿙Ӯͱ͸ɺ༧ଌ࣌ʹར༻Ͱ͖ͳ͍৘ใΛؚΜͩঢ়گͰ༧ଌϞσϧΛ܇࿅ͯ͠͠· ͏͜ͱ

    ͪͳΈʹɺ.-044ͱ͍͏ϫʔΫγϣοϓʹ΋͏ຊผͷ࿦จ͕࠾୒͞Ε͍ͯΔ l8IZFWFSZ(#%5TQFFECFODINBSLJTXSPOHz ຊ࿦จͷߩݙ  
  5. ɹɹɹɹɹɹɹɹɿ܇࿅ηοτ ɹɹɹɹɹɹɹɿN࣍ݩͷಛ௃ϕΫτϧ ɹɹɿ໨తม਺ ɹɹɹɹɹɿɹɹɹɹɹɹɹɹΛ࠷খԽ͢ΔٻΊ͍ͨؔ਺ɺɹɹɹ͸׈Β͔ͳϩεؔ਺ ɹɹɿςετηοτʢఴࣈͳ͠ʣɺ%ͱ͸ಠཱ ɹɹɹɿ؍ଌσʔλ͕ै͏ະ஌ͷ෼෍ʢ୯ʹɹͱ͚ͩॻ͘͜ͱ΋͋Δʣ දه   D

    = {(xk , yk )}k=1,...,n xk = (x1 k , ⋯, xm k ) yk ∈ ℝ F : ℝm → ℝ ℒ(F) = L(y, F(x)) (x, y) P( ⋅ , ⋅ ) P L( ⋅ , ⋅ )
  6. 0SEFSFE54 ΧςΰϦΧϧಛ௃ྔͷલॲཧ

  7. ΧςΰϦΧϧಛ௃ྔͷલॲཧख๏ͷͭ 5BSHFUFODPEJOH΍.FBOFODPEJOHͱݺ͹ΕͨΓ΋͢Δ ΧςΰϦΧϧಛ௃ྔΛ໨తม਺ͷ౷ܭ஋ͰΤϯίʔυ͢Δ ద੾ʹΤϯίʔυͰ͖Ε͹ඇৗʹڧྗʢͰ͋Δ͜ͱ͕ܦݧతʹ஌ΒΕ͍ͯΔʣ ࢖͍ํΛؒҧ͑Δͱɺ͋ͬͱݴ͏ؒʹաֶशΛҾ͖ى͜͢ 5BSHFUTUBUJTUJDT 54   04

    536& 8JOEPXT  NBD04  -JOVY  8JOEPXT  NBD04  NBD04  04      
  8. ɹɿL൪໨ͷαϯϓϧͷJ൪໨ͷಛ௃ྔʢΧςΰϦΧϧʣ ɹɿUBSHFUTUBUJTUJD 54  ɹɿ܇࿅ηοτશମͷ౷ܭ஋ʢฏۉ͕Ұൠతʣ ಛ௃ྔͷ஋͕܇࿅ηοτͷதͰϢχʔΫͰɺ֤ΧςΰϦʹ͍ͭͯɹɹɹɹɹɹɹɹͱԾఆ͢Δͱ ͖
 
 
 ͱͳΔ͕ɺ෼ׂͷᮢ஋Λ


    
 
 ͱ͢Δͱɺ܇࿅σʔλΛ׬ᘳʹ෼ྨ͢Δ͜ͱ͕Ͱ͖Δ ҰํͰɺςετσʔλͷ54͸શͯɹͱͳΓɺɹɹɹͷͱ͖༧ଌ஋͸શͯͱͳΓɺͦ͏Ͱͳ͍ͱ͖ ͱͳΔɻͭ·Γɺςετσʔλͷਖ਼ղ཰͕ͱͳΔ (SFFEZ54   ̂ xi k xi k P 1(y|xi = A) = 0.5 ̂ xi k = yk + αP 1 + α t = 0.5 + αP 1 + α P P < t
  9. 54ͷ๬·͍͠ੑ࣭   ܇࿅σʔλͱςετσʔλͰظ଴஋͕౳͘͠ͳͬͯཉ͍͠ ɹͷ54Λܭࢉ͢ΔࡍʹɺσʔληοτͷશͯΛར༻͢ΔͷͰ͸ͳ͘ɺ෦෼ू߹ɹɹɹɹɹ Λར༻͢Δ ͨͩ͠ɺ܇࿅σʔλͷશͯΛ54ͷܭࢉͱϞσϧͷֶशʹར༻Ͱ͖Δ͜ͱ xk Dk ⊂

    D \ xk
  10. ܇࿅αϯϓϧͷϥϯμϜͳॱྻɹΛܭࢉ͢Δ ɹɹɹɹɹɹɹɹɹͱͯ͠܇࿅σʔλͷ54Λܭࢉ͢Δ ςετσʔλͷ54͸ɹɹɹͱͯ͠ٻΊΔ 1ͱ1Λຬͨ͢ $BU#PPTUͷ࣮ࡍͷ࣮૷Ͱ͸ɺద౰ͳεςοϓຖʹМΛαϯϓϦϯά͢Δ
 ʢόϦΞϯε͕௿͘ͳΔʣ ఏҊΞϧΰϦζϜ0SEFSFE54   σ

    Dk = {xj : σ(j) < σ(k)} Dk = D 04 536& 8JOEPXT  NBD04  -JOVY  8JOEPXT  NBD04  NBD04  04      
  11. 0SEFSFECPPTUJOH ϒʔεςΟϯάΞϧΰϦζϜ

  12. ஞ࣍తʹɹɹɹɹɹɹɹΛٻΊΔ ɹ͸εςοϓαΠζɺɹɹɹɹɹɹ ɹɹɹɹ͸CBTFQSFEJDUPS ͜ͷ࠷খԽ໰୊Λղͨ͘Ίʹɺ/FXUPO#PPTUJOHΛར༻͠ɺɹɹ͸
 
 
 
 Λۙࣅ͢ΔΑ͏ʹٻΊΔ ͍͍ͨͯͷ৔߹ɺ࠷খೋ৐๏͕༻͍ΒΕΔ (SBEJFOUCPPTUJOH

      Ft = Ft−1 + αht α ht : ℝm → ℝ ht ∈ H ht(x) gt(x, y) := ∂L(y, s) ∂s s=Ft−1(x)
  13. ݱ࣮తʹ͸ࣜ  Λ௚઀࠷దԽͰ͖ͳ͍ͨΊɺ܇࿅ηοτ%্Ͱۙࣅ͢Δ ͜͜ʹόΠΞε͕࿈࠯తʹൃੜ͢Δ ࿦จதͰ͸ɺ͜ͷ໰୊ΛQSFEJDUJPOTIJGUͱݺͿ ͜Ε͸ɺλʔήοτ࿙Ӯ͕ݪҼͰ54Ͱ΋ى͖Δ 1SFEJDUJPOTIJGU  

  14. ɹɹɹɹɹɹɹͱ͢Δͱ͖ɺࣜ  ͷɹɹɹɹɹ͸ɺɹɹɹɹɹɹɹɹɹɹɹͱͯ͠ٻ·Δ ͭͷಠཱͨ͠ಛ௃ྔ ਅͷؔ਺ ɹɹɹɹɹɹͷͱ͖ɺ ҎԼΛԾఆͯ͠΋Ұൠੑ͸ࣦΘΕͳ͍ 5IFPSFNɿԾఆ  

    L(y, ̂ y) = (y − ̂ y)2 −gt(xk , yk ) rt−1(xk , yk ) := yk − Ft−1(xk ) x1, x2 ∼ Bernoulli(p = 1/2) y = f*(x) = c1 x1 + c2 x2 α = 1, T = 2 F = F2 = F1 + αh2 = F0 + αh1 + αh2 = h1 + h2
  15. ͜ͷͱ͖ɺ࣍ͷఆཧ͕੒Γཱͭ σʔλαΠζOʹ൓ൺྫ͢ΔόΠΞε͕ൃੜ͢Δ ఆཧͷূ໌͸෇࿥ʹ༩͑ΒΕΔ 5IFPSFN   όΠΞε

  16. ɹɹɹɹΛγϑτͤ͞ͳ͍ͨΊʹɺɹΛؚΊͳ͍ͰɹɹΛ܇࿅ͤ͞Δඞཁ͕͋Δ 0SEFSFE54ͱಉ͡ݪཧΛ࠾༻͢Δ ܇࿅αϯϓϧͷϥϯμϜͳॱྻɹΛܭࢉ͢Δ ઌ಄͔ΒJ൪໨·Ͱͷ܇࿅αϯϓϧͰֶशͨ͠ϞσϧΛɹɹɹͱ͢Δ ɹɹɹͷܭࢉʹɹɹΛར༻͢Δʢਤʣ ܭࢉྔ͕രൃ͢Δ͕ɺ༷ʑͳ޻෉ʹΑΓ
 ܭࢉྔΛ࡟ݮ͢Δʢ4FDUJPO ఏҊΞϧΰϦζϜ0SEFSFECPPTUJOH  

    rt−1(xk , yk ) xk Ft−1 σ Mi=1,⋯,n rt(xj , yj ) Mt j−1
  17. ࣮ݧ

  18. ࣮ݧʹར༻ͨͭ͠ͷσʔληοτશͯʹ͓͍ͯɺ$BU#PPTU͕࠷΋ߴ͍ੑೳΛୡ੒ͨ͠ Լਤ͸ɺ෇࿥ΑΓ 9(#PPTU -JHIU(#.ʹରͯ͠΋0SEFSFE54ʹΑΔલॲཧΛࢪͨ݁͠Ռ ࣮ݧ9(#PPTU -JHIU(#.ͱͷੑೳൺֱ  

  19. 0SEFSFECPPTUJOH͸σʔληοτͷαΠζ͕খ͍͞ͱ͖ʹ༗ޮͰ͋Δ ܇࿅αϯϓϧ͕,ҎԼͰԸܙ͕େ͖͍ ࣮ݧ1MBJOCPPTUJOHWT0SEFSFECPPTUJOH  

  20. 0SEFSFE54͕࠷΋ߴ͍ੑೳΛࣔͨ͠ ࣍఺Ͱ)PMEPVU͕ྑ͍ ࣮ݧ5BSHFUTUBUJTUJDTͷΞϧΰϦζϜൺֱ  

  21. 1SFEJDUJPOTIJGUΛఆٛͨ͠ 1SFEJDUJPOTIJGUΛղܾ͢ΔͨΊʹɺ0SEFSFE#PPTUJOHXJUI0SEFSFE54ͱ͍͏൚༻త ͳղܾҊΛఏҊͨ͠ ΞΠσΟΞ͸ɺ܇࿅αϯϓϧΛϥϯμϜʹγϟοϑϧͯ͠ɺॱংΛར༻ͨ͠ΤϯίʔσΟ ϯά΍ϞσϧͷֶशΛߦ͏ طଘ༗໊ϥΠϒϥϦͷ-JHIU(#. 9(#PPTUΛ্ճΔੑೳΛ࣮ݧͰࣔͨ͠ લॲཧͷํ๏͸౷Ұ͞Ε͍ͯͨͷͰɺϒʔεςΟϯάΞϧΰϦζϜͷ͕ࠩͰͨʢ͸ͣʣ ਖ਼௚ͳͱ͜Ζɺҟৗͳ΄Ͳੑೳ͕ྑ͘ݟ͑Δ ࿦จͷ·ͱΊ