機械学習

検索語から商用意図をどう読むか:MicrosoftのOCI論文を解説

2006年のOCI論文が提案した、検索結果ページで短い検索語の文脈を補う方法を解説します。SVMの特徴量、比較実験、購入確率との違い、評価と再現の注意点を整理します。

Xでシェア
目次

AI利用の明示

本記事の構成と本文は、OpenAIのコーディングエージェント「Codex」が作成しました。原論文の本文・図表を確認して記載しています。利用時は原文も確認してください。

「買う」と書かれていない検索語でも、検索結果を文脈として使えば商用意図を推定できる。これが、Microsoftの研究者らによる「Detecting Online Commercial Intention (OCI)」の中心的な発想です。

Microsoft Researchの掲載日は2006年1月で、公開PDFにはWWW 2006、同年5月23〜26日、Edinburghと記載されています。著者はHonghua (Kathy) Dai、Zaiqing Nie、Lee Wang、Lingzhi Zhao、Ji-Rong Wen、Ying Liです。現在の検索サービスの性能を示す資料ではなく、検索意図をどう定義し、外部の文脈から学習するかを考える研究として読みます。

OCIは「この人が買う確率」ではない

OCIはOnline Commercial Intentionの略で、検索語やWebページをCommercial/Non-Commercialに分類する考え方です。対象には購入だけでなく、販売、オークション、有料サービスなどの商取引が含まれます。

ここでの判定単位は、検索語またはページです。同じ語を入力した一人ひとりの事情を追跡し、購入を予測するモデルではありません。ラベルを付ける人が「一般的な利用者は何のためにこれを検索・閲覧するか」を判断します。商品に関する語を、仕事の調査や学習のために検索する人もいるため、一般的な意図と個人の意図にはずれが生じます。

また、商用意図は検索の種類と別の軸です。特定のサイトへ移動したい検索にも、情報を調べる検索にも、商用意図はありえます。説明用の仮想例なら、「カメラ 比較」は情報収集であっても購入準備かもしれません。「美術史」と「絵画 オークション」は同じ美術分野ですが、商取引との関係は異なります。話題のカテゴリだけでは、この差を表しにくいわけです。

論文はさらに、商取引の段階を表すCAP(Commercial Activity Phase)を提案しています。商品情報やレビューを調べるResearchと、取引を実行するCommitという区分です。ただし、実験で評価したのはOCIの二値分類です。CAPの自動検出や個人のセッション全体を使った判定は、今後の研究課題として挙げられています。

短い検索語を、二つの経路で補う

「価格」「購入」などの明示的な語だけを手がかりにすると、それらを含まない検索を扱いにくくなります。そこで論文は、検索エンジンが返す情報を使います。比較するのは、検索結果の一覧ページと、その一覧からリンクされる上位のページです。

検索語を検索エンジンへ送り、結果一覧を直接分類する経路と、上位ページのOCI判定を統合する経路を比較した図
図1:Daiら「Detecting Online Commercial Intention (OCI)」§3.2〜3.3の処理を、独自の構図で整理。矢印は推論時のデータの流れを示します。ページ分類器と結果一覧用の分類器は別々に学習します。

検索結果の一覧を直接分類する経路

First Search Result Page(FSRP)方式は、検索結果の1ページ目を一つのHTML文書として扱います。学習時には、検索語に付けた正解ラベルを、その語の検索結果ページに対応させます。推論時にも検索を実行し、得られた結果ページから特徴量を作って分類します。

論文ではMSN Searchの標準設定による10件の検索結果を使いました。タイトルや短い説明文には、リンク先の中でも検索語に関係する情報が集まります。ページ全体を読むよりも、無関係な本文を減らせるという狙いです。これは著者らの説明であり、情報が絞られる効果だけを切り分けた実験ではありません。

上位のリンク先を判定して統合する経路

