A Method to Anonymize Business Metrics to Publishing Implicit Feedback Datasets (Recsys 2020) 読んだ
企業が持つ implicit feedback のデータを公開するためには
- アクティブユーザ数や収益や平均クリック数といった business metric を隠したい
- 公平性を担保したい
- Population Bias を減らしたい
という三つの気持ちがある.
今回はログ中のユーザをサンプリングして公開用データを構築するわけですが,ユーザごとにサンプリング時の重み w
を推定する問題として定式化する.
この時
- business metric を隠すために,サンプリング後のクリック数の分布と特定の分布 (zipf など) との Wasserstein distance を取る
- 公平性のためにサンプリング後のユーザの属性の分布と uniform distribution との KL divergence
- Population Bias 対策でサンプリング後の記事のカテゴリ分布と uniform distribution との KL divergence
- ここで uniform するのが fairness っぽい研究の匂いがする
の3つを重みのハイパーパラメタをかけた線形和を最小にするように を推定する.以上.
よくわからなかったところ
- 数学力が低すぎて 3.4 を読んだだけではどうやって
w
を推定していいか全く分からなかった.一番ナイーブな方法はw
をただの user の重みとみなして適当にやることですがきっとそういうわけではないだろう.5.4 で Faking Fairness via Stealthily Biased Sampling (AAAI 2020)が言及されていますが査読で何か言われなかったのだろうか - サンプリングの方針としてユーザを選ぶ
sampling user
とユーザの行動ログをサンプリングするsampling behavior log
の二つがあって本論文では前者が採用されている.後者を採用しない理由は時系列つきのログでよくやる「次に登場するアイテムは何か?」というタスクに対応できないからだと言われているが一部が欠けていても (よほど強烈なマルコフ性などが存在しない限り) できなくはないのではないかと思った - Table 1 の最下段は
2CC
の typo だと思う - 4.2.4 にて Zipf(1) における Population Bias を考慮した結果が考慮していない結果とあまり差がない (これは本当に悲しい) 理由がよくわからなかった
- 4.3 で述べられている timestamp の分布が近いみたいな話,いい話ではあるのだけど狙っていないのにどうしてこうなったのかがよくわかっていない
- そもそも「企業が持つデータセットが有用である」とは一体どういう事なのかを考え始めるとよくわからなくなってきた
声優統計コーパスに存在する誤りの告知と JVS コーパスの利用推奨
声優統計コーパスの音素バランス文,および音声データについて告知します.
告知
今後,音声を新規収録される場合には声優統計コーパス付属のバランス文ではなく,句読点情報が付与された JSUT コーパスまたは JVS コーパスの voiceactress100
(以降, voiceactress100
と呼びます) の使用を推奨します.
- 声優統計コーパスのバランス文と
voiceactress100
は一部の単語が異なっており,完全な互換性がありません - 上記の理由により,今後,音声を新規収録される場合には声優統計コーパス付属のバランス文ではなく
voiceactress100
の使用を推奨します- その際のイントネーションはプロ話者によって発話された JVS コーパスに従うことを推奨します
- 感情表現を活用したい場合,またはプロ話者かつ高サンプリングレートのデータを使用したい場合のみ声優統計コーパスの音声データを用いるのが良いと私たち (日本声優統計学会) は考えます
声優統計コーパスと JSUT/JVS コーパスの関係
1.-i. に関して,声優統計コーパスと JSUT/JVS コーパスの関係について補足します. 両者とも,条件付で自由に利用 (コピー・共有・編集) できるコーパスです.それぞれの関係は
- Wikipedia : CC BY-SA ライセンスにもとづいて本文データを公開
- 声優統計 : Wikipedia のライセンスを継承してバランス文を構築 (翻案・利用)
- JSUT : 声優統計のライセンスを継承して翻案・利用
- JVS : JSUTのライセンスを継承して翻案・利用
です.
声優統計コーパスにおける既知の誤り
1.-ii. について,現在判明している誤りです (ご指摘してくださったつくよみちゃん様,本当にありがとうございました).これらは全て私たちの力不足・確認不足によるものです.
- 「いしつみ」を「いしづみ」と読み上げている音声がある
- 「鎮痛薬」を「鎮痛剤」と読み上げている音声がある
- 「酸素供給」を「酸素配給」と読み上げている音声がある
- 「プロ野球球団の大洋ホエールズ」を「プロ野球球団・大洋ホエールズ」と読み上げている音声がある
- 「漁獲」を「りょかく」と読み上げている音声がある
- 「バファローズ」を「バッファローズ」と読み上げている音声がある
- 「ヴュルテンベルク」を「ヴェルテンベルク」と読み上げている音声がある
- 「謙吉」を「けんいち」と読み上げている音声がある
- 「プルヴァマ」を「パルヴァマ」と読み上げている音声がある
なぜこの文章を書いたか
声優統計コーパスは名称や内容のキャッチーさから (ある程度権利が自由な) バランス文および音声データとして音声研究に詳しくない人にも認知が広がっています.この現状は公開当時想定していなかったことであり,非常に嬉しく思います.
しかしその結果,より適切に品質が管理された JSUT/JVS コーパスに人々が到達しにくくなっていると考えます.特に,音声コーパスを自ら収録する人が増えている現状においては,適切なコーパスへの誘導が重要だと考えました.
最後に,本文章における声優統計コーパスと JSUT/JVS コーパスの関係,および JVS コーパスの利用推奨は JSUT/JVS コーパスの作者である高道慎之介 助教に事前に確認を取り,合意を得ています.
補足
収録当時のことを改めて思い返していたのですが、声優さんも音響スタッフさんも意図を理解してくれてかなり読み間違いには気を遣ってくれていたと思います。それでも話者間での食い違いをゼロにできなかったのは我々の見通しの甘さがあったのは間違いないです。
— メルビィ (@MagnesiumRibbon) 2020年11月1日
音素バランス文をWikipediaから構成するにあたって、全文の読み・音素を最終的に全て目検しました。この時点で相当読み込んでいたので個人的には全文に精通している認識でいましたが、甘かったです。もしあの時点に戻れるなら、一度声に出して全文を音読してから収録に望むでしょう。
— メルビィ (@MagnesiumRibbon) 2020年11月1日
それでも本質的に文の間に意味の繋がりがまったくない謎の文章について一字一音レベルの読みに気を配るのは困難だったと思います。音声コーパスの作成について素人であったとはいえ、一発録りで完成品を作ろうという考え自体に無理があったのだと今では考えています。
— メルビィ (@MagnesiumRibbon) 2020年11月1日
そういう意味ではJSUT/JVSコーパスという形で改善・洗練されたコーパスが作成されたことは我々としてもとても嬉しくありがたいことです。
— メルビィ (@MagnesiumRibbon) 2020年11月1日
声優統計コーパスからの告知です (文面にあるとおり、私も本告知に少し絡んでおります)。声優統計/JSUT/JVSそれぞれに使いどころがあるので、ともに音声界隈を支えていければと思います。
— Shinnosuke Takamichi (高道 慎之介) (@forthshinji) 2020年11月1日
https://t.co/OocsZkbJOh
声優統計コーパスを歌にした PJS: Phoneme-balanced Japanese Singing-voice corpus が公開されました
PJS: Phoneme-balanced Japanese Singing-voice corpus
[2006.02959] PJS: phoneme-balanced Japanese singing voice corpus
Junya Koguchi さんと東大高道慎之介助教によって作成された,音素バランスを考慮した日本語歌声コーパスが公開されました.
このコーパスには声優統計コーパスの音素バランス文を歌詞としてメロディが付与された歌が含まれています.arXiv 原稿の
A native Japanese male in his twenties composed all the songs. He is not a professional composer but has work experience using his singing, composing, and recording skills.
という記述が良い.
握手会が延期になったので「効果検証入門」を読んで Python で (ほぼ) 実装した
ゴールデンウィークの握手会が延期になり気力が完全に尽きてしまい(そもそも2020年のほとんどのイベントが延期または中止になっているわけですが),同じく握手会が延期になった友人と「アイドルとシロクマのことを考えないでください状態になっていてつらい」「何か没頭できる事は無いの」という話になった結果,「効果検証入門」を読んだ.
「どうせ読むのならば短期集中で」ということで,一日目午後に1章と2章,二日目午前に3章,午後に4章,三日目午前に5章のペースで Zoom で交互に節単位を音読しながら進めた.2020年,30歳を過ぎて音読.
感想
数学力が低い自分でわかった気分になれる,非常に参考になった.明日からでも試したい.随所に「実際のビジネスの現場ではこんな滅茶苦茶なことが行われている」という記述が出てくるので考えさせられてしまう.「正しい効果を知るインセンティブとは何か?」に最後の章で触れていたのも良かった.耳が痛い.
脱落変数バイアスの概念はとても面白かったし,Difference-in-Differences はシンプルながら (その分平行トレンド仮定が強力ですが) 試したいと思えた.反対に causalimpact についてはそこまでモチベーションが湧かなかった.十分に学習された予測器にもとづいて何かをする,というのがどうにも受け入れにくい.回帰不連続デザインは話としては面白そうに見えたものの,「単に回帰をする」という話になっていて肩透かしを感じた.
そもそもが本書で紹介されているテクニックはどれも比較的シンプルでありながら多くの仮定のもとに成り立っており, AUC や Prec/Recall のようになんらかの定量的な「確からしさ」が出るわけでなく,セレクションバイアスは正負どちらにも発生するため,非常に扱いが難しいように思う.「今回の施策による効果量は『〜〜〜』という仮定が成立すると考えて計算していますが,『〜〜〜』というバイアスが排除しきれていない事は念頭に置かねばなりません.ですが,何も考えずに推定するよりは確からしいと考えられます」といったように,多くの留保にもとづいて説明するのが因果推論を用いた分析において取るべき態度なのでしょう.
いくつかのトピック,たとえば Conditional Independence Assumption や Post treatment bias や Bayesian Structual Time Series Model や合成コントロールについてはより詳しく知りたくなりました.また,因果ダイヤグラムやバックドア基準という単語も本文には登場しなかったので次はそのあたりを知っていきたい.
次は星野崇宏「調査観察データの統計科学」やPearl「入門 統計的因果推論」や岩波データサイエンス Vol.3や宮川雅巳「統計的因果推論」を読むべきなのでしょうが全部会社に置いたままです.
Python による実装
ybenjo/cibook_by_python にアップロードしました.注意点を書きます.
- タイトルに「ほぼ」と入れたのは以下の実装を行っていないため
- 各種図表の描画
- 4章の
causalimpact
を用いた実験 - 5章の Nonparametric RDD の実験
- セレクションバイアスを発生させたメールデータの値が本文と一致せず,かつ,乱数の seed によっては本来の値とは逆のセレクションバイアスが発生してしまう
RData
の読み込みは ofajardo/pyreadr が良かった3.4.4
の傾向スコアの推定において本文ではre74
とre75
の二乗を共変量に追加しているが,実験したところ傾向スコアが著しく悪化したために除外した- 「効果検証入門」をPythonで書いた - Qiitaの人の実装でも含まれていない
- 傾向スコアマッチングは greedy にやってしまった
- 本来ならば二部グラフの最大重みマッチングで解けると思うのですが,Google の OR-Tools の LinearSumAssignmentではなぜか左右の node 数が異なると
INFEASIBLE
しか返さなくなり, NetworkX の Hopcroft–Karp も SciPy の maximum_bipartite_matching も上手く動かずに諦めた
- 本来ならば二部グラフの最大重みマッチングで解けると思うのですが,Google の OR-Tools の LinearSumAssignmentではなぜか左右の node 数が異なると
- pandas の使い方が全く分からなくて途中で挫折した.
groupby()
してsum()
した結果の加工が本当に分かっていない - R と違って欠損のある行を明示的に除外している
誤植・不明点
他の人も指摘しているかも知れないけれどネタバレが怖くて他人のエントリを読んでいない.自分の勘違いも多く含んでいると思う.
- 著者の実装は R を用いているわけですが,目的変数または説明変数に
NA
を含んだ場合,その行を除外して推定を行うのがデフォルトの挙動だと思うが,欠損値のある行を消してしまうのは新たなバイアスを産むのではないか - p31
recencyが3より小さい場合
は6より小さい場合
の誤り - p55
は
の誤り
- 関連して p57 の
はすべて
- 関連して p57 の
- p87
相関が強いと分子は0に近づき
は相関が強いと分母は0に近づき
の誤り - p108
共変量のバランス
における平均の差をその標準偏差で割った
のその
がよくわからない.検索したところこの値は Cohen の d と呼ばれているらしい- 自分の実装では一部の共変量がバランスしないままだった.そういうこともあると思いたい
- p141
よって,この分析の結果による効果量はそれらの差分をとって-1,554若しくは-43%ということになり
は何に対して-43%
なのか,分母は何なのかが明示されていないために分からない p1421853年の〜
という記述は全て1854年
- 水源の変化が発生したのはやはり1853年なのでこの指摘は誤りと思うが,とはいえ死者数は1854年のものを用いているように思う
- 正確には下記論文にて1853年1854年両方の死者数が記載されている
- 本文中の
D53
という変数が誤りなのでは - ここ適切な訂正が欲しいですね
- ジョン・スノウ John Snow 水上茂樹訳 コレラの伝染様式について ON THE MODE OF COMMUNICATION OF CHOLERA (1854),青空文庫にありましたがこの時代にこういう調査をやろうとした John Snow 氏は凄い
- p151
Cigar
データセットの導入が面倒だったので github の著者レポジトリで配布して欲しいと思いましたがライセンスが GPL2 だから無理なのでしょうか- なぜか自分が構築したさまざまな R の環境では
Ecdat
パッケージのインストールに失敗し続けた - 最終的に RStudio Cloud 上でデータを抽出
- なぜか自分が構築したさまざまな R の環境では
- p156 著者実装
ch4_did.R
のcausalimpact
のselect
はdplyr::
で名前空間を指定しないとエラーが出る - p176 nonparametric RDD の説明がされておらず,このモデルは一体何を行っているのかが全くわからない
- p180
5.4.1
- 二つの施策を行う状況はそもそも RDD と関係無いのでは
- では施策以外で非連続になる状況は何か
声優統計コーパスのバランス文を修正しました & 引用されている論文を列挙しました
音素バランス文の読みの修正
対応が遅れてしまい申し訳ありません.
GitHub の Issue でも指摘されていた (#6および#7) バランス文の読みを修正しました.該当箇所は 020,043,057,076,079,087 の読みと対応する音素です.変更差分はこの commit を参考にしてください.
声優統計コーパスを引用している論文の列挙
また,声優統計コーパスを利用してる論文を検索して列挙しました.名の知れた会議の原稿に y_benjo and MagnesiumRibbon
と書かれているのを読むのは気分が良いものです.
- Takaaki Saeki, Yuki Saito, Shinnosuke Takamichi, and Hiroshi Saruwatari. Lifter Training and Sub-band Modeling for Computationally Efficient and High-Quality Voice Conversion Using Spectral Differentials. ICASSP 2020.
- Riku Arakawa, Shinnosuke Takamichi, and Hiroshi Saruwatari. TransVoice: Real-Time Voice Conversion for Augmenting Near-Field Speech Communication. UIST 2019.
- Kento Matsumoto, Sunao Hara, and Masanobu Abe. Speech-like Emotional Sound Generator by WaveNet. APISIPA 2019.
- Riku Arakawa, Shinnosuke Takamichi, and Hiroshi Saruwatari. Implementation of DNN-based real-time voice conversion and its improvements by audio data augmentation and mask-shaped device. ISCA Speech Synthesis Workshop 2019.
- 佐伯 高明, 齋藤 佑樹, 高道 慎之介, and 猿渡 洋. 差分スペクトル法に基づく広帯域声質変換のためのサブバンドリフタ学習. 日本音響学会2020年春季研究発表会.
- 佐伯 高明, 齋藤 佑樹, 高道 慎之介, 猿渡 洋. 差分スペクトル法に基づくDNN声質変換の計算量削減に向けたフィルタ推定. 日本音響学会2019年秋季研究発表会.
高道さん以外の研究室でも使われているのを見かけて驚きました.
引用先を arXiv にしたい
しかし今更になって思うのですが引用先をホームページにするのではなく arXiv などの原稿にしておけば引用件数が Google に拾ってもらえたのではないでしょうか(検索結果に 被引用数
が表示されて欲しい).今からでも間に合うのでしょうか.誰か arXiv への投稿を承認してくれる人を探さなければならない.この日記を読んでいる承認可能で「承認してもいい」という奇特な方はご連絡ください.
ここまで書いたところで「そもそも arXiv は実名で無い名前で原稿を投稿できるのだろうか」と思い調べたところ
It is a violation of our policies to misrepresent your identity or organizational affiliation.
Claimed affiliation should be current in the conventional sense: e.g., physical presence, funding, e-mail address, etc.
Misrepresentation of identity or affiliation, for any reason, is possible grounds for immediate and permanent suspension.
とあるので y_benjo and MagnesiumRibbon
名義で原稿を投稿するのは無理ということが分かりました.誰か回避策をください.
Google Dataset Search への対応
これは些細なことですが, Google の Dataset Search に反映されるように schema を書きました.早くクローラに検出されたい.
IBIS 2019 行った
第22回情報論的学習理論ワークショップ (IBIS 2019) | 第22回情報論的学習理論ワークショップ, 2019.11.20〜23, ウインクあいちに行った.
- 昨年の札幌に比べると名古屋は近い
- いつもの胃ではなく腸の具合が完全に悪くて半分ぐらいまともに発表を聞かずにトイレにいた
- 有料のチュートリアルも聞きたかったのですが朝から握手会があったので断念
11/20
グラフ文法を用いたグラフ生成
- 「化学構造式のためのハイパーグラフ文法」を発表した(JSAI2018) で予習していた
- 分子グラフの生成をしたい
- (ハードな)原子価の制約を必ず満たす分子ハイパーグラフ文法を提案
- ソフトな制約は VAE で学習する
- 全てを深層学習でやるのではなく,ハードな制約があるのならばそれはそれで抽出し,そうでない部分を学習する,という話の構造が大好きです
always generate valid molecules
って響きがかっこいいですね
回帰による再帰型ニューラルネットワークからの重み付きオートマトンの抽出
- 前半をトイレで音だけ聞いていたら話に全くついていけなかった
隣接代数と双対平坦構造を用いた学習
- はじめに Matrix Balancing という操作が登場する
- Matrix に左右から対角行列をかけて各列の総和が 1 になるようにする
- [1702.08142] Tensor Balancing on Statistical Manifold
- Matrix Balancing できると何が嬉しいのかよくわからないまま話を聞いていたので本当に駄目
招待講演はホテルに戻って腹痛と格闘.
ポスター
- 1-020: ニュース推薦システムにおける各種埋め込み手法の比較検討
- 「色々埋め込みを試したけど人気順で推薦するのと対して精度が変わらない,時間と資源を使って深層学習をやる意味は本当にあるのか?」という話が良かった
- 1-021: 広告種類を考慮した不均衡データからのCTR予測モデルの学習
- 「とりあえず A/B テストで検証できる」みたいな環境は良い
- 1-022: 制約付きオンライン凸最適化によるアドネットワークのクリック単価決定
- 「良いシミュレータを作っておくと様々な戦略を実験できる」という話が良かったので公開して欲しい
- 1-026: 半教師あり介入効果推定
- 介入効果推定のブームに乗りたい
- 1-037: なぜ血液検査値は対数正規分布になるのか
- タイトルが「なぜなるのか」なのにポスターの冒頭が「対数正規分布になる」なのが良かった
- 1-045: 購買履歴データに基づくポイントカードユーザのクレジット切り替え行動分析モデル
- ポイントカードのクレジットカード機能付への切り替えが F-measure 0.9 で予測できたという話
- 本当なら全員が幸せだけどさすがになにかおかしくないですか,みたいな話をする
- 1-094: 未知のバイクシェアポート需要予測のためのノンパラメトリックベイズ生成モデル
- 久しぶりにグラフィカルモデルを見て新鮮な気持ちになる
- 1-113: 混合エキスパートモデルによる略語や表記揺れに頑健なテキスト名寄せ
- Mixture of Experts の響きがかっこいいという話と,タスクの絶妙な面倒臭さ・泥臭さの対比が良かった
11/21
サンプリングによるデータ駆動科学
- データ科学なのかデータ駆動科学なのか
- 構造が知りたい vs 根源的な構造とかどうでもいいから予測したい
- 物理プロセスや法則をモデルに取り込みたい? 入れなくてもいい? 入れるべきではない?
- なんのために理屈を知ろうとしていたのだろうか?
- 関連研究
- ノイズ付き線形スパースモデルで少ない実験データから良さそうな変数を選ぶことができる
- population annealing
- ポピュレーション型モンテカルロ
- ピンポイントでトイレにいたので聞くことができなかった
- 第一原理電子状態計算の解析
- MCA を増大させる物理的な原理を理解したい
- 結果 : 良い感じの知見が得られた
データ駆動科学の立場からみた物質科学と情報科学の接点
- これまでの研究
- MD の結果をひたすら見る
- 分子の向きを少し変えた結果をひたすら見る
- 計算化学から計算科学へ
- 計測データを計算データでフィット
- 第一原理電子状態計算を利用したポテンシャルのフィッティング
- スペクトル解析(ピーク位置推定)に EM を使ったり,データが多くてもよく考えると離散値なのでヒストグラムにまとめて sum を取って高速化したり
- 情報系のテクニックによって成果になる
集団運動におけるデータ駆動科学
- 集団行動
- 動物行動,歩行者,子供の遊び,スポーツ
- 物理学的な動的システムの理解
x_{t+1} = f(x_{t})
- f が既知で解析的に解ける
- f が既知でも解析的に解けない (歩行者モデル, helbing 2000)
- 集団運動は階層性.非線形性のある実環境での理解が難しい -> データで推定したい
- スポーツの戦術分析
- モデル化と理解のトレードオフ
- モデル駆動 (方程式ベース)
- 原理は理解できるが複雑にならない
- データ駆動 (方程式フリー)
- 複雑になるが原理は理解できない
- データ駆動的なモデル化でギャップが埋められるのではないか
- モデル駆動 (方程式ベース)
- 「音楽だけ与えると子供は回りだすんですよ」
- データから特徴抽出したい
- 集団行動分析は既存研究が少ないので可視化・理論・解釈を工夫
- 動的モード分解 : クープマン作用素のスペクトル分析
- 集団行動解析のためのグラフ DMD
- 良い話だと思うのですが動的モード分解が「行列・テンソル分解の複雑なもの」ぐらいの粒度でしか理解できなかった
ポスター
- 2-002: Causal Outcome Prediction on Combinatorial Action Spaces
- 施策
a
の組み合わせが膨大な時に全パターンを網羅するのは大変 - 特徴量
x
とa
との対を受け取って変換し uniform な施策の変換結果となるべく近づけるように学習 - 既存研究のタイトルを聞き忘れた
- 施策
- 2-013: 勾配ブースティング木における木成長時の勾配情報更新による学習加速
- 本家 xgboost に merge される予定があるのか聞くのを忘れた
- 2-018: グラフィカルモデルを用いた犯罪発生リスクエリアのスパース性を考慮した相関関係の可視化
- グラフィカルモデルが bayesian なそれではなくて「グラフィカルな」の意味で使われていて勘違いしたので別の語を使ったほうがいいと思う
- 2-037: 人間GAN:人間による知覚的識別に基づく敵対的生成ネットワーク
- 誰しも一度は考えたことがある Discriminator に人間を使う GAN
- どう backpropagation するのかと思ったら人間への聞き方を工夫すると微分の近似になるというのが良かった
- 2-047: SGDの挙動解析に基づくデータクレンジング
- 本当にいい話で良かった
- 2-056: 早期終了タイミングを予測する:深層学習における確率勾配の分布の変化点検出
- いい話だった
- 2-084: 機械は乱数の夢を見るか
- ポスターの結論が「機械は乱数の夢を見る」だったのが良かった
- 2-110: 訓練事例が機械学習モデルの予測に与える影響の測り方
- 人が多くて聞くことができなかった
11/22
「深層学習の理論」はホテルで作業.
「機械学習工学」の休憩時間に後ろから大学関係者による「数式が出てこない発表は面白くないなあ!」という大きな声が聞こえて参加者の興味も幅広いものだと思う.無理に聞かずにホテルに戻ればよかったのではないか.
機械学習に対するソフトウェア工学の技術動向
- ソフトウェア工学
- 要求工学 : システムの要求を定義・合意・記述しその妥当性確認をする
- 設計 : 品質を実現する
- テスティング : 不具合に代表される様々な品質の問題に対応する
- 従来 : シナリオで書ける
- 機械学習 : 曖昧な入力と曖昧な実装,曖昧なデータに対する評価
- どう難しくなってるか?
- アンケートによると「顧客との意思決定」「テスト・品質の評価・保証」が特に難しい
- 考え方を変えなければならない
- 契約・仕様・受け入れの課題
- 何ができるか具体的には事前に約束できない
- 作らないとわからない
- 準委任 (頑張ろう)
- 後出しで文句言いやすい
- PoC
- お試しで終わることが多い
- 不確かさが多くて納得しにくい
- どうして?
- 何ができるか具体的には事前に約束できない
- 保守の課題
- 技術的負債
- (疑問 : 負債負債というけれど 3-5年後も同じアプリが必要になるのか?)
- テスト技術の例
- メタモルフィックテスティング
- 例 : sin(x) と sin(pi-x) が一致することを確認
- これを繰り返す
- いろいろな例を作る
- サーチベースドテスティング
- システムレベルの要求に基づくテストの例
- VerifAI (Berkeley)
- 形式検証技術の適用
- デバッグ技術の例
- 分類ミスした事例の特徴量を比較して再選択 -> 能動学習のような話
- 質疑では「これは一体何をテストしているのか」「感度分析とかありますよね」という話になる
機械学習と知財・契約
- この領域で多くの記事を書いているSTORIA法律事務所による講演
- 収集
- 個人情報,著作権法
- 開発
- 何が知財で守られるのか
- 展開
- データの種類 x 取得方法 x 規約
- データ収集の問題点
- よくある質問
- ベンダとして事業会社と共同プロジェクトをやりたい
- ユーザ : 自社で独占したい
- ベンダ : うちのノウハウが入ってるし横展開したい
- 知財であるものないものを認識する
- 展開の重要性
- 成果物や派生物が思わぬ価値を生むことがある
- 作って終わり・作業して終わりではない
- 成果物をどう使うかを最初に定める必要がある
- 様々なパターンにわけて解説が行われたわけですが,途中からどうにもわからなくなる.「開発ベンダが成果物を横展開したい場合」などはあまり現実的ではないように思う
- 「存在しない顔を生成する」と謳うベンチャーが昨今多いが,実在の人物 A に似た顔があったとしても A はプライバシーや肖像権を主張できないのか,という質問がしたくて手を挙げるも司会者に無視された
継続的改善をし続けるための機械学習基盤の課題
- typical steps for machine learning project
- データが振る舞いを決めるため確率的にエラーを抑えることしかできない
- AUC/loss が改善しても本当にコンバージョンが改善するのか
- またそれは別の話ではないのか
- 確率的な挙動をするため変更の影響範囲を事前に予見できない
- Same code, CI passed, but prediction fails
- 大人の声で学習したモデルが若者の間で流行るも精度が劣化
- 工場の画像検査システムが光の条件が変化して破綻
- 検索ランキングが新規要素出現で性能が劣化
- (コンセプトドリフトではないと思う)
- (そもそも未知の状態をどこまで想定するかでは?)
- (「猫を電子レンジに入れるな」という但し書きをどこまで機械学習領域で行うのか?)
- チームをまたいで頑張ろう
- 後半はツールの紹介が多くてどうにも散漫に感じた
日本におけるデータサイエンスの現状と今後
Synthesizing Tabular Data using Generative Adversarial Networks (preprint) 読んだ
[1811.11264] Synthesizing Tabular Data using Generative Adversarial Networks]
GAN を使って表形式のデータを生成する論文は既に読んだわけですが,その発展形. 著者らによる実装も公開されており(DAI-Lab/TGAN: Generative adversarial training for synthesizing tabular data),実装を試した人もいる(テーブルデータ向けのGAN(TGAN)で、titanicのデータを増やす - u++の備忘録).
前述した tableGAN との違いは CNN を用いずに LSTM を用いていること,交差エントロピーを用いるのではなく KL divergence を使って周辺分布を学習していることの二点.
データ変換
データが 個の連続値の変数
と
個の離散値の変数
で構成されているとし,各行の各列についてそれぞれが連続値の変数なのか,離散値の変数なのかを区別して話を進める.
連続値の変数について
多くの場合連続値の変数は多峰 (multimodal) である.なのでそのまま表現せず,次のような手続きを踏む.
に変換する
- それぞれの変数について混合数
のGMM (Gaussian Mixture Model) を学習し,平均
および標準偏差
を得る
番目の変数の
列目の値
が GMM の各要素から得られる確率
を得る
を
とする.この時
である.その後
を
] に clip する
一言で言えば連続値の変数を 個の正規分布でクラスタリングし,一番当てはまりが良い分布に関する情報を持つ.論文では
とし,もし単峰の変数だったとしても
個の正規分布に対する重みがゼロになるから構わないとしている.この手続きの結果,連続値の変数
を
と
の
次元で表現する.
離散値の変数について
列目の離散値の全要素を
として離散値
を one-hot encoding して
とする
の各次元
に
なノイズを加える
を確率に正規化する
これら二種類の処理により, 次元のデータは
次元に変換される.
また,これから説明する GAN は上記の を生成するわけですが,本来の値に戻すには次のように変換すればいい.
- 連続値
- 離散値
生成
Generator には LSTM を使う.LSTM を使う理由は we use LSTM with attention in order to generate data column by column.
としか書かれていないが,気持ちを汲み取ると各変数間の相関などを陽に考慮したいからだと思う.
LSTM の出力を として hidden vector
を求め,更に
として各変数を出力する.その後,
ステップの LSTM に
を渡す.連続値の場合は
を得,次に
を得る.また,離散値の場合は
ステップにはそのまま渡さずに
] として渡す(
は
次元の embedding).
Discriminator には mini-batch discrimination vector 入りの MLP を用いる(Generator が LSTM なのだから Discriminator も LSTM で良かったのではないか).
通常の GAN の損失関数に加え, Generator 側の損失関数について連続値変数 に関する KL divergence
と離散値の変数そのものの KL divergence
を追加することで学習が安定するらしい.
実験
評価は三種類.
- 学習を生成したデータ,予測対象を元データとした時にどの程度精度を保つことができるかの Machine learning efficacy
- 前回の論文で model compatibility と呼んでいたもの
- 「変数間の相関が保存されているか」の検証として,連続変数を離散化して変数間の normalized mutual information を計算し描画
- 「真のデータにどれほど近いか」の検証として,学習データとテストデータまたは生成データ全対の距離のヒストグラムを描画