2019-03-27

「機械学習のための特徴量エンジニアリング」を読んだ

読んだので感想を書きます。ホクソエムの皆様による翻訳です。

機械学習のための特徴量エンジニアリング
――その原理とPythonによる実践

Alice Zheng (著), Amanda Casari (著), 株式会社ホクソエム (翻訳)

電子版は O'reilly Japanのサイトで購入できます。

感想

あたりまえの事をあたりまえにやれるレベルまでスッと引き上げてくれる感じ。画像データの章は飛ばして読んだのですが、ScailngやOne-Hot-Encodingといった頻出テクニックは一通り書いてあるので、これから機械学習やるという人には良さそう。手法の紹介だけでなく、One-Hot-Encodingは冗長表現なので係数が一意に定まらなくなる話やリーク(leakage)の話があるのは親切。

文章による解説とPythonコードが併記されているのは嬉しい。そして原著のコードで非効率な所は容赦なく書き換えているのはホクソエム陣の意気込みを感じた。GitHubにnotebookが公開されているので、コードはこちらが読み易い。PandasでNew Line Delimited JSONフォーマットが読める事や、列の一致していないDataFrame同士をconcatして縦に積めるのは知らなかった。

9章のレコメンドアルゴリズムを題材に特徴量エンジニアリングを実践する構成は面白い、しかしコードが本の終盤になるにつれ雑になり、意図を読み取るのに苦労する条件式が頻発するのはなんだかなーと。あと numpy.array のデータサイズを求めるのに getsizeof を使うのは間違っているような。

# データ型を変えるとそれぞれのデータサイズがどのくらい変わるか確認する
>>> print('Our pandas Series, in bytes: ', getsizeof(fos_features))
>>> print('Our hashed numpy array, in bytes: ', getsizeof(X_fos))
Our pandas Series, in bytes:  2530632380
Our hashed numpy array, in bytes:  112

型の変更により、データがずっと小さくなったことがわかります。

抜粋:: Alice Zheng  “機械学習のための特徴量エンジニアリング”。 iBooks
疎行列だとしても非ゼロ要素が112個以上あるから112バイトにはならないし、numpyのIssueを見るとnumpy.arrayは getsizeof での呼び出しをサポートしていない雰囲気がある。手元で実行すると以下の通り。


正誤表は見つからず。

最後に

途中で不覚にも笑ってしまいました。
“[†8] 訳注: 日本にもTedのような人がいます。タカヤナギ=サンです。彼はデータサイエンスの走る百科事典です。そして業界イベントで頻繁に講演をしていて、日本酒や素敵な人が好きです。 彼に日本酒を買って話してかけてみて下さい。後悔しないと思いますが、彼が泥酔している時には後悔するかもしれません。”

抜粋:: Alice Zheng  “機械学習のための特徴量エンジニアリング”。 iBooks
そして9章のコードを手元のマシンで動かすとメモリが足りなくてJupyter Notebookのカーネルが落ちてしまうため、メモリ増設の機運が高まりました。現在は32GByteのメモリを積んでるのですが、どれだけあれば足りるのだろう……

このエントリーをはてなブックマークに追加

2019-03-16

オペレーションズ・リサーチ学会の研究発表会に行ってきた

近くで開催していたので聴講に。
何故このタイミングでORの学会かと言えば、広告配信サービスの現場でエンジニアやってると因果推論も機械学習も組合せ最適化もやらなきゃいけない状態で。最近だと特に最適化に時間を多く使っているのでリサーチの動向を見たくて参加してきた。ちなみにORの事は良く知らないので滅茶苦茶な事を書いているかもしれない。

全体の感想

招待公演はどれも興味深く、製造・インフラ・輸送業と共に進歩してきたORの歴史の厚みを感じた。カーマーカー法が発表されてから主双対内点法へ至る話や演算子オーバーロード方式の自動微分が最適化ソフトウェアに与えたインパクトといった自分でも知ってる様な伝説級のエピソードについて当事者から聴けたのはわくわくしたし貴重な体験だった。

一方で会場の人の少なさは引っかかったし、学会の会員数は減り続けているとの事。JSAIの全国大会や同日開催だったNLP(言語処理学会)と比較すると勢いの無さは否めないだろう。ORは現実のモノ・ヒトを効率良く動かし配置する事を目指す学問であるため、国の衰退・製造業の衰退の影響をもろに受けているのかなと想像した。同時に「インフラの間引き計画」や「需要が減り続ける設定においてパフォーマンスが良い配置計画」は衰退と上手く付きあう研究なので価値があるなと。

自分の周りだと「機械学習案件の皮を被ったOR案件」という言葉があり、必要なのは機械学習じゃなくて待ち行列理論による最適化だったという話も聞く。企業のデータ活用が進む段階、データ分析基盤とBIツールが入ってさて次に何ができるか、というタイミングで流行りの機械学習に飛びついたのだと予想できるが、最適化は今後も実務で必要。機械学習で何かを予測してそれで終りという事は少なく、後続にシステムの自動最適化が待っているのが殆どだろう。なので研究者は減るが実務者はそこそこ増えるんじゃないかと思っている。

面白かった発表いくつか

閲覧数列の順序関係を考慮した商品選択確率の推定
ネットサービスにおけるユーザーの閲覧履歴 (リーセンシーとフリクエンシー) のみによる予測。広告でも機械学習で予測しようにも素性が殆どないケースはあるので閲覧履歴を表現力のある状態で使うのは上手いと思った。他の学習モデルとStackingすると強そう。ECサイトTmallのデータが公開されていて実験に使えるのは知らなかった、便利。

非羨望性を考慮した被覆制約付き複数財市場の価格決定
複数財オークション。広告の広告表示権利の取引にも使えるプロトコルの提案で売り手の利得を最大化する。広告表示権利のオークションだと、オークショナーは売り手(パブリッシャ)の味方なのでアリだと思う。
非羨望性にピンとこなかったので質問したら昔からある制約との事。複数財オークションの事は全然調べた事がなかったので勉強になった。


このエントリーをはてなブックマークに追加