2024.12.19
システムの穴を運用でカバーしようとしてミス多発… バグが大量発生、決算が合わない状態から業務効率化を実現するまで
提供:株式会社リクルートホールディングス
リンクをコピー
記事をブックマーク
Owen Zhang氏:残りの時間ですけれども、私が参加したコンペのいくつかの例をご紹介します。どういうものがうまくいくかというアイデアが得られるのではないかと思います。
新しくてすばらしいアイデアを出すには、それに伴って10〜100のアイデアも出てくるということです。それらすべてのアイデアがすばらしいということではありません。
すべての成功には、惨憺たる失敗がたくさんあるということで、私のやっていることのすべてが成功するわけではないということです。先ほど言いましたけれども、(成功の要因には)運も大きいということであります。
反対に、多くのアイデアはまったく使えないということです。データセットを見て、まったくアイデアが出ないときもあります。どうすればいいか全くわからない。これは不可欠ですけれども、データセットが新しいもの、あるいはリレーションが正しくされるということが重要です。
第3に、いいアイデアでリレーションがよくても、時にはほかの参加者があまりにも先に進んでいるので対応できないということもあります。これは基本であります。
どういう理由でうまくいかなかったかということでありますけれども、これはうまくいった例です。
これはAmazonが提出したユーザーアクセスの予測であります。見てみると、データポイントが非常に多い。商品のほうから特定のリソースに対してアクセスを許可するか却下するかということであります。
ということで、Resource ID、Mgr ID、User ID、それからDept IDというようなかたちで、さまざまな特徴があるということでございます。
多くのフィーチャはカテゴリであるということで、数値値ではないということです。A〜Zというような値ということになります。
これらのフィーチャーは、アルゴリズムにうまくフィットしないといけません。その中で、それらを非数値フィーチャーを数値として表すかという、よくある大きな課題であります。ということで、フィーチャーエンジニアリングの約50パーセントはそういう課題であります。
ということで、カテゴリフィーチャーで複数の分類がある。それを、各レベルでいくつのデータポイントがあるかというようなかたちで数値化することもできますけれども、あるいは100、500というようなかたちで。もう1つできるのは、あるいは各フィーチャーのレベルを平均化するということであります。
そしてすべてのカテゴリのフィーチャーを数値化したあとに、さまざまなことができます。ということで、これらのアルゴリズムすべて数値化のインプットとして取り込むことができます。
もう1つ興味深い点は、すべてのモデルのアルゴリズムが使える、そして最終的なアンサンブルでは改善に繋がるということになります。このモデルに関しましては、ご興味があれば、こちらのURLにアクセスしていただければと思います。
このカテゴリフィーチャーでございますけれども、フィーチャーエンジニアリングの1つの難しさがここにあります。平均値、グループに1,000ユーザーがいます。
Aを見たときに必ず75パーセントのアクセスを可能にするチャンスがあると思います。これは比較的簡単なアクションです。
しかし平均値を使うと、そういうことになってしまいます。これを防ぐために何かしなければいけないと思います。3つのステップがあります。
レスポンスの平均とありますけれども、特定のrowだけを使っていくと思います。そして、そのインスタンスが少ない場合は、ローレスポンスのところでありますけれども、そのrowというものを選択していきます。
しかし、そのデータの信憑性というものが1パーセントあれば、それにかけていくということであります。
まったくデータがないところから大量のデータがあるという移行がスムーズにできると思います。
最後の問題になりますけれども、小さな任意のノイズを当てはめていくということであります。人口的なノイズを追加することによってモデルの改善に繋がることがあります。ということで、このようなモデルを使います。
すべてのrowを使う必要はありません。Amazonに最も重要なのはフィーチャーを数値化するということになります。
もう1つは、保険会社がスポンサードしたコンペです。ここで予測したいのは、ユーザーが保険を購入するときに、どのオプションを選んでいるかということです。いろいろなオプションがあるわけですね。上限があったり、控除対象がどのぐらいであったり、そういうのがいろいろあります。
7つのターゲットを設けました。それぞれのターゲットは相関関係があります。つまり、上限が高い場合、この人はこういう人だろうという相関があるわけです。
そして、これは非常に難しいコンペティションになりました。なぜかというと、評価の条件がオールオアナッシングだったんですね。7つのオプションすべてを完璧に正解しないとダメだったわけです。全部合わなければゼロスコアということでした。
それからもう1つ。ユーザーに対してA、B、C、D、E、F、Gというようなコンビネーションがあって、そして最後のE、F、Gになって、最後の選択を予測するということになったわけです。
実はこの最後の選択肢というのは、一番最後に引用されたモデルというのが大体53パーセント正解なわけですけれども、このコンペティションの最高のモデルは53.743正しかったわけですね。そしてこれはプラス47パーセント、私は3位になりました。0.44パーセント改善できたんですね。ちょっとミスりましたけれども。
こういった改善というのは確率的には極めて優位です。現実的に優位かどうかわかりませんけれども、統計的には非常に優位だと思います。
ここにはおもしろいチャレンジがありました。もちろんコーディングのチャレンジがありましたけれども、ここはなんとかレスポンスの変数の間の相関関係を補足しないといけない。そしてベースラインに負けないということが大事だったわけです。ベースラインのほうがいいという場合もあったりしますので。
そこで私たちがやったこと。相関関係のためにChained Dependent Modelをつくりました。まず、1つのターゲットをスタンドアローンでつくりました。仮にFとします。
Fというのが一番自由度の高いターゲットであるということなわけです。そしてFができたら、今度はFに対しての条件づけられたモデルをつくります。確率論をご存知の場合、Fという確率があって、Fの中でのGという確率です。
このようにF、G、B、A、C、E、Dというかたちでやっていた場合に、この相関をうまく表すモデルができたわけです。
ベースラインの問題はより簡単でした。その企業のベースラインがあれば……ちょっと採用してみたんですけどうまくいかなかったんで、別のモデルをつくったわけです。どんなデータポイントで、どのモデルがうまく機能するかというのを予測します。
そして信頼性が高くなければこの予測は実行しないということです。そしてこれらのデータに関してどんどんと改善をしていったということでした。
この予測コンペにおいては、ベースラインを失わず相関関係を求めるということでしたけれども、次の例です。
別の保険会社がスポンサードしたコンペですけれども、保険会社とテクノロジー会社という2種類の企業がコンペを主催したということで、100万のrowがあり、ロスは1000万、フィーチャーは300ということでした。
その中での有用なフィーチャーは30ぐらいしかないということだったので、いろいろと大変なコンペでした。
そして残念ながらほとんどのフィーチャーは匿名化されておりました。方針のフィーチャー、それからGeodemographics、天候と犯罪率がありました。
これを使ってよりrowの数を縮小していったわけですね。Policy Characteristics、これはその保険の内容の特徴なんですけども、これは残しました。
Geodemographicsからは1つのフィーチャー、気候からも1つのフィーチャーを抽出して、犯罪率に関してのフィーチャーは0ということにしました。
このコンペではフィーチャーの抽出よりも選択のほうが大事だったので、いろいろなモデルを作っていきました。全体では6つのモデルがありました。いろいろなフィーチャーをサブセット化して作っていきました。このコンペではフィーチャーの選択、圧縮が非常に重要な課題だったということになります。
最後の例です。こちらは昨年やった広告のクリック数に関するコンペですね。やはり21世紀の一番重要な課題になっていますね。クリック数をいかに集めるかということですけれども。
おもしろいデータがありました。テーブルは8つです。そして匿名化はほとんど行われていなかったので、それはとてもいいなと思ったんです。やっぱりフィーチャー名があるのはいいと思うんですね。
そして比較的大きなデータセットでしたので、4億ローということでした。またサーチにおいても1億ローということでありました。
私の観点から言うと、1つのノードでやっても、やはりビッグデータの場合には分散する必要があると思います。
Avitoというコンペでしたけれども、非常におもしろかったなと思います。とにかくデータが大きかったということ。それからかなり重要な構造が中に入ってたのでフィーチャーエンジニアリングが十分にできました。
大体時間の3分の2ぐらいをフィーチャーエンジニアリングにかけて、モデルのフィッティングを3分の1ぐらいの時間でやりました。
たくさんrowがありましたので、あんまりたくさんのモデルアルゴリズムを試せなかったんですね。最も人気があるeXgboostを唯一のモデルとして構築していきました。
それからデータセットがかなり大きいですね。何百万レベルですので、十分なデータポイントがありますので、オーバーフィテッィングがあまりない。かなり信頼性の高いものができたということでした。このコードはGitHub公開しております。
このコンペはフィーチャーエンジニアリングのコンペだったわけですね。ですからデータを見てどのぐらいフィーチャーをとれるかということだったわけです。いわゆる生のフィーチャー、データから直接出てくるもの、それから1日のいつ、あるいは曜日などに関わるもの、時間ベースのフィーチャーもあります。
またシーケンスベースのフィーチャーですね。何かクリックストリームがあったりとか映画視聴の履歴とか、そういったものの場合にはシーケンスベースのフィーチャー。
そして以前のレスポンスベースということですね。今までどのぐらいの広告をクリックしたか。なんでもクリックする人というのはいるんですよね。なんでもいいから連続クリックするみたいな人はいます。私はディスプレイ広告は絶対にクリックしませんので、どうしてあそこにお金をかけるのかはわからないんですけど。
またテキストベースのフィーチャーがあります。テキストがあった場合には必ずこれが採用できます。おもしろいカテゴリーフィーチャーとしては、カテゴリーフィーチャーを言葉のように結合するということです。そしてそこでテキストのいろんなことをかけていくということです。
テキストの近似性というのもあります。いわゆる検索ベースの広告というのがあります。この検索後の近似性と広告文の関係を見ていくということができます。
また単純なテキスト、何スペースあるか。また価格ベースのフィーチャーがあります。つまりこういったカテゴリーのものに関しての平均価格はどうなのか、あるいはそれに対してより高いのか低いのかというフィーチャーです。
そのほかにおもしろいのは、エントロピーベースのフィーチャーなどもあります。つまりその人の履歴がどのぐらい大量かどうか。
たとえば家電だけを見てる人がいるわけです。あるいは衣料を見たり本を見たり、とにかく特定なものに偏ってないような履歴の人もいます。
それから最後のものはグローバルレスポンスのフィーチャーを使っていくということですね。このようなフィーチャーエンジニアリングをやってこのコンペで闘っていたわけです。
おそらくほかのチームではいろんなアプローチ使われてると思いますけれども、本当にリッチなデータがあるときにはこんなふうにやっていくということですね。
最後に、データサイエンスのコンペティション 対 現実世界ということで話したいと思います。やっぱりモデルのインプリメンテーションだと思います。というのもインプリにまったく制約がないと本当に複雑なモデルをつくってしまいます。誰も実サービスで35 のコンポーネントモデルがあるような複雑なモデルというのはインプリメンテーションしたくないと思うのです。
2つ目、コンプレックスモデルのインプリが難しいということだけではなくて、それがうまくいかないというリスクがあります。我々が予測をするときにそこに仮定として、将来が過去と同じだと思ってしまうこと。それが必ずしも本当ではないということがあります。
我々が学んだ教訓としましては、例えばデータセットを入れると多くの人がインターネットでは、多分内部でモデルをつくってくるでしょう。データサイエンスの知識がなかったとしても内部のチームでつくってくるでしょう。
しかしながら直接それを実装する人はあまりいません。というのも複雑性を考えてないからです。じゃあ我々は何を学ぶのかというと、このコンペから学んだことというのは、データの問題を特定するいい方法があります。
要は理想的なモデルというのは一体どういうものなのか、どれだけの予測結果を内部のチームの方々と照らし合わせて作業出来ているか。
最後になりましたけれども、今日お話したことはすべてがテクニカルな部分でありました。でも、そのもっと上にはいろいろな要素があります。要は人と一緒に仕事をするということ。データサイエンスコンペティションというのは、人々の行動を変えていきます。
データサイエンティストとして、テクニカルなものだけではなくて、ほかの人とどのようにインタラクションを取れるかということも大事であります。
やはりデータサイエンティストとして優秀な人というのは、人間とのインタラクションもうまいということであります。どうもありがとうございました。
(会場拍手)
株式会社リクルートホールディングス
2024.12.20
日本の約10倍がん患者が殺到し、病院はキャパオーバー ジャパンハートが描く医療の未来と、カンボジアに新病院を作る理由
2024.12.19
12万通りの「資格の組み合わせ」の中で厳選された60の項目 532の資格を持つ林雄次氏の新刊『資格のかけ算』の見所
2024.12.16
32歳で成績最下位から1年でトップ営業になれた理由 売るテクニックよりも大事な「あり方」
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
PR | 2024.12.20
モンスター化したExcelが、ある日突然崩壊 昭和のガス工事会社を生まれ変わらせた、起死回生のノーコード活用術
2024.12.12
会議で発言しやすくなる「心理的安全性」を高めるには ファシリテーションがうまい人の3つの条件
2024.12.18
「社長以外みんな儲かる給与設計」にした理由 経営者たちが語る、優秀な人材集め・会社を発展させるためのヒント
2024.12.17
面接で「後輩を指導できなさそう」と思われる人の伝え方 歳を重ねるほど重視される経験の「ノウハウ化」
2024.12.13
ファシリテーターは「しゃべらないほうがいい」理由 入山章栄氏が語る、心理的安全性の高い場を作るポイント
2024.12.10
メールのラリー回数でわかる「評価されない人」の特徴 職場での評価を下げる行動5選
Climbers Startup JAPAN EXPO 2024 - 秋 -
2024.11.20 - 2024.11.21
『主体的なキャリア形成』を考える~資格のかけ算について〜
2024.12.07 - 2024.12.07
Startup CTO of the year 2024
2024.11.19 - 2024.11.19
社員の力を引き出す経営戦略〜ひとり一人が自ら成長する組織づくり〜
2024.11.20 - 2024.11.20
「確率思考」で未来を見通す 事業を成功に導く意思決定 ~エビデンス・ベースド・マーケティング思考の調査分析で事業に有効な予測手法とは~
2024.11.05 - 2024.11.05