appricot’s diary

日々の勉強のメモ

Quants-GAN ==> 読後メモ

論文

arxiv.org

GANとは

GeneratorとDiscriminatorの2モデルを定義

Generatorは、模擬しようとしているデータを生成

Discriminatorは、来たデータが、Generatorによるデータか、本物のデータか判別。

 

この論文の目的

Asset return(今日の終値と昨日の終値の上昇率)の生成

 

Asset returnの特徴

  1. Asset returnの分布は、正規分布よりもTailがHeavy(思ったより、稀な現象が起きやすい)
  2. Asset returnの分布のピークは、正規分布のピークよりも急(ボラが低いときが、ほとんど)
  3. Asset returnにはVolatility Clusterあり。時系列で、ボラが一定ではなく、ボラが高い時期もあれば、低い時期もある。
  4. Asset returnには、Leverage effectあり。Asset returnと、「Asset returnのボラ」は負の相関。ボラが高くなると、Asset Returnは現象。
  5. Asset returnどうしは、相関はないが、独立というわけでもない。

 

提案手法(Quants-GAN)

  • Generatorの部分に、TCNs(Temporal Convolutional Networks)、WaveNetsを利用。
  • これよにり長期の依存関係が模擬でき、並列化や定常性を保つことも可能に。
  • 時系列データにCNNを適用したもの。TCNs自体の解説は、こちらの記事が詳しい。

 

評価

  • SP500の生成を、評価対象とする
  • TCNsで直接SP500を生成した場合、QuantGAN, GARCHの3手法を比較。
  • TCNsを直接用いた暴いが、最も高い評価。全評価項目で、GARCHより上。

 

Impression

QuantGANそのものより、TCNsを直接用いた方が、評価結果が良かったのが、気になるところ。

 

TransBoost: A Boosting-Tree Kernel Transfer Learning Algorithm for Improving Financial Inclusion ==> 読後メモ

Paper