Top Landing Pages(TLP)方式は、上位N件のリンク先を取得し、一般のWebページ向けに学習したOCI分類器でそれぞれを判定します。順位順に並べたN個の判定結果を、もう一つのSVMへ入力して検索語のOCIを求めます。

この二段構成では、最初のSVMが各ページを分類し、次のSVMが順位ごとの情報を統合します。単純平均では上位と下位を同じ重みで扱いますが、SVMによる統合は位置ごとの違いを学習できます。論文は単純平均も比較対象にしています。

二つの経路は、使う情報の量と残し方が違います。TLP方式はページを広く読む一方、統合段階で使うのは各ページのOCI判定です。FSRP方式は、検索語に合わせて選ばれた説明文などを直接特徴量にします。したがって、結果の差を単に「短い文章のほうが優れている」と一般化することはできません。

SVMには、単語の頻度とHTML内の位置を渡す

両方式の基礎にあるのが、Webページから特徴量を作る仕組みです。学習用HTMLの要素内テキストとタグ属性から単語を取り出し、商用・非商用を区別しやすく、ある程度の頻度で現れる語を選びます。

論文§3.2の特徴選択は、語の偏りを表すSig(k)と、出現頻度を表すFreq(k)に閾値を設ける方法です。商用ページで語kが現れる確率をa、非商用ページで現れる確率をbと置くと、偏りの式は次のように書けます。

Sig(k) = 2 × max(a, b) / (a + b) − 1
Freq(k) = Pr(k | 商用または非商用のページ)

両クラスで同じ程度に出る語ならSig(k)は0、一方にしか出ない語なら1です。頻度も確認することで、たまたま一度だけ現れた語を選びにくくします。この式のa + bが0になる語は、そもそも学習文書に出現しないので候補に含まれません。

選んだ語ごとに、ページ内の全要素数を分母として、次の二つの値を計算します。

  • 要素内テキストにその語を含む要素の割合。
  • タグ属性にその語を含む要素の割合。

単語の総出現回数ではなく、その語を含むHTML要素の割合です。同じ「order」でも、説明文での出現と、操作に関係する属性での出現を区別する設計です。論文はボタン、画像、フォームなどを例に挙げています。

値が0に近くなりやすいため、それぞれを1/8乗してから使います。説明用の数値例では、割合0.0001は約0.316になります。まれな出現を数値上で扱いやすくする変換であり、商用意図の確率へ変換する処理ではありません。

選択語がn個なら入力は2n次元です。推論時には学習時に選んだ語と同じ計算を使います。ページごとに語彙を選び直すと、SVMが学習した特徴量の位置と意味が変わってしまいます。

実験では検索結果一覧の方式が高いF1を示した

検索語の評価には、MSN Searchの1日分のログから抽出した米国英語の1,408件を使いました。3人がラベルを付け、少なくとも2人が曖昧でないラベルで一致した1,392件を残しています。内訳は商用602件、非商用790件です。この集合をランダムに3分割して交差検証しました。

以下は原論文Figure 9に数値として記された結果です。Precisionは「商用と判定した中で正解した割合」、Recallは「正解が商用のものを拾えた割合」、F1はその調和平均を表します。全体の正解率ではありません。

検索語の分類方式 Precision Recall F1
検索結果一覧(FSRP) 0.86 0.82 0.84
上位ページ判定をSVMで統合(TLP) 0.75 0.57 0.65
上位ページ判定を単純平均(TLP) 0.43 1.00 0.60

FSRP方式は、SVMで統合するTLP方式よりF1が0.19高い結果です。一方、単純平均はRecallが最も高く、代わりにPrecisionが低くなっています。一覧方式がすべての指標で最高という結果ではありません。単純平均の結果は、商用を広く拾うだけでは、商用と判定した結果の信頼性を保てないことを示します。信頼区間や差の有意性は、この図では報告されていません。

