Embedding 安定化で検索リランキングのCold start problemを解決:LINEバイトでの適用事例紹介
LINE ヤフーは、求人情報の頻繁な入れ替わりによるコールドスタート問題と Embedding 空間の非定常性を解決するため、Orthogonal Low Rank Embedding Stabilization を実装し、検索リランキングの精度を向上させた。
キーポイント
既存手法の課題:クエリ反映不足とコールドスタート
従来の Two-Tower Embedding は検索時のユーザー意図(例:駅近さ)を反映できず、また求人が月替わりで大量に更新されるため学習データが不足するコールドスタート問題が発生していた。
技術的課題:Embedding 空間の非定常性
Two-Tower モデルを定期的に再学習すると Embedding 空間が変動し、下流のリランキングモデルへの入力特徴量として利用する際に学習時と推論時のデータ不整合が生じる問題があった。
解決策:Embedding Stabilization の実装
RecSys '25 で発表された論文に基づき、前日の安定化済み Embedding に対してアライメントを行う後処理を適用し、日次でのモデル再学習時でも空間の連続性を保つことに成功した。
実装効果:リアルタイムかつ高精度なリランキング
専用リランキングモデルと組み合わせることで、検索画面特有の情報を活用しつつ、コールドスタート期間中の性能低下を抑制し、ユーザー体験を向上させた。
Embedding 安定化による Cold Start と空間ドリフトの解決
Two-tower モデルの再学習に伴う Embedding 空間の変化(非定常性)を、Low Rank SVD と Orthogonal Procrustes を用いた後処理で逐次的にアライメントし、コールドスタート問題や学習時・推論時のデータ不整合を克服しました。
検索クエリ情報の活用と KPI 向上
専用リランキングモデルの導入により駅近さなどの検索意図を反映可能になり、安定化された Embedding を特徴量として利用することで、サービス全体の売上を +6.5% 向上させる成果を得ました。
既存システムへの低負荷な実装
Two-tower モデル自体の変更を加えず、出力された Embedding に対する後処理として空間アライメントを行う手法を採用したため、既存の学習パイプラインやモデル構造を大きく変更せずに導入が容易でした。
重要な引用
Embedding にはクエリの情報は含まれておらず、ユーザーが入力した意図を十分に反映できていませんでした
学習のたびに embedding 空間が変わってしまいます。そのため、下流のタスクで embedding を特徴量として利用すると、学習時と推論時のデータの不整合が生じてしまいます
各日の embedding を前日の安定化済み embedding に対してアライメントすることで、embedding 空間を逐次的に安定化します
「安定化を導入すると、ユーザー側・アイテム側ともに 1 週間後でも類似度 0.88 程度を維持できることを確認しました。」
「既存の学習パイプラインやモデル構造を大きく変更する必要がなく、導入が容易です。この既存システムへの影響の低さは、実際の機械学習システムを運用する上で非常に重要なポイントです。」
影響分析・編集コメントを表示
影響分析
この事例は、実運用環境における「コールドスタート」と「特徴量分布のドリフト(非定常性)」という二大課題を、既存のアーキテクチャを大きく変更せず後処理で解決した点で非常に示唆に富んでいます。特に、月次でデータがリセットされるサービスにおいて、リアルタイム推論の安定性を担保するための具体的な手法として、業界全体で応用可能な知見を提供しています。
編集コメント
求人情報のようにデータが頻繁に更新されるサービスにおいて、モデルの再学習による特徴量分布の変化をどう扱うかは重要な課題です。後処理で空間を安定化させるというシンプルなアプローチは、実システムへの適用コストを抑えつつ効果を得られる優れた事例と言えます。
こんにちは。LINE ヤフーで機械学習プラットフォームを開発している木原健太と袁逸凡です。今回は、LINE バイトの検索リランキングにおいて直面していた cold start problem を、embedding の扱いを工夫することでシンプルに解決した事例をご紹介します。
LINE バイトはアルバイト求人を検索・応募できるサービスです。これまで私たちは、LINE バイトの検索結果一覧画面において、ユーザーの行動履歴を基に並び順をパーソナライズし、事業 KPI およびユーザー体験の向上を図ってきました。
検索は、ユーザーが指定したクエリに適合する候補を取得する retrieval stage と、その候補の上位を並び替えるリランキング stage の two-stage に分けられます。リクエストごとにユーザーのクエリが変わるという検索の性質上、事前にバッチで計算をしておくことは現実的ではありません。そのため、これらの処理はリアルタイムで行う必要があります。
このシステムや計算量の複雑さのため、これまでの LINE バイトの検索リランキングでは、別パイプラインのバッチで生成した user-to-item recommendation の two-tower embedding を転用し、cosine similarity 順に並び替えるというシンプルな方法を採用していました。

