Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

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 を上回る性能を実験で示した
です。

tomoto

January 26, 2019
Tweet

More Decks by tomoto

Other Decks in Research

Transcript

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

    View Slide

  2. େݩ ࢘ !IFOSZ

    ͓͓΋ͱ ͔ͭ͞
    גࣜձࣾυϫϯΰ%XBOHP.FEJB7JMMBHF
    IUUQTENWOJDP !%[email protected]%.7

    ڝഅ༧ଌɺػցֶशߨ࠲ͷڭࡐ࡞੒
    -JHIU(#.ͷίϛολʔ
    1ZUIPOύοέʔδͱ$࣮૷෦෼Λओʹ໘౗Έ͍ͯΔ

    ʢ࠷ۙ͋·ΓؔΘΕ͍ͯͳ͍͕ŋŋŋʣ
    .FBO"CTPMVUF&SSPS΍

    )VCFSMPTTͷॳظ࣮૷Λͨ͠
    ࣗݾ঺հ


    View Slide

  3. ೥࿈ଓͷ(SBEJFOU#PPTUJOH%FDJTJPO5SFF (#%5
    ϥΠϒϥϦ
    9(#PPTU ,%%

    -JHIU(#. /*14

    $BU#PPTU /*14

    $BU#PPTUͷಛ௃
    ΧςΰϦΧϧಛ௃ྔͷѻ͍͕ଞϥΠϒϥϦΑΓ্ख͍
    CBTFQSFEJDUPSʹCJOBSZ TZNNFUSJD
    EFDJTJPOUSFFΛ࠾༻͢Δ͜ͱͰɺ
    աֶशΛ཈͑Δ
    ϋΠύʔύϥϝʔλͷมԽʹ҆ఆ͢Δ
    σϑΥϧτύϥϝʔλͰͦͦ͜͜ͷੑೳ͕ग़ͤΔ
    ਪ࿦଎౓͕଎͍
    -JHIU(#.ͷʙഒૣ͍Β͍͠
    $BU#PPTUͱ͸


    /7*%"%FWFMPQFS#MPHΑΓ

    View Slide

  4. ʦ໰୊ʧͭͷύʔτͰλʔήοτ࿙Ӯ͕ى͖ΔՄೳੑ͕͋ΓɺຊདྷٻΊ͍ͨؔ਺ʢϞσϧʣ
    ͱɺ࠷దԽ͞ΕΔؔ਺ʹͣΕ͕ੜ͡Δ
    ΧςΰϦΧϧσʔλͷલॲཧ
    ϒʔεςΟϯάΞϧΰϦζϜ
    ʦఏҊʧͭͷॱং PSEFSJOH
    ख๏ͰɺͭͷύʔτͰى͖ΔՄೳੑͷ͋Δλʔήοτ࿙Ӯ
    Λ๷͙
    λʔήοτ࿙Ӯͱ͸ɺ༧ଌ࣌ʹར༻Ͱ͖ͳ͍৘ใΛؚΜͩঢ়گͰ༧ଌϞσϧΛ܇࿅ͯ͠͠·
    ͏͜ͱ
    ͪͳΈʹɺ.-044ͱ͍͏ϫʔΫγϣοϓʹ΋͏ຊผͷ࿦จ͕࠾୒͞Ε͍ͯΔ
    l8IZFWFSZ(#%5TQFFECFODINBSLJTXSPOHz
    ຊ࿦จͷߩݙ


    View Slide

  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( ⋅ , ⋅ )

    View Slide

  6. 0SEFSFE54
    ΧςΰϦΧϧಛ௃ྔͷલॲཧ

    View Slide

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



    04 536&
    8JOEPXT
    NBD04
    -JOVY
    8JOEPXT
    NBD04
    NBD04
    04






    View Slide

  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

    View Slide

  9. 54ͷ๬·͍͠ੑ࣭


    ܇࿅σʔλͱςετσʔλͰظ଴஋͕౳͘͠ͳͬͯཉ͍͠
    ɹͷ54Λܭࢉ͢ΔࡍʹɺσʔληοτͷશͯΛར༻͢ΔͷͰ͸ͳ͘ɺ෦෼ू߹ɹɹɹɹɹ
    Λར༻͢Δ
    ͨͩ͠ɺ܇࿅σʔλͷશͯΛ54ͷܭࢉͱϞσϧͷֶशʹར༻Ͱ͖Δ͜ͱ
    xk Dk
    ⊂ D \ xk

    View Slide

  10. ܇࿅αϯϓϧͷϥϯμϜͳॱྻɹΛܭࢉ͢Δ
    ɹɹɹɹɹɹɹɹɹͱͯ͠܇࿅σʔλͷ54Λܭࢉ͢Δ
    ςετσʔλͷ54͸ɹɹɹͱͯ͠ٻΊΔ
    1ͱ1Λຬͨ͢
    $BU#PPTUͷ࣮ࡍͷ࣮૷Ͱ͸ɺద౰ͳεςοϓຖʹМΛαϯϓϦϯά͢Δ

    ʢόϦΞϯε͕௿͘ͳΔʣ
    ఏҊΞϧΰϦζϜ0SEFSFE54


    σ
    Dk
    = {xj
    : σ(j) < σ(k)}
    Dk
    = D
    04 536&
    8JOEPXT
    NBD04
    -JOVY
    8JOEPXT
    NBD04
    NBD04
    04






    View Slide

  11. 0SEFSFECPPTUJOH
    ϒʔεςΟϯάΞϧΰϦζϜ

    View Slide

  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)

    View Slide

  13. ݱ࣮తʹ͸ࣜ
    Λ௚઀࠷దԽͰ͖ͳ͍ͨΊɺ܇࿅ηοτ%্Ͱۙࣅ͢Δ
    ͜͜ʹόΠΞε͕࿈࠯తʹൃੜ͢Δ
    ࿦จதͰ͸ɺ͜ͷ໰୊ΛQSFEJDUJPOTIJGUͱݺͿ
    ͜Ε͸ɺλʔήοτ࿙Ӯ͕ݪҼͰ54Ͱ΋ى͖Δ
    1SFEJDUJPOTIJGU


    View Slide

  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

    View Slide

  15. ͜ͷͱ͖ɺ࣍ͷఆཧ͕੒Γཱͭ
    σʔλαΠζOʹ൓ൺྫ͢ΔόΠΞε͕ൃੜ͢Δ
    ఆཧͷূ໌͸෇࿥ʹ༩͑ΒΕΔ
    5IFPSFN


    όΠΞε

    View Slide

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

    ܭࢉྔΛ࡟ݮ͢Δʢ4FDUJPO

    ఏҊΞϧΰϦζϜ0SEFSFECPPTUJOH


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

    View Slide

  17. ࣮ݧ

    View Slide

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


    View Slide

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


    View Slide

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


    View Slide

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


    View Slide