Yahoo検索関連性エンジニア面接体験記:セマンティック検索・ベクトル検索・ランキングの完全評価

AI検索著者: BeautyResume チーム

2年の検索アルゴリズム経験、Yahoo検索関連性エンジニア3次面接の詳細な振り返り、転置インデックス、セマンティック検索、ベクトル検索(ANN)、ランキングモデル、ビジネス理解を網羅

背景紹介

まず私の状況から。学部はソフトウェアエンジニアリング、修士は情報検索方向、卒業後は検索エンジン企業で2年間検索アルゴリズムエンジニアとして働き、主に関連性ランキングとセマンティック検索を担当してきました。Yahoo Japanは検索関連性チームの技術力が強く、特に日本語検索には独自の技術的課題が多いので、ぜひ挑戦してみたいと思いました。

応募したのはYahoo Japanの検索関連性エンジニアポジションで、勤務地は東京。面接プロセス全体で約2週間、3回の技術面接で、ペースは速めでした。Yahooの面接は実践重視で、多くの問題が実際のビジネスシナリオを中心に展開され、純粋な理論ではありませんでした。以下、詳細に振り返ります。

面接プロセスの振り返り

一次面接:情報検索+転置インデックス

一次面接の面接官は非常に実務的なエンジニアで、最初から直接的な質問でした。

最初の質問:転置インデックスの原理と構築プロセスは?これは非常に馴染みのある領域で、文書のトークン化、term辞書の構築、ポスティングリストの組織化、スキップリストによるマージ加速まで詳細に説明しました。面接官は転置インデックスの圧縮方法について追問し、VByteエンコーディング、Roaring Bitmap、SIMD加速を挙げました。

次に検索モデルについて:BM25の原理は?TF-IDFとの違いは?BM25はTF-IDFに文書長正規化とTF飽和度制限を追加したものだと説明しました。数式ではk1がTF飽和度を制御し、bが長さ正規化の強さを制御します。面接官はBM25のパラメータの調整方法を追問し、通常k1は1.2-2.0の間、bは0.75程度で、検証セットでグリッドサーチにより最適化できると答えました。

より深い質問:検索関連性はどう評価しますか?オフライン評価(DCG/NDCG、MRR、MAP)とオンライン評価(クリック率、満足度、A/Bテスト)について話しました。面接官はNDCGの計算方法を追問し、gain、cumulative gain、discounted cumulative gain、正規化の過程を詳細に説明しました。

システム設計問題:ニアリアルタイムのインデックス更新戦略を設計してください。デュアルバッファ戦略——メインインデックス(全量)+リアルタイムインデックス(増分)を説明しました。新規文書はまずリアルタイムインデックスに書き込まれ、定期的にメインインデックスにマージされます。面接官はマージ戦略について追問し、セグメントマージと文書削除のマーキング方式に触れました。

一次面接は約50分で、面接官は「基礎がしっかりしており、検索への理解が深い」と言い、二次面接の準備をするように伝えました。

二次面接:セマンティック検索+ベクトル検索(ANN)

二次面接の面接官は検索チームの技術的中核メンバーと思われ、質問はより最先端に偏っていました。

まずセマンティック検索について:密検索(Dense Retrieval)と疎検索(Sparse Retrieval)の違いは?疎検索(BM25、QL)は語彙マッチングに基づき、ロングテールクエリで効果が低い;密検索(DPR、ColBERT)は意味ベクトルに基づき、語彙不一致問題を処理できると説明しました。面接官はDPRの訓練方法について追問し、in-batch negativesやhard negativesで対比学習を行い、クエリと文書をそれぞれエンコーダに通してベクトルを取得し、コサイン類似度でランキングすると答えました。

次にベクトル検索に焦点を当てました:ANN(近似最近傍)検索にはどのような方法がありますか?いくつかのカテゴリを詳細に説明しました:ツリーベース(Annoy、KD-Tree)、ハッシュベース(LSH)、量子化ベース(PQ、OPQ、IVF-PQ)、グラフベース(HNSW、NSW)。面接官はHNSWの原理について追問し、多層ナビゲーブルスモールワールドグラフを構築し、検索時に最上位層から下位層へと進み、各層で貪欲検索を行い、効率と精度のバランスを取ると説明しました。面接官はHNSWとIVF-PQの比較も尋ね、HNSWは再現率が高いがメモリ使用量が大きく、IVF-PQはメモリフレンドリーだがnprobeパラメータの調整が必要だと答えました。

システム設計問題:億級文書のベクトル検索システムを設計してください。P99レイテンシ<50ms。いくつかの重要な設計を挙げました:量子化圧縮(OPQ+PQでベクトルを768次元から数十バイトに圧縮)、シャーディング(ビジネス別にシャードし、単一シャードのデータ量を削減)、キャッシュ(ホットクエリキャッシュ)、多段階検索(粗いフィルタリング→精密ランキング)。面接官は量子化が再現率に与える影響について追問し、PQ圧縮後は通常再現率が3-5%低下するが、リランキングで補完できると答えました。

より新しい方向について:大規模モデルが検索に与える影響は?いくつかの側面について話しました:クエリ理解(意図認識、クエリ書き換え)、生成的検索(直接文書IDを生成)、RAG(検索拡張生成)、LLMによるリランキング。面接官は生成的検索に興味を示し、DSIとGENREのアプローチについて追問しました。