一般ページ用の分類器は別の評価です。原論文Table 4では、特徴選択の共通閾値0.1、選択語391個で、Precision 0.930、Recall 0.925、F1 0.928でした。閾値0.01で4,523語を使った場合のF1は0.858で、語を増やせばよい結果にはなっていません。この0.928を検索語の分類性能として紹介すると、異なる実験を混同します。

評価の作り方には、読み残せない注意点がある

一般ページの初期収集は26,186件で、曖昧なものを除くと商用4,074件、非商用21,823件でした。著者らは不均衡と学習計算量に対応するため、初期モデルが誤分類するページを追加し、最終的に10,964件の評価用データを作っています。Table 3の学習集合は5,375件、テスト集合は5,589件です。

ここには記述上の曖昧さがあります。§4.2は誤分類ページを学習集合とテスト集合の両方へ追加したと述べる一方、§4.3は独立したテスト集合で評価したと説明します。同一ページを両方へ入れたのか、追加ページを分割したのかは本文だけでは判断できません。また、同じテスト集合で複数の特徴選択閾値を比較して最良値を選んでいるため、最終値の解釈にはモデル選択の影響も考慮する必要があります。

これは記事側の評価上の指摘です。重複による漏洩があったと断定はできませんが、F1 0.928を、無作為なWeb全体にそのまま適用できる性能とみなす根拠もありません。選別されたページ集合での実験だという条件が付きます。

ラベルの意味にも限界があります。正解は購入ログではなく、人が推定した一般的な意図です。曖昧な事例を除いているため、実運用で遭遇する判定困難な入力も、評価と同じ割合・難しさとは限りません。

頻出する検索語ほど商用、はどこまで言えるか

論文は別途、1か月分のログを出現頻度の5群へ分け、各群から10,000件、計50,000件を抽出しました。FSRP分類器の判定では、全標本の38%が商用で、1回だけ出た検索語では32%、高頻度群では41%でした。

これは分類器による推定値です。50,000件すべての意図を人が確かめた結果でも、実際の購入率でもありません。さらに各頻度群を同数採った層化標本なので、38%を全検索リクエストに占める商用検索の比率と解釈することもできません。頻度と商用判定の関連を観察した結果であり、頻度が意図を生むという因果関係は示していません。

今の環境で試すなら、何を再現するか

今回確認した公開ページとPDFには、元のログ、ラベル付きHTML、学習済みモデル、実行用コードの配布先は示されていません。当時のMSN検索結果も必要になるため、論文の数値をそのまま再現する手順は組めません。

以下は、論文の設計を小規模に検証するための記事側の提案です。

  1. 対象の言語と領域を決め、検索語・取得日時・検索結果HTML・上位ページHTMLを対応付けて保存する。
  2. 商用意図と実際の購入を区別した基準を作り、複数人でラベルを付ける。曖昧な例は別途残し、その割合も報告する。
  3. 学習・検証・最終テストを先に分離する。重複ページや似た検索語が集合をまたぐ影響も確認する。
  4. 検索語だけの分類、FSRP、TLPの統合を比較する。語彙選択と閾値調整は学習・検証集合で行い、最終テストを選択に使わない。
  5. 商用クラスのPrecision・Recall・F1に加え、取得失敗率と検索・ページ取得を含む応答時間を測る。

FSRPでも検索エンジンへの問い合わせは必要です。TLPではさらに複数ページの取得が増えます。論文も、この待ち時間を課題として挙げています。SVMの計算が軽くても、サービス全体が低遅延になるとは限りません。

検索結果の作り方も入力条件の一部です。論文はスポンサーリンクの有用性に言及しますが、広告の有無だけを切り分けた評価は示していません。新たに検証するなら、広告領域を含める条件と除く条件を分けると、何に依存しているかを調べられます。検索順位や結果形式が変わった場合も再評価が必要です。

OCIから得られる設計上の示唆は、短い入力の意味を補う情報を選び、その情報をどの段階で集約するかまで比較することです。商用意図を使うサービスでは、分類の精度に加えて、誰のどの行動を正解とするのかを先に決める必要があります。

参照資料