しかし、この手法にはいくつか改善の余地がありました。
まず、検索画面の情報を活用できていない点です。Embedding にはクエリの情報は含まれておらず、ユーザーが入力した意図を十分に反映できていませんでした。具体的には、駅を指定した際にも、駅からの近さは考慮されず、むしろ数百メートル歩く隣駅の求人が上位に来ることもありました。
また embedding は検索画面以外の情報も含みます。似ている求人のようなモジュールや、LINE 公式アカウントを通じたおすすめなど、あらゆる面での行動を含んでいるため、ユーザーの好みの傾向を捉えられる有用性はあるものの、検索画面ではさらに改善の余地がありました。
このような画面やモジュールごとの特性を活かすため、チームでは 専用のリランキングモデルを用いた two-stage 制の推薦 を推進しており、LINE バイトの検索でも同様に専用モデルの導入によるリアルタイムなリランキングを検討していました。

リランキングモデル導入の課題
専用リランキングモデルの導入に向けて実験を進めるなかで、以下の二つの課題に直面しました。
1. コールドスタート問題
LINEバイトで取り扱うアルバイト求人は、月初にその大部分が入れ替わります。そのため、検索リランキングのための十分な学習データが揃うまでの期間、モデルの性能が大幅に悪化するコールドスタート問題(cold start problem)が発生することがわかりました。
2. エンベディング空間の非定常性
上述の通り、エンベディングにはユーザーの好みの傾向が反映されているため、特徴量として活用することで、リランキングモデルの性能を大幅に向上させることがオフラインの実験で確認できました。しかし、これをオンライン、つまりリアルタイムで動作するシステムにするためには、依存するモデルの性質も考慮する必要があります。
一般的に、ツー・タワーマデル(two-tower model)は性能悪化を避けるため、定期的にランダムな重みからスクラッチで学習しますが、学習のたびにエンベディング空間が変わってしまいます。そのため、下流のタスクでエンベディングを特徴量として利用すると、学習時と推論時のデータの不整合が生じてしまいます。
アプローチ:エンベディング安定化
これらの問題を解決するために、私たちはエンベディングを後処理で安定化する手法を採用しました。ここからは、採用した論文の内容を詳細に解説したのち、LINEバイトにどのように適用したかを紹介します。
論文: Zielnicki & Hsiao. Orthogonal Low Rank Embedding Stabilization (RecSys '25)
基本アイデア
各日のエンベディングを、前日の安定化済みエンベディング(初日なら安定化せずにそのまま使います)に対してアライメントすることで、エンベディング空間を逐次的に安定化します。前日の変換済みエンベディングを次の日の基準として利用するため、特定の基準日を固定的に参照し続ける必要はありません。
これにより、日次でモデルを再学習しても、エンベディングの空間を連続的に保ち、時間をまたいで比較可能な特徴量(feature)として利用できます。
たとえば、昨日生成したエンベディング特徴量を、今日の特徴量で学習した下流モデルに入力しても問題なく扱えるようになります。その逆も同様です。つまり、エンベディング特徴量と下流モデルの更新タイミングを厳密に揃える必要がなくなり、モデルと特徴量のバージョン不整合を気にせずに運用できます。
手法
安定化の流れは、Low Rank SVD と Orthogonal Procrustes の二段階で構成されます。
Algorithm 1. Low Rank SVD
Low Rank SVD の作用は、各学習のエンベディング空間を、より標準化された低ランク表現へ変換することにあります。
Embedding の次元数を ee、アイテム数を tt、ユーザー数を ww (e<te < t, e<we < w) とすると、アイテムおよびユーザーの embedding を並べた行列はそれぞれ T∈Rt×e、W∈Rw×e と表せます。
Two-tower モデルでは、アイテム embedding とユーザー embedding の内積によってスコアを計算するため、スコア空間は TW⊤∈Rt×w という大きな行列になりますが、直接分解する代わりに Low Rank SVD (低ランク特異値分解) で T, W から効率的に変換行列 MT, MW を求めます。これを作用させることで、より標準化された低ランク表現 T′=TMT、W′=WMW を得ることができます。

Algorithm 2. Orthogonal Procrustes
次は、Orthogonal Procrustes (直交プロクリュステス) による空間アライメントです。
これは、当日の embedding を基準となる embedding (前日の安定化済み embedding) にできるだけ重ね合わせるための、直交変換を求める手法です。直交変換は空間を回転・反転させるだけなので、embedding の距離関係や内積構造を保ちやすいという特徴があります。これにより、two-tower モデルが持つスコア計算の性質を維持したまま、日々の embedding の空間を連続的に揃えることができます。

実装上の工夫
LINEバイトはデータ量が多いので、空間計算量を意識して実装する必要があります。今回は分散処理によるスケーラブルな計算が可能な Apache Spark でこのアルゴリズムを実装しました。
Low Rank SVD の効率化
元論文の Low Rank SVD では QR 分解を用いていましたが、必要なのは上三角行列 R のみであるため、計算を効率化するため Cholesky 分解で実装しました。手順は以下の通りです。
- Gramian Matrix G=A⊤A を算出
- G を Cholesky 分解して、QR の R を算出
上記の方法は QR と同値です。
- A=QR
Q: orthogonal column vectors (直交する列ベクトル)
- R: upper-triangular matrix (上三角行列)
- G=A⊤A=(QR)⊤QR=R⊤Q⊤QR=R⊤RG = A^\top A = (QR)^\top QR = R^\top Q^\top QR = R^\top RG = A^ op A = (QR)^ op QR = R^ op Q^ op QR = R^ op R
QQ は列直交行列、つまり Q⊤Q=IQ^\top Q = I となり、消去できます。
これで Cholesky 分解 (G=R⊤RG = R^\top RG = R^ op R) で求めた RR と、QR 分解の RR が一致することが証明され、より効率的に計算できるようになりました。
Orthogonal Procrustes の分散処理
- M=B⊤AM = B^\top AM = B^ op A を求める
ここの行列積は巨大なので、Spark による分散並列処理で算出
- MM を SVD 分解
MM は e×ee \times ee imes e の非常に小さい行列なので、直接 NumPy で計算しても大丈夫です。十分 1 ノードのメモリに収まります。
評価と考察
安定化の効果
安定化前は、任意の2日間で生成された embedding 間の相関は非常に弱く、ほぼ 0 に近い状態でした。

これに対し、安定化を導入すると、ユーザー側・アイテム側ともに 1 週間後でも類似度 0.88 程度を維持できることを確認しました。

さらに長期間の検証では、1 か月後でもベクトル類似度は 0.87 前後を維持していました。

これらの結果から、推論時に利用するデータが学習時のデータと完全一致しない場合でも、embedding 空間のドリフトによるモデル性能の大きな劣化を抑制できることが示唆されます。
オフライン評価
安定化前後の embedding を特徴量として学習したモデルを使い、click や conversion などの各種ユーザー行動を ground truth としてオフライン評価しました。Neural Network ベースの baseline モデルに、学習時と推論時で異なる日付に学習した two-tower embedding を直接特徴量として追加しています。
安定化前の embedding をモデルに追加すると、空間の不整合により nDCG は 1%〜5% 程度劣化しました。しかし、安定化した embedding を使うと、conversion nDCG は +9.0% 程度、click nDCG は +4.5% 程度それぞれ向上しました。
表。Embedding 安定化のオフライン評価結果
モデル click nDCG conversion nDCG
baseline 0.4898 0.4601
安定化前 0.4777 0.4540
安定化前 + 次元削減 0.4799 0.4533
安定化後 0.5120 0.5017
A/B テストによるオンライン評価
この安定化を行った embedding 特徴量、およびさらなる cold start problem(コールドスタート問題)対策を組み合わせたモデルを A/B テストで評価しました。結果として、検索画面単体での KPI には有意な改善が見られなかったものの、サービス全体では KPI が +4.7%、売上が +6.5% と、これまでの A/B テストの中でも大幅な向上を達成しました。
考察
A/B テストの結果、および two-tower embedding(2 塔型埋め込み)がサービス全体のユーザー行動を基に学習されていることを踏まえると、検索リランキングモデルが embedding 特徴量に含まれる「長期的なユーザーの嗜好」をうまく捉え、検索画面を起点としたその後のユーザー行動(回遊や他モジュールでの応募など)へ好影響を与えたと考えられます。
また当初リランキングモデルを適用した際に直面した cold start problem も、embedding 特徴量を加えた A/B テスト群では克服できていることがわかりました。
さらに本手法の大きなメリットは、two-tower モデル自体には変更を加えず、モデルが出力した embedding に対して後処理として空間アライメントを行う点にあります。つまり、既存の学習パイプラインやモデル構造を大きく変更する必要がなく、導入が容易です。この既存システムへの影響の低さは、実際の機械学習システムを運用する上で非常に重要なポイントです。

今後の展望
LINEバイトでは既存の求人掲載元に加え、新たな求人掲載元を増やす施策を進めており、求人情報の幅が拡大しています。このような動的な状況下でも、本手法が変わらず有用であることを引き続き検証していきたいです。
また、LINEヤフーの持つ多様なサービスで得たこのような知見を他のサービスでも活用できるように、全社的に使える機械学習基盤プラットフォームをさらに拡充し、ユーザー体験の向上に貢献していきたいです。この施策でも用いたリアルタイムなリランキングモデルはオンライン機械学習基盤の内製プロダクトを活用して構築しており、今後もこの基盤をさらに強化していく予定です。
Tech-Verse 2026 を開催します(6月29日)

この記事は、イベントの公式記事として公開されました。
Tech-Verse 2026 は、LINE ヤフーが開催する技術カンファレンスです。
最先端の挑戦や積み重ねてきた知識を共有します。
YouTube LIVE での配信をぜひご覧ください。
原文を表示
こんにちは。LINEヤフーで機械学習プラットフォームを開発している木原健太と袁逸凡です。今回は、LINEバイトの検索リランキングにおいて直面していた cold start problem を、embedding の扱いを工夫することでシンプルに解決した事例をご紹介します。
LINEバイトはアルバイト求人を検索・応募できるサービスです。これまで私たちは、LINEバイトの検索結果一覧画面において、ユーザーの行動履歴を基に並び順をパーソナライズし、事業KPIおよびユーザー体験の向上を図ってきました。
検索は、ユーザーが指定したクエリに適合する候補を取得する retrieval stage と、その候補の上位を並び替えるリランキング stage の two-stage に分けられます。リクエストごとにユーザーのクエリが変わるという検索の性質上、事前にバッチで計算をしておくことは現実的ではありません。そのため、これらの処理はリアルタイムで行う必要があります。
このシステムや計算量の複雑さのため、これまでのLINEバイトの検索リランキングでは、別パイプラインのバッチで生成した user-to-item recommendation の two-tower embedding を転用し、cosine similarity 順に並び替えるというシンプルな方法を採用していました。

しかし、この手法にはいくつか改善の余地がありました。
まず、検索画面の情報を活用できていない点です。Embedding にはクエリの情報は含まれておらず、ユーザーが入力した意図を十分に反映できていませんでした。具体的には、駅を指定した際にも、駅からの近さは考慮されず、むしろ数百メートル歩く隣駅の求人が上位に来ることもありました。
また embedding は検索画面以外の情報も含みます。似ている求人のようなモジュールや、LINE公式アカウントを通じたおすすめなど、あらゆる面での行動を含んでいるため、ユーザーの好みの傾向を捉えられる有用性はあるものの、検索画面ではさらに改善の余地がありました。
このような画面やモジュールごとの特性を活かすため、チームでは専用のリランキングモデルを用いた two-stage 制の推薦を推進しており、LINEバイトの検索でも同様に専用モデルの導入によるリアルタイムなリランキングを検討していました。

リランキングモデル導入の課題
専用リランキングモデルの導入に向けて実験を進めるなかで、以下の二つの課題に直面しました。
1. Cold start problem (コールドスタート問題)
LINEバイトで扱うアルバイト求人は、月初にその大部分が入れ替わります。そのため、検索リランキングのための十分な学習データが揃うまでの期間、モデルの性能が大幅に悪化するcold start problem が起こることがわかりました。
2. Embedding 空間の非定常性
上述の通り embedding にはユーザーの好みの傾向が反映されているため、特徴量として活用することで、リランキングモデルの性能を大幅に向上させることがオフラインの実験で確認できました。しかし、これをオンラインに、つまりリアルタイムで動くシステムにするためには、依存するモデルの性質も考慮する必要があります。
一般的に two-tower モデルは性能悪化を避けるため、定期的にランダムな重みからスクラッチで学習しますが、学習のたびに embedding 空間が変わってしまいます。そのため、下流のタスクで embedding を特徴量として利用すると、学習時と推論時のデータの不整合が生じてしまいます。
アプローチ:Embedding Stabilization
これらの問題を解決するために、私たちは embedding を後処理で安定化する手法を採用しました。ここからは、採用した論文の内容を詳細に解説したのち、LINEバイトにどのように適用したかを紹介します。
論文: Zielnicki & Hsiao. Orthogonal Low Rank Embedding Stabilization (RecSys '25)
基本アイデア
各日の embedding を前日の安定化済み embedding (初日なら安定化せずにそのまま使います) に対してアライメントすることで、embedding 空間を逐次的に安定化します。前日の変換済み embedding を次の日の基準として利用するため、特定の基準日を固定的に参照し続ける必要はありません。
これにより、日次でモデルを再学習しても、embedding の空間を連続的に保ち、時間をまたいで比較可能な feature として利用できます。
たとえば、昨日生成した embedding feature を、今日の feature で学習した下流モデルに入力しても問題なく扱えるようになります。その逆も同様です。つまり、embedding feature と下流モデルの更新タイミングを厳密に揃える必要がなくなり、モデルと feature のバージョン不整合を気にせずに運用できます。
手法
安定化の流れは、Low Rank SVD と Orthogonal Procrustes の二段階で構成されます。
Algorithm 1. Low Rank SVD
Low Rank SVD の作用は、各学習の embedding 空間を、より標準化された低ランク表現へ変換することにあります。
Embedding の次元数を ee, アイテム数を tt, ユーザー数を ww (e<te < t, e<we < w) とすると、アイテムおよびユーザー embedding を並べた matrix はそれぞれ T∈Rt×eT \in \mathbb{R}^{t \times e}, W∈Rw×eW \in \mathbb{R}^{w \times e} と表せます。
Two-tower モデルではアイテム embedding とユーザー embedding の内積によってスコアを計算するため、スコア空間は TW⊤∈Rt×wTW^\top \in \mathbb{R}^{t \times w} の大きな行列になりますが、直接分解する代わりに Low Rank SVD で TT, WW から効率的に変換行列 MTM_T, MWM_W を求めます。これを作用させることで、より標準化された低ランク表現 T′=TMTT' = T M_T, W′=WMWW' = W M_W を得ることができます。

Algorithm 2. Orthogonal Procrustes
次は、Orthogonal Procrustes による空間アライメントです。
これは、当日の embedding を基準となる embedding (前日の安定化済み embedding) にできるだけ重ね合わせるための、直交変換を求める手法です。直交変換は空間を回転・反転させるだけなので、embedding の距離関係や内積構造を保ちやすいという特徴があります。これにより、two-tower モデルが持つスコア計算の性質を維持したまま、日々の embedding の空間を連続的に揃えることができます。

実装上の工夫
LINEバイトはデータ量が多いので、空間計算量を意識して実装する必要があります。今回は分散処理によるスケーラブルな計算が可能な Apache Spark でこのアルゴリズムを実装しました。
Low Rank SVD の効率化
元論文の Low Rank SVD では QR 分解を用いていましたが、必要なのは上三角行列 RR のみであるため、計算を効率化するため Cholesky 分解で実装しました。手順は以下の通りです。
- Gramian Matrix G=A⊤AG = A^\top A を算出
- GG を Cholesky 分解して、QR の RR を算出
上記の方法は QR と同値です。
- A=QRA=QR
QQ: orthogonal column vectors (直交する列ベクトル)
- RR: upper-triangular matrix (上三角行列)
- G=A⊤A=(QR)⊤QR=R⊤Q⊤QR=R⊤RG = A^\top A = (QR)^\top QR = R^\top Q^\top QR = R^\top R
QQ は列直交行列、つまり Q⊤Q=IQ^\top Q = I となり、消去できます。
これで Cholesky 分解 (G=R⊤RG = R^\top R) で求めた RR と、QR 分解の RR が一致することが証明され、より効率的に計算できるようになりました。
Orthogonal Procrustes の分散処理
- M=B⊤AM = B^\top A を求める
ここの行列積は巨大なので、Sparkによる分散並列処理で算出
- MM を SVD 分解
MM は e×ee \times e の非常に小さい行列なので、直接 NumPy で計算しても大丈夫です。 十分 1 ノードのメモリに収まります。
評価と考察
安定化の効果
安定化前は、任意の2日間で生成された embedding 間の相関は非常に弱く、ほぼ 0 に近い状態でした。

これに対し、安定化を導入すると、ユーザー側・アイテム側ともに 1週間後でも類似度 0.88 程度を維持できることを確認しました。

さらに長期間の検証では、1か月後でもベクトル類似度は 0.87 前後を維持していました。

これらの結果から、推論時に利用するデータが学習時のデータと完全一致しない場合でも、embedding 空間のドリフトによるモデル性能の大きな劣化を抑制できることが示唆されます。
オフライン評価
安定化前後の embedding を特徴量として学習したモデルを使い、click や conversion などの各種ユーザー行動を ground truth としてオフライン評価しました。Neural Network ベースの baseline モデルに、学習時と推論時で異なる日付に学習した two-tower embedding を直接特徴量として追加しています。
安定化前の embedding をモデルに追加すると、空間の不整合により nDCG は 1%〜5% 程度劣化しました。しかし、安定化した embedding を使うと、conversion nDCG は +9.0% 程度、click nDCG は +4.5% 程度それぞれ向上しました。
表. Embedding 安定化のオフライン評価結果
モデルclick nDCGconversion nDCG
baseline0.48980.4601
安定化前0.47770.4540
安定化前 + 次元削減0.47990.4533
安定化後0.51200.5017
A/B テストによるオンライン評価
この安定化を行った embedding 特徴量、および、さらなる cold start problem 対策を組み合わせたモデルを A/B テストで評価しました。結果として、検索画面単体での KPI には有意な改善が見られなかったものの、サービス全体では KPI +4.7%、売上が +6.5% と、これまでの A/B テストの中でも大幅な向上を達成しました。
考察
A/B テストの結果、および two-tower embedding がサービス全体のユーザー行動を基に学習されていることを踏まえると、検索リランキングモデルが embedding 特徴量に含まれる「長期的なユーザーの嗜好」をうまく捉え、検索画面を起点としたその後のユーザー行動 (回遊や他モジュールでの応募など) へ好影響を与えたと考えられます。
また当初リランキングモデルを適用した際に直面した cold start problem も、embedding 特徴量を加えた A/B テスト群では克服できていることがわかりました。
さらに本手法の大きなメリットは、two-tower モデル自体には変更を加えず、モデルが出力した embedding に対して後処理として空間アライメントを行う点にあります。つまり、既存の学習パイプラインやモデル構造を大きく変更する必要がなく、導入が容易です。この既存システムへの影響の低さは、実際の機械学習システムを運用する上で非常に重要なポイントです。

今後の展望
LINEバイトでは既存の求人掲載元に加え、新たな求人掲載元を増やす施策を進めており、求人情報の幅が拡大しています。このような動的な状況下でも、本手法が変わらず有用であることを引き続き検証していきたいです。
また、LINEヤフーの持つ多様なサービスで得たこのような知見を他のサービスでも活用できるように、全社的に使える機械学習基盤プラットフォームをさらに拡充し、ユーザー体験の向上に貢献していきたいです。この施策でも用いたリアルタイムなリランキングモデルはオンライン機械学習基盤の内製プロダクトを活用して構築しており、今後もこの基盤をさらに強化していく予定です。
Tech-Verse 2026 を開催します(6月29日)

この記事は、イベントの公式記事として公開されました。
Tech-Verse 2026は、LINEヤフーが開催する技術カンファレンスです。
最先端の挑戦や積み重ねてきた知識を共有します。
YouTube LIVEでの配信をぜひご覧ください。
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み