Challenges And Opportunities In Media Mix Modeling ==> 読後メモ
論文
こちらの論文を要約。2017年にGoogle Researchが出したMMM (Media Mix Modeling)に関するサーベイ論文。
MMM(Media Mix Modeling or Marketing Mix Modeling)とは
- 広告主が広告投資の効果を計測するためのモデル
- 時系列の集計データを用いて、Sales outcomeを予測するモデルを構築
- 広告関連の変数、マーケ系の変数、天気・季節要因・競合の状況などが入力変数
- MMMのモデルからは、ROAS(Return on advertising spend)や、最適化された広告予算配分などを得ることが可能。
- 昨年のTV広告のROASは?
- もし、ある商品の広告費を来年増やせば、その商品の売れいきはどうなる?
- (補足)販売個数 = F(テレビ広告出稿量、ラジオ広告出稿量、月、天気、販促キャンペーン有無)みたいなモデルを構築するイメージか。。
因果推論モデル
- MMMではRCTや因果推論のアプローチを利用することが困難。
- RCT: いろんな条件を、全部実験することは、非現実的。
- 因果推論 (Potential Outcome Framework / Rubin Causal Model):MMMに利用できるデータ数は少ないことが多く、それに対し、Control Variableの組み合わせが多いことが多いので、利用しづらい。
- そこで、Regressionを利用したアプローチを用いることが多い。
RegressionによるMedia Mix Modeling
- MMMで利用されることが多いデータ
- Response Data、ある商品の販売数など
- Media metrics、それぞれのメディアでのインプレッション数やクリック数など
- Marketing metrics、対象商品の価格・販促状況など
- Control factors、季節要因、天気、競合商品の状況など
- Regressionのモデル
- Y[t] = F(X[t-L+1], Z[t-L+1])
- Y[t] = Time t でのSales
- X = L期前のマーケティングに関する変数
- Z = L期前のControl variables(天気など)
- Lはラグ。マーケ活動をしたL期後にSalesに影響が出ると仮定。
- Y[t] = F(X[t-L+1], Z[t-L+1])
Challenges
- Dataが不十分
- データポイント数が不十分な場合がある。3年間の週次データで、20変数あるモデルであれば、モデルのパラメータ数がデータポイント数を上回ってしまうこともある。
- 広告出稿量を倍にした場合のSalesを知りたいが、過去に出稿量が倍になったことがない・・など、手持ちのデータの範囲が不十分な場合がある。
- Salection Bias
- 入力変数に入っている変数意外で、Salesに影響を与えるマーケティング関連の変数があったとしたら・・・
- Model Selection
- Fittingが高い2つのモデルでも、マーケ変数の条件によって、異なる結果を出す場合がある。このような場合、どちらのモデルを選ぶべきか?
Chances
- Data
- より正確で粒度が細かいデータが重要。
- Model
- ベイジアンモデルが良い場合がある。Benefitsは、以下の通り。
- 事前知識を入れることができる。
- 複雑なモデルを扱える。
- モデルとParametersのUncertaintityを示すことが可能。
- Category models
- 同じProductの別ブランドのデータも使えると、さらに良い。
- Geo models
- 国レベルのデータより、より粒度が小さい都市・地域レベルでのデータも使えると、さらに良い。
- Graphical models
- 複雑な依存関係を捉える場合、Graphical modelが有効。
- ベイジアンモデルが良い場合がある。Benefitsは、以下の通り。
- Validation
- Simulatorがあると、様々な仮定や条件にたえうるRobustなモデルが構築可能になる。
Impression
- Media Mix Modelingは、Marketing Mix Modelingと呼ばれることもあるとのこと。いづれも略称は、MMM。
- 過去データからの分析だと、どうしても、「関係はあるが因果はないマーケ変数とSalesの組み合わせ」がでてきてしまいそうなのが懸念。データ収集のためのランダム実験ができるなど、条件さえあえば、因果推論を用いたアプローチが有効そうな印象。
- ただし、その場合、この論文でも指摘されているとおりで、Treatmentの組み合わせが多数になってしまうので、そこを如何に乗り越えるかは、課題だが・・・。
To tune or note to tune? Adapting Pretrained Representations to Diverse tasks ==> 読後メモ
論文
こちらの論文の内容を、要約。
概要
- Tranfer Learningは、2つのStageから構成
- Pre-training: 汎用的な入力データのRepresentationを学習 (例:単語のベクトル表現を学習)
- Adaptation: そのRepresentationを新たな問題に提供 (例:そのベクトル表現を用いて、与えられた文章のポジネガ分類)
- Transfer Learningには、2つのパラダイムがある。この論文では、下記2つの手法を、BERT及びELMoを例にとって、比較。
- Feature-extraction: Pre-trainモデルのWeightは、どのようなDownstream tasksに対しても固定。1つのPretrained representationを、様々なDownstream tasksに利用。
- Fine-tunning: Pre-trainモデルのWeightsを、個々のDownstream tasksに対して調整。Downstream tasksによって、Pretrained representationをカスタマイズ。
Adaptationの定義
- Feature-extraction:
- モデルは、Pretrained modelと、Task specific modelの2つ。
- BERT, ELMo共に、入力データのrepresentations表現を、Internal layerから抽出。
- Adaptation phaseにおいて、それを入力にして、Task-specificなモデルを構築。
- Fine-tunning:
- モデルは、Pretrained modelのみ。それをTask-specificになるように再学習。
- Pre-trained modelに対して、Downstream tasksに応じたSoftmax Layerを追加。
実験結果
- Fine-tunningとFeature-extractionのPerformance差は、小さめ。
- Semantic textual similarity(テキストの類似度計測)では、ELMoは、Feature-extractionのパフォーマンスが高い。逆に、BERTは、Fine-tunningのパフォーマンスが高い。
- Semantic textual similarityでは、ELMoよりBERTのパフォーマンスが高い。理由は、Pretraining時のタスク(Next-sentence prediction)とDownstream tasksが類似であるため。過去の研究によれば、Pretraining時のタスクと、Downstream tasksが類似していると、高いパフォーマンスが出やすい。
追加パラメータの影響
- Named Entity Recognitionタスクでは、ElMoはFeature-extractionが優位。BERTはFine-tunningが優位。両者に、パラメータを追加してパフォーマンスを比較。
- Feature-extractionの場合、追加パラメータでパフォーマンスが向上。
- Fine-tunningの場合、追加パラメータはパフォーマンス向上に寄与せず。
Souce DomainとTarget Domainの差の影響
- BERT & Feature-extractionにおいて、(a)(b)の間に関係がないことを確認。
結論
- パフォーマンスは、Pretraining時のタスクと、Downstream tasksの類似度に依存。
- それらが類似しているほど、高いパフォーマンス。
Impression
NetflixにおけるQuasi Experimentation (準実験) ==> 読後メモ
元の記事
Netflixにおける準実験について書かれた記事を、要約。
Key Challenges with Quasi Experiments at Netflix | by Netflix Technology Blog | Netflix TechBlog
問題
- ABテストは便利だが、場合によっては、ランダムに個人を選ぶようなABテストができない場合がある。
- ランダムにユーザを選んだとしても、ユーザ毎の噂話やマスメディアの影響、Netflix自体が出すランキングの影響というのは、排除できない。
- 例えば、特定の作品について、(1) Netflix内部で宣伝した場合と、(2) 屋外で宣伝した場合、両方を実施した場合の効果はどうなるのか? (1)(2)の効果の和が宣伝効果になるのか、それとも(1)(2)双方の宣伝効果は打ち消しあうのか?
- ランダムに選んだユーザのみに屋外宣伝する・・というのは不可能。ABテストは利用できない。
準実験 (Quasi Experimentation)
- ABテスト(RCT)が実施できない場合に、介入効果を計測するのに利用する様々な方法を、まとめて準実験と呼ぶ。
- 上記の例の場合、特定の時期のControl地域と、Test地域の差を見ることで、効果を特定する。これを準実験と呼ぶ。
- Control地域では屋外宣伝を常にしない。Test地域では、特定期間のみ屋外宣伝を実施。
- 特定期間以外での、Control地域での作品の人気度と、Test地域での作品の人気度を比較することで、地域差を理解できる。
- 特定期間に、地域差以上に、人気度合いに差がでていれば、これが、屋外宣伝の効果ということになる。
- このような準実験を容易にするために、Quasimodeというプラットフォームを作成して運用。
準実験における課題
- 都市の数は限りがある。その中から、同じような複数の都市を選び、Test GroupとControl Groupに分けたい。しかし、そのような「同じような都市」を定義するのが難しい。
- 例: あるSF映画のイギリスでの宣伝効果を知りたい。
- 仮に、イギリス内の各都市をランダムに分けて、準実験を実施したとする。
- しかし、ロンドンという都市は、他の都市と比べて、SFジャンルを好きな人が多い(交絡因子)。この事実を無視して、ロンドンが、Test groupに割り当てられたとしたら、あるSF映画の宣伝効果が高く見積もられすぎてしまう恐れがある。
- このような交絡因子を、テスト設計段階で把握することは困難。
解決策1: Repeated randomizations (Or re-randomization)
- 同じような分布をもつ都市間での比較になるまで、ランダムに都市選択を繰り返す。
- しかし、各都市で、分布が同じになるように調整できる属性・変数の数は、限りがある。あらゆる属性の分布を、2都市間で同じにする・・というのは困難。
- 加えて、 サンプルサイズ(都市そのものの数)が小さいので、テスト結果に、相応のバラツキが生じうる。
解決策2: DID (Diff-in-Diff, 差分の差分法)
- 介入前にControl groupとTest groupの広告効果を比較。Baselineとなる差を捉える。
- Control groupでは、広告なし。Test groupでは、広告あり。
- 介入後にControl groupとTest groupの広告効果を比較。Baselineを超えるような差が、介入の効果。
- このような比較であれば、パリとリヨンのように、人口が異なる2都市を、Test group, Control groupに選んでも、広告効果を比較することが可能。
解決策3: Multiple interventions
- テスト期間を、可能な限り長くとる。
- その間に、複数回の介入を、それぞれのグループに実施。
- 例えば、広告の効果を知るために、広告のOn/Offを、繰り返し実施。
- 結果に対し、動的線形モデル、状態空間モデルなどをFittingさせて、介入効果を見る。
- (補足) おそらく、Test group都市とControl group都市で、ユーザ属性分布が異なったり、タイミングによって広告効果に影響を与えるような外部要因があったとしても、それら自体を、動的線形モデルの1変数に組み込んでモデル化すれば、広告効果の比較ができる・・という意図ではないかと推測。
- この方法は、テスト対象の都市数が少なくても、うまくいく。
解決策4: 過去の類似作品のデータを利用する方法
- 仮に、Netflixで放映する作品の新作の広告効果を、リリース前に知りたい場合、どうするか?解決策2,3のようなHistricalデータを用いた方法が使えず。
- この場合、放映する新作と類似の過去作品のデータを利用する。
- もしくは、同じジャンルの過去作品など。
Impression
- DIDは、現実的に利用できそう。
- 過去の類似作品のデータを用いる場合、類似度をどのように定義するのか・・は、議論がありそう。
Netflixにおける因果推論の利用例 ==> 読後メモ
Netflixにおける因果推論の利用例が、以下のBlog記事にまとめられていたので、内容を要約。因果推論の応用先(What)を知るのに役立つ記事。ただ、因果推論をどのように応用したか(How)の部分は、あまり語られておらず。。。以下、一部、文脈からの推測を含めて記載(誤ってたら、すいません)。
利用例1: どのコンテンツをローカライズするかの意思決定
- コンテンツの吹き替え版を作る場合に、あるコンテンツの吹き替え版を、ある国で作ったら、どれぐらいの価値があるかを推定。
- 因果推論+過去の履歴データを利用。
- 掲載されている図からの、ざっくり推測:
利用例2: 新機能の効果計測
- 新機能の効果を確認するためのBest Practiceを、今後定義していくとのこと。
- Best Practiceの一例(図からの推測。この部分は、あまり理解できず。)
- 最初に、以下のユーザグループを用意して、ABテスト。短期での効果を見る。
- Control群 (今のまま)
- Experiment群1 (Treatment1)
- Experiment群2(Treatment2)
- Production群(今のまま)
- 仮に、Treatment1の結果が良かった場合、以下のようにして、長期の効果を測定。
- Control群 (今のまま)
- Experiment群1(Treatment1)
- Experiment群2(Treatment1)
- Production群(Treatment1)
- 最初に、以下のユーザグループを用意して、ABテスト。短期での効果を見る。
- 別途、Netflixが出している準実験の説明を見るのが、分かりやすいかも。
利用例3: レコメンド
- レコメンドに因果推論を取り込むためのフレームワークを開発。
- 既存のレコメンドに対して、因果推論を利用した軽量のAdapterを追加できるようにした。
- このフレームワークには、以下のモジュールが含まれる。
- Impression (Treatment) to play (outcome) attribution
- True negative label collection
- Causal Inference
- Offline evaluation
- Model serving
- 既存のレコメンドと比べて、交絡因子(Confounder)を考慮しながら、あるコンテンツをユーザに見せること(Treatment)によるImpactを正確に見積れる点が、特徴の1つ。
利用例4: LTV推定
- 単にLTVを推定した場合、ユーザ獲得コストやRententionコストを高く見積もり過ぎてしまう可能性あり。なぜなら、常に、Intervention(Netflix側からのMarketing Action)なしで、自然とSubscribeしてくるユーザがいたり、Rententionするユーザがいるため。
- (推測)そこで、因果推論を用いて、Interventionがない場合のLTVを推測。
- Netflixでは、現在Netflix会員であるユーザのLTV、Netflix非会員のユーザのLTV、両方を推定。
- さらに、このLTV推定の結果を、以下のことにも利用。
- 将来のSubscriber数の予測
- 価格変更が、Subscriber数に与える影響の予測
- 価格の値下げなど、ユーザのLTVを最大化させるための施策の提案。
Adapted Tree Boosting for Transfer Learning ==> 読後メモ
論文
概要
- Alipayでの不正検知に、Transfer Learning(転移学習)を適用。
- 通常、Transfer Learningといえば、ニューラルネットワークを用いたものが多いが、この論文では、XGBを利用。
Transfer Learningの分類
- Instance based methods
- Source DomainのInstanceを、Target Domainの訓練に利用。
- 重点サンプリングで特定のInstanceを多めにサンプリングしたり、特定のInstanceに重みをつけたりする
- Source DomainとTarget Domainのデータ分布が類似の場合に、うまくいく。
- Feature based methods
- Source Domain、Target DomainそれぞれのFeaturesを、共通の空間に写す。
- 両ドメインの(分布の)差が小さくなるように、Representationをつくる。
- Model based methods
- Target Domainのモデル構築時、Source DomainのInstanceは、直接利用せず。
- Source Domainのモデルのパラメータを、Target Domainのモデルに利用。
- Tree based modelを用いた前例は、TrAdaBoost
- 訓練データのサンプルの重みを調整。
- Source domainで誤分類されたデータは、重みを小さくする。
提案手法の前提
- Source DomainとTarget DomainのX、Yで、Feature spaceが同様。
- Source DomainのXと、Target DomainのXで、分布は異なる。
適用対象のデータ
- Source Domain、Target Domainともに、海外ECのトランザクションデータ。
- 両ドメインで、異なるMarket placeのデータ。
- 不正データが両方に含まれる。
- それぞれ、入力データの分布や不正の種類は異なる。
提案手法
- 大枠
- OneRound Strategy
- Source domainでXGBを学習。
- そのモデルをTarget Domainに移動し、木1つ1つを、Target Domainにあわせて、Revise.
- 最後に、モデル全体を、Target Domainのデータで再学習
- MultiRound Strategy
- 以下を、全ての木について繰り返す。
- Source DomainでXGBを学習
- そのモデルをTarget Domainに移動し、木1つについて、Target DomainにあわせてRevise
- そのReviseされた木を、もとのSource DomainのXGBに戻す。
- 最後に、モデル全体を、Target Domainのデータで再学習
- 以下を、全ての木について繰り返す。
- OneRound Strategy
- Reviseの詳細
評価
- データ概要
- 評価指標
- 結果
- Reviseなしでの単純なTransfer Learningでも、Recallは、9.821%改善。この場合、木の深さが浅い必要あり(Depth=3)
- ReviseありのTransfer Learningでは、OneRound Strategyで、Depth=5の場合に、Recallが、11.607%改善。
- MultiRound Strategyでの改善幅はイマイチ
Impression
- Source Domainのモデルを、ReviseなしでTarget Domainに持ってくる形のTransfer Learning(BM2-dep3)でも、TOP-N Recallは、9.821%改善。案外、Reviseなしでも、精度改善が大きいというのが印象。
- 「こんなにPositive sample数が少なくても適用できるんだ・・」というのが印象的。
- Target DomainでのPositive sample数は、500件以下で、Training dataは、全データの30%のみ。そのような厳しい条件下で、Recallの改善幅が11%というのは、驚き。
LoRA: Low-Rank Adaptation of Large Language Models ==> 読後メモ
論文
目的
いかに、少ないメモリー量・計算量で、LLMを各問題に特化させるか?
先行研究(LLMを各問題に特化させる方法)
- Fine-Tunning (FT):全てのパラメータを問題に合わせて微調整。
- Parameter-Effecient Fine Tunning (PEFT):
- Adapter:問題に特化したレイヤーを追加。共通の事前学習部分は固定。問題特化したレイヤーのパラメータのみ、新たに学習。
- 直列的に処理を追加。Inference時の処理スピードが落ちる点がデメリット。
- Prefix-tunning:問題に特化した入力ベクトルを用意。パラメータの一部のみ再学習。
- Adapter:問題に特化したレイヤーを追加。共通の事前学習部分は固定。問題特化したレイヤーのパラメータのみ、新たに学習。
提案手法
- 新たなPEFTの一種として、LoRAを提案。
- Hidden Layerのパラメータに対し、それより少ない数のパラメータを定義。
- そのパラメータのみ学習。
- 元のHidden layerの出力(固定)+追加パラメータで学習したHidden layerの出力を、更新後のHidden layerの出力とする。
結果
- GPT2・GPT3で、モデルを評価。
- Full Fine-tunningと遜色ない性能。
- 学習に必要なパラメータを大幅に削減。
実装
- HaggingFaceが公開しているライブラリPEFTを通して利用可能。
役立つ資料
- こちらの資料が、LLMのFine-tuning方法の整理として、とてもわかりやすい(論文読み途中に、参考にさせていただきました)。
Building a Credit Risk Model using Transfer Learning and Domain Adaptation ==> 読後メモ
Paper
- Title: Building a Credit Risk Model using Transfer Learning and Domain Adaptation
-
Frontiers | Credit Risk Modeling Using Transfer Learning and Domain Adaptation
Summary
- 概要
- Transfer learningをCredit Scoringに応用
- 前提:
- Transfer learning
- Source Domainでニューラルネットワークのモデルを学習しておき、Target domainでニューラルネットワークの最後のレイヤーのみ再学習する。すると、Target Domainにおけるモデル精度が、Baselineと比較して向上。
- MD: AUCで7.0%向上
- SB: AUCで3.6%向上
- Domain Adaptationの概要:
- 同一の入力変数であっても、Source DomainとTarget Domainで、分布が異なる場合がある。このとき、Souce Domainの入力変数を、Target Domainの入力変数の分布に類似するように変形した上で、Transfer learningを適用することを、Domain Adaptationと呼ぶ。
- Domain Adaptationの効果:
- (Pattern-1) 全変数にDomain Adaptationを適用した場合、精度は下がった。
- MD:AUCで、-27.7%減少
- SB:AUCで、-19.2%減少
- (Pattern-2) KS-Statisticsの値が高い変数に限定してDomain Adaptationを適用したら、精度は向上。
- KS-Statisticsとは、2つの分布間の差を測る指標。差が大きい場合、KS-Statisticsの値も大きくなる。
- MD: AUCで、+2.7%向上
- SB:AUCで、+0.3%向上
- (Pattern-3) KS-Statisticsの値が高い変数に限定してDomain Adaptationを適用 + KS-Statisticsの値が高い変数と関連した変数にも、Domain Adaptationを適用したら、さらに精度は向上。
- MD:AUCで、+3.3%向上
- (Pattern-1) 全変数にDomain Adaptationを適用した場合、精度は下がった。
Impression
- Transfer Learning適用による効果は明らかで、とてもPositiveな結果。
- Domain Adaptationの効果については、やや疑問が残る。Target Domainによって、Doman Adaptationの効果が異なっており、MDでは高い効果が得られているが、SBでは効果は、かなり小さい。Domain Adaptationが効果的なケースは、限られる感じか?
- Domain Adaptationを適用する入力変数の選択に、職人芸的な部分が入っているのが気になる。KS-Statisticsで、どのような値以上ならDomain Adaptationを適用すべきなのか?また、Pattern-3のようなケースも、「関連した変数」の定義に、ドメイン知識が使われており、実際に利用するとなった場合には、不安が残る。