10年近く前にデータサイエンスの面接において知っておくべき21のQ&A(日本語訳まとめぺーじ)という元々KDnuggetsの記事を和訳許可をもらって書いていたものがいまだにたまに読まれているというのが通知で分かりました。
10年の間に私自身も数々のデータサイエンティスト面接を行なってきました。
今回はそんな私がデータサイエンスの技術チェックで使っていた面接質問をいくつか紹介し、引用を交えつつ、私自身の経験に基づいて書かせていただきたいなと思いました。(最近、私は技術面接自体を他のメンバーに任せているため、ここに記載した面接内容を予習したからといって弊社の面接を突破できる保証はございません。悪しからず。)
ツリー系のモデルと線形系のモデルでそれぞれ欠損値を埋める時に、一般的にどういう手法を用いるのか、それぞれの違いと、その違いはどうして生まれるのかを教えてください。
この質問の意図は、アルゴリズムごとの前処理の違いを認識しているか、そしてアルゴリズム一つに対する興味の深さを確認することです。今の時代、アルゴリズムのロジックを完璧に理解している必要はありませんが、データサイエンティストとして成長する上で探求心は重要だと思っており、自身が使う道具の古典的な情報を全く知らない人は伸び悩む傾向があると考えているため、このような質問をしています。私の学生時代の指導教官が「まずは古典」と繰り返し言っていた教えが、今も私の中に残っているせいかもしれません。
顧客ターゲティングのモデルを構築した時に、検証精度では良い感じのAUCが出ており、過学習もしていないように感じました。ただ、本番環境では予測値と実測値が大幅にずれてしまっていました。どうしてでしょうか。最大5回まで質問を受け付けます。
この質問を出す時には、裏でいくつかの正解パターン(パーソン・ピリオド・データにおけるパーティション方法、ダウンサンプリングからのキャリブレーション忘れ、Training-Serving Skew問題、etc)を私の中で決めておき、質問を繰り返して正解に辿り着けるかを確認しています。限られた質問回数の中で、いかに核心に迫る質問を効果的に投げかけ、選択肢を絞り込んでいくかが重要です。これは、モデル構築時のみならず、運用時のスキルも測る上で有効な手法です。機械学習モデルは構築して終わりではなく、継続的に運用し、精度を維持していくことが求められます。
あなたの一番好きなライブラリやアルゴリズム、指標など、なんでも良いので一つ選んで、それを選んだ理由を教えてください。
昔、知り合いがある面接で聞かれた「最も好きな数式」という質問を気に入ったので、それをアレンジしたものです。ちなみに、サポートエンジニアの面接では、この派生として「最も好きなLinuxコマンド」という質問をしていました。どんなものを選んでも良いのですが、「好き」と選んだテクノロジーをどこまで語れるかを見ています。また、知らない人への説明力も確認しています。どうしてもデータサイエンティストは技術に深く入り込んでしまいがちですが、ビジネスで利用してもらわなければ価値はないため、そのコミュニケーション能力を見ています。
二値分類の時に、LoglossとAUCを最適化指標に利用する時のメリット・デメリットについて教えてください。
二値分類問題はデータサイエンスの予測AI課題の7割くらいを占めていると思っています。その中で、最適化指標をどうするのか、どうしてそれを選ぶのかを知っているかどうかは非常に重要です。評価指標を知らずにモデルを作って「良いものができました」と言う人は、データサイエンティストとは言えません。その中で、基礎的な指標は最低限押さえておいてほしいという視点になります。私が大好きなFVE Binomialを理解していれば加点します。
テキストデータの前処理が面倒で、テキストの長さだけを特徴量に入れていました。モデルへの寄与度は高かったのですが、テキストが長くなると精度のばらつきが目立ちました。どうしてでしょう。
この質問に関しては一例ですが、私が過去に経験した面白い予測値と実測値の乖離の仕方を具体的に挙げ、その原因を推測させる問題を出していました。他のパターンとして、「Tweedie Devianceを最適化指標に利用したプロジェクトにおいて、ランダムパーティションして交差検定したのに、交差検定とホールドアウトで何らかの一様な上振れが起きましたが、どうしてでしょう」とか、「LLMでシステムプロンプトを日本語で書いていたのに、出力は日本語になってしまいましたが、どうしてでしょう」といった具合です。AI・機械学習がどのように動くかという構造を捉えていれば難しくありませんが、コードを暗記しているだけのタイプだと、イレギュラーな動きをした時に弱かったりします。ただの勘ではなく、構造的に推測できているかを見ています。もちろん、当時の原因と同じものを言い当てられたら加点していました。
いかがでしょうか。データサイエンティストの面接受けるという方だけでなく、データサイエンティストの面接をするという人もどんな技術的な質問をしたらいいかわからないということはよく聞くので少しでも参考になれば幸いです。