二次面接は約60分で、非常に収穫のある議論ができました。

三次面接:ランキングモデル+プロジェクト深掘り

三次面接は検索チームのリーダーで、主にランキングモデルとプロジェクトについて話しました。

まずランキングモデルについて:検索ランキングは一般的にどの段階に分かれますか?検索(マルチチャンセルコール)、プレランキング(軽量モデルで高速スコアリング)、ランキング(複雑モデルで正確な順序付け)、リランキング(ビジネスルール+多様性)と説明しました。面接官はプレランキングとランキングのモデル選択について追問し、プレランキングは通常デュアルタワーモデル(高速だが相互作用が浅い)、ランキングはクロスモデル(遅いが相互作用が深い)を使うと答えました。

次にランキングモデルについて:DeepFM、DCN、DINの違いは?DeepFMはFM+DNNの並列構造で、自動的に特徴交差を学習;DCNはCross Networkで明示的に有界次特徴交差をモデリング;DINは注意機構でユーザー行動系列を適応的に集約すると説明しました。面接官は特徴交差がなぜ重要かを追問し、手動での交差特徴構築はコストが高く見落としがちで、自動交差は暗黙的な組み合わせを発見できると答えました。

プロジェクトの深掘り:検索ランキングプロジェクトで、コールドスタートとロングテールクエリをどう処理していますか?コールドスタートについては、新規アイテムはコンテンツ特徴(タイトル、カテゴリ、属性)でembeddingを作成し、新規ユーザーは人口統計学的特徴と短期行動を使用;ロングテールクエリについては、クエリ書き換え(同義語拡張、スペル修正)、意味マッチング(密検索によるフォールバック)、マルチタスク学習(共有ボトム表現)を用いると述べました。面接官はクエリ書き換えの方法について追問し、seq2seqモデルやLLMで書き換え候補を生成し、クリックログでフィルタリングすると答えました。

ビジネス問題:エンタープライズ検索と一般的なウェブ検索の違いは何ですか?いくつかの違いを挙げました:エンタープライズ検索にはドメイン固有の語彙、アクセス制御要件、構造化データ統合のニーズがあり、クエリはより具体的だが整形されていないことが多いと述べました。面接官はこの分析を認めました。

三次面接は約55分で、面接官は最後に「素晴らしい分析だ」と言い、HR面接を待つように伝えました。

出題まとめ

1. 転置インデックスの原理と構築プロセスは?

2. BM25の原理は?TF-IDFとの違いは?

3. 検索関連性はどう評価するか?NDCGの計算方法は?

4. ニアリアルタイムのインデックス更新戦略を設計してください。

5. 密検索と疎検索の違いは?

6. DPRの訓練方法は?

7. ANN検索にはどのような方法があるか?HNSWの原理は?

8. 億級文書のベクトル検索システムを設計してください。

9. 大規模モデルが検索に与える影響は?

10. 検索ランキングはどの段階に分かれるか?

11. DeepFM、DCN、DINの違いは?

12. コールドスタートとロングテールクエリをどう処理するか?

13. エンタープライズ検索と一般検索の違いは?

心得とアドバイス

1. 検索基礎が核心:転置インデックス、BM25、NDCG——これらは検索アルゴリズムの礎石であり、面接で必ず聞かれるため、完全にマスターする必要があります。

2. ベクトル検索が重点:セマンティック検索とベクトル検索は検索方向のホットトピックです。HNSW、PQなどの方法の原理とエンジニアリング実装を把握する必要があります。

3. システム設計は実践的に:Yahooの面接は実践重視です。システム設計問題では、レイテンシ、メモリ、再現率などのエンジニアリング指標を考慮し、アルゴリズムだけでなく実装も考える必要があります。

4. ランキングモデルを深く:DeepFM、DCN、DIN——名前を知っているだけでなく、特徴交差メカニズムと適用シナリオを理解しましょう。

5. ビジネスの違いを理解:異なる企業の検索には異なる技術的課題があります。面接前にターゲット企業のビジネス特性を必ず理解しましょう。

FAQ

Q:検索アルゴリズムポジションにはどのような背景が必要ですか?
A:情報検索の基礎+機械学習+エンジニアリング能力。検索はアルゴリズムとエンジニアリングの結合体であり、純粋なアルゴリズムやエンジニアリングだけでは不十分です。

Q:検索経験なしでどう転職するか?
A:まず情報検索の古典的教科書(ManningのIR本)を学び、その後検索関連のプロジェクトをいくつか作って練習するのが良いでしょう。

Q:Yahoo検索の技術スタックは?
A:Javaバックエンド、Pythonアルゴリズム、Elasticsearchで基本検索、独自ベクトル検索エンジン、TensorFlow/PyTorchでモデル訓練。

Q:面接の難易度は?
A:中上程度。一次は基礎、二次は最先端とシステム設計、三次はビジネス理解とプロジェクト深掘り。

Q:検索アルゴリズムのキャリア展望は?
A:非常に良い。大規模モデル時代に検索はパラダイムシフトを経験しており、RAG、生成的検索など新しい方向に多くの機会があります。

#Search Algorithm#Semantic Search#Vector Search#ANN#排序 Models#Meituan