Summary

  • 概要
    • Gradient Boosting TreeをベースにしたTransfer Learningの手法を提案。
    • Tencentの不正検知データやLending Clubの与信データに適用し、精度・計算時間・欠損値への耐性などの観点で、他の手法と比較して有用であることを検証。
  • 前提
    • Source Domainは、大量のデータポイントがある。
    • Target Domainは、少量のデータポイントしかない。
    • 目的は、Target Domainで、精度の高い予測器をつくる。
    • (論文の記載ではなく、当Blog著者の補足)仮に、Source DomainをサービスAのユーザデータ、Target DomainをサービスBのユーザデータとする。両者で、入力変数の種類(ユーザのどういった属性のデータがあるか)は、同一である必要がある。両者に含まれるユーザは、異なっていても良い。例えば、以下のようなイメージ。
      • Source Domainは、サービスAで、大量のデータがある。入力変数として、ユーザの性別・年齢・居住地が含まれる。
      • Target Domainは、サービスBで、少量のデータしかない。入力変数として、ユーザの性別・年齢・居住地が含まれる。
      • サービスAしか利用していないユーザもいれば、サービスBしか利用していないユーザ、両方利用しているユーザもいる。
  • Transfer Learning
    • 大きくわけて、2つのアプローチがある。
    • 1つ目のアプローチは、Instance Weighting. Source DomainとTarget Domainにおける各入力変数の分布の違いが小さくなるように、各データポイントに重み付け。例えば、KMM法の場合、(再生核ヒルベルト空間において)Source DomainとTarget Domainの各入力変数の平均を小さくするように、各データポイントに重み付けする。
    • 2つ目のアプローチは、Feature representation. Source DomainとTarget Domainで共通するようなFeature representationを見つける。具体的には、Source DomainとTarget Domainを、他空間にうつして、Mappingさせる。
  • モデル概要
    • Source Domainと、Target Domainで、同一の木構造のモデルを構築する。ただし、各Leafの重みは、両者で異なる。
    • Source Domainの木構造と重みは、通常のGBTと同様に学習。
    • Target Domainの木構造と重みは、ある特別な誤差を最小化するように学習。特別な誤差とは、その木をSource Domainに適用した場合の誤差と、Target Domainに適用した場合の誤差の和。
      • 誤差=λxSource Domainに木を適用した場合の誤差+Target Domainに木を適用した場合の誤差+正則化
        • λは、ハイパーパラメータ。
      • Source Domainに木を適用した場合の誤差は、各データポイントに対し、Souce DomainとTarget Domainの差を表す重みβをつけて計算。
      • このβは、各データポイントに対して計算される。Target DomainにおけるP(x, y)と、Source DomainにおけるP(x,y)の比として定義。
        • Target DomainにおけるP(x,y)は、Target Domainの木を用いて計算。
        • Souce DomainにおけるP(x,y)は、Source Domainの木を用いて計算。
  • 学習手順
    • M回、以下を繰り返し。Mは、木の本数。
      • Target Domainにおいて、木を学習。
      • Souce Domainにおいて、木を学習。
        • 木の構造は、Target Domainと同様で、各Leafの重みのみ、Source Domainのデータに合わせて、カスタマイズ。
      • 次のイテレーションで用いるβを更新。
        • βは、各P(x, y)に対して、Source Domainの場合と、Target Domainの場合の違いの比率。先に学習したSource Domainの木と、Target Domainの木を用いて計算される。
        • βは、Source Domainの各訓練データに対して計算される。
  • 評価
    • 以下のデータを利用。ラベルは、いづれもバイナリ。
      • Tencent Mobile Paymentの不正データ
        • Source Domainは、前からある金融サービスのデータ(149万人)
        • Target Domainは、新たにはじまった金融サービスのデータ(8.5万人)
        • 入力変数の数は、両ドメインとも、2,714個
      • Lending Clubのローン返済のデータ
        • Source Domainは、医療ローンのデータ(5,080件)
        • Target Domainは、自動車ローンのデータ(4,000件)
        • 入力変数の数は、両ドメインとも、110個
      • ワイン評価データ 
        • Souce Domainは、赤ワイン(3,918件)。
        • Target Domainは、白ワイン(1,460)。
        • 入力変数の数は、両ドメインとも、11個
    • 結果
      • いづれのデータでも提案手法(TransBoost)のAUCが、他のTransfer Learningの手法と比較して、高い。Training Dataの量を、10%程度まで減らした場合でも、AUCは、0.72以上。
      • 計算時間は、Tencent Mobileのデータで検証。TransBoostが最も速い。
      • Tencent Mobileのデータで、訓練データにおいて、人工的に欠損値を発生させた場合でも、モデルのAUCの落ちが、他手法と比べて小さいことを検証。

Impression

  • 今まで、Transfer Learning=Deep Leariningベースの手法とばかり思い込んでいたので、Gradient Boosting Treeをベースとした手法があるというのは、新鮮。
  • 計算時間が他手法より短かったり、モデルのInterpretabilityもあるという点は、魅力的。
  • 比較対象のBaselineとして、様々なTransfer Learningの手法と比較しているが、単純にXGBoostを適用した場合と比較して、どれぐらいAUCがImproveするのかも、知りたかった。
  • 論文に挙げられている様々なTransfer Learningの手法は、知らないものも多かったので、一度、きちんと勉強したい。。特に、論文中、KMMという手法がよく登場するので、こちらは、きちんと理解したい。
  • Theoretical Analysisの部分は、勉強不足で、完全には理解できず・・

Learning Triggers for Heterogenous Treatment Effects ==> 読後メモ

  • Paper
    • Learning Triggers for Heterogeneous Treatment Effects
  • 概要
    • Causal Tree (https://arxiv.org/abs/1504.01132 , Athey and Imbens 2016)に対して、以下2つの改良を実施。
      • 改良1: 介入が連続値で定義されても大丈夫なように改良。
        • 通常のCausal Treeでは、介入は2値(例えば、薬を投与する、しない)を想定。この論文では、この介入が連続量(例えば、薬の投与量)を想定。
        • 各葉では、介入の有無を決める閾値を保持。
          • 各葉の介入効果 = 介入があった場合のYの平均 - 介入がなかった場合のYの平均
            • Yは、例えば、病気が治った(1)か否か(0)
          • 介入量が閾値以上なら介入があったとし、さもなくば介入なしとする。
          • この閾値は、葉ごとに、最適な値を決定。具体的には、各葉において、介入効果が最大となるような閾値を、最適な閾値とする。(Formula-6)
      • 改良2: 木のSplit基準を、汎化誤差が小さくなるように改良。
        • (Athey and Imbens 2016) データをTraining, Testと2分割し、Trainingデータで木の生成と、各葉での介入効果を推定することを、Adaptive ApproachもしくはCT-Aと呼称。
          • 木をSplitする際、1つの親ノードからを2つの子ノード(葉)を作るとして、それぞれのノードの介入効果の和が最大となるように、木をSplitさせる。
        • (Athey and Imbens 2016) 通常の Causal Treeでは、データをTraining, Estimation, Testと3つに分割。その上で、Trainingデータを用いて木を生成し、Estimationデータを用いて、各葉での介入効果を推定。これを論文では、Honest ApproachもしくはCT-Hと呼称。
        • この論文では、新たなApproachとして、CT-Lを提案。この方法では、木をTraining, Validation, Testに分割し、以下を算出。目的は、汎化誤差を小さくすること。 
          • [1] Trainingデータを用いて介入効果の計算。
          • [2] その介入効果と、Validationデータでの介入効果の差をもとに、コストを計算。
          • [1] - λ* [2]が最大となるように、木をSplit。
            • λは、コストの考慮度合いを決めるハイパーパラメータ。
            • 介入効果が最大となるようにしつつ、Validationデータでの介入効果とTrainingデータでの介入効果の差(=汎化誤差)が小さくなるように、Split。
            • Formula-7を参照。
        • このほか、この論文では、CT-HL、CT-HVという方法も提案。
          • ここでは割愛。
    • 提案手法の評価
      • 介入効果が連続の場合
        • 提案手法(CT-L)は、既存手法(CT-H, CT-A)と比較して、明らかに誤差が小さい。
      • 介入効果が2値の場合
        • 提案手法は、介入効果が連続の場合のみならず、2値の場合にも、適用可能。
        • 提案手法(CT-L)は、既存のTree-based手法(CT-H, CT-A)と比較して、明らかに誤差が小さい場合が多い。
        • 提案手法(CT-L)は、既存のTree-based以外の手法(Propensity Score + Logistic Regressionの組み合わせ)と比較しても、誤差が小さい場合が多い。
  • Impression
    • 介入が離散値(2値)の場合について、他手法と比較した際の優劣を、もう少し知りたい。論文中では、Causal Treeとの比較を行っていたが、Causal ForestやMeta Learnersと比較した場合の優劣はどうか?
    • 介入が連続量の場合、介入量の分布によって、結果に違いが出るのか、気になった。介入量が一様分布の場合、2つ山があるタイプの分布の場合などで、精度に影響が出るのかどうか?

 

 

金融系に特化したLLM

金融系に特化したLLMとして、FinGPTとBloombergGPTがある。両者について、メモ。

 

FinGPTの特徴

arxiv.org

  1. Pre-trained model(LLM)は、既製品を利用。具体的にはMetaによるLLaMAなど。
    1. BloombergGPTは、LLMの部分も、金融データを使って自前でやっている。そこた違いか?
  2. その上で、既製品をFine-tuneする際に、各種金融系データ (News, SNS, 企業開示, 株価)を利用。
  3. FIne-tuneの方法は、金融系データ+LoRAとRLSPを利用。
    1. LoRAは既存の方法。パラメータの一部のみをFine-tuneすることで、低学習コスト。学習の際には、Newsに対するStock Priceの増減(Positive, Negative, Neutral)も、ラベルとして利用。
    2. RSLP(Rainforcement Learning via Stock Price)は、新規の方法。RLHPが、Fine-tuneを人間のFeedback + 強化学習を用いて実施する方法だが、その人間のFeedbackの部分を株価で代替。これによって、各種金融イベントに対するMarket response予測などを容易にする効果あり。
  4. 評価結果は、残念ながら、論文に含まれておらず。 

BloombergGPTの特徴

arxiv.org

  1. Pre-trained model(LLM)について、一般的なデータ(General Data)と、金融系のデータ(Domain-specific data)の両方を利用して学習。
    1. Bloomberg内のデータとPublicな金融系データの両方を利用。
  2. TokenizerとしてSub-word tokenizerではなく、Uni-gramを利用。
  3. LLM構築時の訓練モデルとして、Bloombergが作成したモデルを利用。
    1. Decoder-onlyの言語モデル。70個のLayerから構成 + Self Attentionメカニズム。
    2. 言語はPyTorch。インフラは、Amazon SageMakerを利用。
    3. Alibi位置エンコーディングを利用。長い文の入力にも対応。
  4. 評価結果として、Domain-specificなTasksで高い性能。General tasksも、タスクによって、他の汎用モデルと同じか、それを凌駕する性能。

その他

  1. Bloomberg GPTは、LLMの訓練に金融系データを既に利用しているため、金融系データやタスク毎でのFine-tunningは、していない模様。
  2. Bloomberg GPTでは、評価方法・GPTの典型的タスク例として、以下6つを定義。
    1. Descriminative Tasks
      1. Semantic Analysis:文が与えられ、「Sentimentは?」の質問に、Positive, Negative, Neutralで回答。
      2. Aspect-specific sentimant Analysis:文が与えられ、「TargetのSentimentは?」の質問に、Positive, Negative, Neutralで回答。
      3. Binary Classification:文が与えられ、質問に対し、Yes/Noで回答。
    2. Generative Tasks
      1. NER:文が与えられ、それに含まれる固有表現を回答。
      2. NER+NED(Named Entity Disambiguation):文が与えられ、それに含まれる固有表現(企業名)に対応するTickerを回答。
      3. QA:文が与えられ、質問に対し回答。

 

 

Employing Explainable AI to Optimize the Return Target Function of a Loan Portfolio ==> 読後メモ

Paper

www.frontiersin.org

 

Preparation

  • ローン審査で、Defaultするユーザを予測するモデルを考える。
  • False Positive Rate = ローンでDefault「しない」ユーザに占める、Default「する」と予測されたユーザの割合。誤陽性とも呼ぶ。低いほどよい。
  • True Positive Rate = ローンでDefault「する」ユーザに占める、Default「する」と予測されたユーザの割合。真陽性・感度・再現率とも呼ぶ。高いほど良い。
  • AUC = True Positive Rateが上がるほど、False Positive Rateも上昇する。以下に、False Positive Rateの上昇をおさえつつ、True Positive Rateを高められるかを表したのがAUC。
  • Default = ローンで、お金が返せなくなること。
  • PD = Probability of Default
  • Basis point (bps) = 1%の1/100。1ベーシス = 0.01%。100ベーシス = 1%。 

Summary

  • Intro 
    • 「Default予測のAccuracyをあげること」と「ローンビジネスの収益をあげること」は、同一ではない。
    • False Positive(Defaultではないが、Defaultと誤って予測する場合)を増やすことで、Businessの収益を増やせるのでは?
  • Data
    • Fintech-ho2020 project (https://fintech-ho2020.eu/) で提供されたExternal Credit Assesment Institution (ECAI)のデータを用いる
    • 4,514 persons
      • 88.97% (4,016 persons)= no default
      • 11.03% (498 persons) = default
    • 個々人での借り入れ金額の情報はないため、今回は皆一定と仮定。
    • 7割をIn-sample、3割をOut-of-sampleとして利用
    • 個々人での変数の数は24個。うち、19個の変数を入力として利用。
  • Assumption
    • Loss given default (LGD) = 8割と仮定
    • Loan size = $1 per personと仮定
    • 仮に全員を承認した場合 (=Baseline):
      • Default cost = Detaultした人数 x LGD = $498 x 80% = $394.4
      • Risk Premium = Default cost / Revenue = $394.4 / $4,016 = 9.92%
      • Spread = $4,016 x 500bps = $4,016 x 5% = $200 と置く。
        • このSpreadがProfitに相当。
        • なぜなら、Default costはRisk Premiumで相殺されるため
  • Logistic Regressionの適用
    • Model
      • Output=[0, 1]で、1に近いほどDefaultしやすい
      • 閾値以下の人を承認する。閾値0なら全員Reject閾値1なら、全員承認。この場合、PDは0.11
      • この閾値を調整することで、Accuraxy-Maxな最適化・Profit-Maxな最適化を実施。
    • Baseline model
      • 閾値は1.0
      • Acceptance Ratio = 1
      • Accuracy = 0.89
      • True Positive Rate = 0%
      • False Positive Rate = 0%
      • Profit = 60.74
    • Accuracy Maxmising Threshold
      • 閾値でのAccuracyを計算する際、以下の定義を利用。これを全人について足し合わせ、人数で割ったものをAccuracyとして最大化。
        • 予測と実際が一致した人を1とカウント
        • そうでない場合を0とカウント 
      • 最適な閾値は0.4
        • 次第に閾値をあげていったときに、承認された人のうち、「No-Defaultだった人」と「Defaultだった人の数」の差が最大となった点に相当。 (図3)
        • とはいえ、閾値0.15 - 0.6では、Accuracyは、それほど変わらず。
      • Acceptance Ratio = 0.9432
      • Accuracy = 0.91 (Baselineと比べて約2%だけ上昇)
      • True Positive Rate = 34.9%
      • False Positive Rate = 2.07% (本来優良である人を不良と誤判定)
      • Profit = 98.61 (Baselineと比べて大幅上昇)
      • 筆者の意見: MLの実装は大変なのにAccuracyの上昇は、たった2%のみ。誤って承認されたDefaultユーザ(False Negative)と、誤ってRejectされたNo-Defaultユーザ(False Positive)では、コストは異なる。前者のほうが、事業が負うコストは大きい。
    • Profit Maximising Threshold
      • 閾値でのAccuracyを計算する際、以下の定義を利用。これを全人について足し合わせたものをProfitとして、最大化する。
        • 予測がDefaultの場合、0とカウント
          • True Positive + False Positive
        • 予測がNo-Defaultで、実際がNo-Defaultの場合、0.1492とする
          • Risk Premium (9.92%) + Spread (5%)に相当
          • True Negative
        • 予測がNo-Defaultで、実際がDefaultの場合、-0.8とする
          • - LGDに相当
          • False Negative
      • この場合、最適な閾値は0.17
      • Acceptance Ratio = 0.8509(小さめ)
      • Accuracy = 0.8649 
      • True Positive Rate = 56.4%
      • False Positive Rate = 9.8% (本来優良である人を不良と誤判定。大きめ)
      • Profit = 98.61 (Accuracy-maxと比べて大幅上昇)
  • Decision Treeの適用
    • 閾値は0.5で固定。
    • Training DataにおけるDefault, No-defaultの重みを、Accuracy-Maxに調整した場合、Profit-Maxに調整した場合を比較。
    • Accuracy-Maxに調整した場合
      • Defaultを1とした場合の、No-defaultの重みを1とした場合が、最適。
        • No-defaultの重みが1未満の場合、全員、Rejectする傾向。
      • Acceptance Ratio = 95.6%
      • False-Positive Ratio = 1.24%
      • Accuracy = 0.911
      • Profit = 93.7
    • Profit-Maxに調整した場合
      • Defaultを1とした場合の、No-defaultの重みを0.2とした場合が、最適。
      • Acceptance Ratio = 80.3% (Logistic Regressionの場合より低下)
      • False-Positive Ratio = 14.59% (Logistic Regressionの場合より上昇)
      • Accuracy = 0.827
      • Profit = 107.2 (Logistic Regressionの場合より低下)

Impression

  • Accuracy最大化とProfit最大化は異なる・・ということを、Simpleな例で示した論文。特に、以下の点は、なるほどと思った。
    • False Negative(DefaultをNo-defaultと予測した場合)とFalse Positive(No-DefaultをDefaultと予測)の場合で扱いを変えた
    • 特に、False Negativeを重め(悪いものとして)に評価
  • Profit-Maxの場合にFalse Positiveが増えることは、現実には、問題になる可能性もあるのでは・・と推測。
    • 本来、優良なお客さんをRejectしてしまうことは、悪いReputationにつながる恐れはないか?
    • ローンにおいて、正解(Default, No-Default)は、お金を貸してみないと分からない。そのような中で、Profit-Maxの場合は、Acceptance Ratioを絞っている。絞り幅が大きい場合には、ビジネス上の機会損失(本来、優良なお客さんに、お金を貸せないことによる機会損失)になる懸念もあるのでは?

 

The Science of Pricing Experimentation at Amazon ==> 読後メモ

Paper

American Economic Association

https://www.aeaweb.org/conference/2023/program/paper/4frnFS39

Joseph Cooprider, Shima Nassiri, "The Science of Pricing Experimentation at Amazon", ASSA 2023 Annual Meeting, 2023

 

Summary

  • 目的
    • 新たに導入するPricing Algorithmの効果(Average Treatment Effect; ATE)を推定したい。具体的には、商品毎・タイミング毎に、Pricing Algorithmを適用する場合・適用しない場合を混ぜて、商品やタイミングの影響を除いたPricing Algorithmそのものの効果を推定しようとしている。
    • 商品の販売には、Pricing Algorithmのみならず、販促、広告、インフルエンサー、Supply Chain、商品そのものの需要など、様々な影響が絡む。その状況下で、Pricing Algorithmの影響のみ推定することが、難しさ。
  • 既存の実験方法
    • Time-bound Experimantal Design
      • 7日目までは、Baseline Priodということで、何もしない。
      • 8日目以降、Control Groupの商品は、何もしない。Treatment groupの商品には、Pricing Algorithmを適用。
    • Trigger-based Experimantal Design
      • 7日目までは、Baseline Priodということで、何もしない。
      • 8日目以降、Treatment groupの商品には、「Trigger条件が発動した日から」Pricing Algorithmを適用。それ以外の商品には、何もしない。
      • Trigger条件とは、例えば、「他の店舗が、対象商品について特別な販促を開始した場合」。
    • Swichbacks
      • 7日目までは、Baseline Priodということで、何もしない。
      • 8日目以降、各商品について、ある日はTreatment Group、またある日はControl Group・・というのを、ランダムに繰り返す。いつがTreatmentで、いつがControl・・というのは、商品によって、バラバラ。
      • Standard errorを60%削減する効果。
      • この方法は、ある日の価格が、翌日以降の需要に影響を与えること(Carry-over Effect)が起きない場合のみに、有効な方法。
  • 改善案1 --> Cross Over
      • 7日目までは、Baseline Priodということで、何もしない。
      • 8, 9日目は、半分の商品がTreatment Group。残り半分の商品がControl Group。
      • 10日目は、Blackout periodということで、何もしない。これは、Carry-over Effectを少なくするのが目的。
      • Standard errorを40-50%削減できる。これは、Swichbacksほどではないが、Carry-over Effectを減らせる効果もあるのが利点。
  • 改善案2 --> HPTE (Heterogeneous Pannel Treatment Effect)
    • 既存の推定手法 --> DID (Difference-in-difference)
      • 1st difference = Before, Afterでの違い
      • 2nd difference = Treatment group, Control groupでの違い
        • T1: Treatment groupの商品のTreatment前の販売個数
        • T2: Treatment groupの商品のTreatment後の販売個数
        • C1: Control groupの商品のTreatment前の販売個数
        • C2: Control groupの商品のTreatment後の販売個数
        • ATE = (T2-T1) - (C2-C1)
          • 1st differenceが、T2-T1
          • 2nd differenceが、(T2-T1) - (C2-C1)
    • 提案手法 --> HPTE
      • Step1: 各Productで、Treatment中のDailyの値 - Treatment前のDailyの値を計算。これを、β(i)とする。iはProduct.
        • 値は、おそらく、販売個数では・・と推測
      • Step2: β(i)の分布を作成し、外れ値であるようなProduct(分布の両側の裾野)を除く。
      • Step3: Causal Forestを用いて、Second differenceを計算。
        • おそらく、以下のようなモデルを構築していると推測
          • β(i) = F(X(i))
          • X(i)は、Productの属性や、Treatment前のBusiness Metricsなど。
      • Step4: Boost strapping
        • Standard errorを計算するために、以下を繰り返す。
          • Randomeに複数のProductsを選択
          • Step1,2,3を実施し、ATEを計算
        • ATEの分布とStandard errorを得る
    • 提案手法の結果 
      • DIDと比べてHPTEの方がStandard errorが30%低くなる 
  • 改善案3 --> 補完財・代替財を考慮
    • Spillover Effect (or Interference)
      • 補完財、代替財でのTreatmentが、Control groupのProductに影響してしまう場合がある。これをSpillover effectと呼ぶ。
    • このSpillover Effectの調整・除去を実施

Impression

  • 今までCausal Forestの適用先として、人を想定した事例ばかり見てきたので、商品が対象となっているのは、新鮮。
  • Amazonでの、実際のPricingの検証方法に触れているという点も、新鮮。
  • 以下の点が、理解できず。
    • Causal Forestを適用する場合の詳細
      • どのような変数が入力変数となったのか
      • 対象となるProduct数は、どれぐらいの数あったのか?
      • どのようにProduct毎のTreatment effect (Heterogenious treatment effect)から、全体でのTreatment effect (Average Treatment effect)を算出するのか?
    • Spillover Effectの調整・除去の方法の詳細
      • 論文には記載があったものの、こちらの知識不足で理解できず。

 

Estimation and Inference of Heterogeneous Treatment Effects using Random Forest ==> 読後メモ

Paper

arxiv.org

Summary

  • Causal Treeを、Random Forestのようにアンサンブル学習とした論文
  • 前提知識の準備
    • Sampling without replacement: 非復元抽出。重複を認めずに、サンプリングしていくこと。
  •  Random Forestの場合、以下のような処理を行う(式11)。
    • 訓練データの一部を取り出し(Subsampling)、決定木を作る。
    • これを、N回繰り返す。
    • N本の木の平均を、予測結果とする。
  • 同様のことをCausal Treeに実施する(式24)。
    • 訓練データの一部を取り出し(Subsampling)、Causal Treeを作る。
    • これを、N回繰り返す。
    • N本の木の平均を、予測結果(推定された処置効果)とする。
  • Causal Treeの作り方は、以下2種類がある。いづれもHonest条件を満たす。
    • Double-sample Trees
      • 訓練データの一部を取り出し(Subsampling)、それを、さらに2分割する。Sabsamplingでは、重複は認めない。
      • 片方のデータで、木のSplitを決定。
        • 推定される処置効果の2乗が最大化されるようにする(式9)
      • もう片方のデータで、各Leafノードでの処置効果を計算。
    • Propensity Trees
      • 訓練データの一部を取り出す(Subsampling)。ここで、重複は認めない。
      • X, Wのみを用いて、木のSplitを決定。
        • Wは処置の有無を示す。処理の結果(Y)を利用しないのがポイント。
        • 例えば、CARTと同様に、ジニ不純度を、最適化の指標として利用。
      • Leafノードで、処置結果(Y)を用いて、処置効果を計算。
  • Honest条件とは?
    • それぞれの訓練データは、木のSplit決定か、各Leafノード内での処置効果の推定か、いづれか一方にしか使ってはならない。

Impression

  • Causal Forestにおいて、Subsamplingで、データの重複を許さずにサンプリングする理由はなぜか?が分からず。
  • Propensity Treesにおける木のSplit方法のイメージが分からず。
    • Leafノードに含まれるユーザ属性(X)を、ジニ不純度などを用いて均質にするように分けるイメージか?
  • Double Sample TreesとPropensity Treesの使い分けが分からず。どのような問題に対して、どちらを利用すべきか?
  • Honest条件の目的は何か?過学習の防止か?
  • モデルの評価の部分で、Causal Forestとk-NNの比較を実施しているが、Causal ForestとCausal Treeで、どれぐらい性能の違いがあるのか?が気になった。あえて、Causal Treeをアンサンブル学習化することで、どれぐらい性能が上がるのか?