Open jojonki opened 6 years ago
Query Tracking for E-commerce Conversational Search: A Machine Comprehension Perspective Yunlun Yang, Yu Gong, Xi Chen. CIKM (ACM International Conference on Information and Knowledge Management) 2018. Alibaba Group. https://arxiv.org/abs/1810.03274
Eコマースの検索エンジンを対話で行う対話検索の研究.対話検索はユーザーには魅力的で強力な手段であるが,スロットフィリング・トラッキングに注力する伝統的なタスク指向対話とはまったく異なる. 今回は実際のEコマースの対話検索のクエリトラッキングをテーマにする,つまり各インタラクションから内部的なクエリを得ることが目的である. 今回は,アテンションベースのNNでこれに取り組み,また,Eコマースのクエリトラッキングデータセットも構築した.
伝統的なEコマースの検索のIFはステートレスに動くが,我々は短い期間での連続するクエリは関連性があることを見つけた.例えば「dress」と検索した後に「red dress」と検索するように.それゆえに,コンテキストクエリの利用はインタラクションをより効率的にできるかもしれない. NNの登場でスマートアシスタントの技術も発展した(雑談やタスク指向).そこで本研究では,対話のテクニックを検索に導入する対話検索[6]を利用し,ユーザーの最後のクエリを考慮し,おしゃべりするような感覚で検索を行ってもらう.
Eコマース対話検索とタスク指向対話は似ている.例えばフライト予約では,ユーザーの条件(席情報,日付等)を獲得し,期待されている航空券を獲得する.これらのシステムではユーザーインプットの理解に強く依存する.タスク指向対話では,主に2モジュールからなる:スロットフィリングと対話状態追跡の2つ.ユーザー発話からスロットを抽出し,現在の対話状態(dialog state)を更新する.そして最終的な対話行動を決定する.
しかしそれでも一般的なタスク指向対話システムと大きな違いがある.
そのため,我々は今回の問題をコンテキストアウェアなクエリトラッキングタスクとして定式化する.ゴールは,ユーザークエリの履歴を考慮して,現在のユーザー意図を出力することである.これをマシン理解の観点を利用し,クエリトラッキングベースのNNを提案する.また内部クエリをスロットの助けなしに更新し,単語レベルのバイナリ分類問題(後ほど説明)に置き換える.
定式化を下記にする.前回の内部クエリq1(単語列 t=1..m),現在のユーザークエリq2(単語列 t=1..n),そして新しい内部クエリq3(単語列 t=1..k).
着目点としては,q2の単語は必ずq3に含まれる.また,単語列は順不同を想定し,順は検索結果に影響しない.これらを考慮すると,q3を求めるタスクは,q1の各単語をq3に加えるか加えないか,の問題になる.そして加える,と判定されたq1と,q2を内部クエリq3として定義できる.新しい内部クエリq3は下式でy (y1,y2,...ym)とすると下式のようになり,yiは0~1のスコアに成り,これはq1のある単語wiを捨てるかどうかのスコアと成る.
クエリトラッキングとマシンリーディングの関係について議論する.本論はマシンリーディングのアイデアに基づいて,クエリトラッキングモデルを提案する
マシンリーディングは,ドキュメント(ニュース記事とか)とそれに関するクエリが与えられ,それに答える(一般的にはドキュメント内の単語とか範囲が答えとなる,SQuADなど)という問題設定である.つまり,(Doc, Query, Ans)の3つ組を扱う.// マシンリーディングのためには,機械がドキュメントを理解する必要があるので,Machine Comprehensionと呼ばれる これを実現するには,Encoding,Matching,Predictingの3つからなる.ドキュメントとクエリは高次元にエンコードされ,アテンション機構を利用してマッチング部分を探し,最終的な答えを推論する. クエリトラッキングはマシンリーディングに似ている.つまり,現在のクエリを与えられ,前回の内部クエリから保存すべき場所を見つける.q1'をq1から保存すべき単語を残したものと定義する.つまり,これは(q1, q2, q1')という問題に成る.
マシンリーディングとの違いは下記
提案モデルは下記で,Encoding,Matching,Predictingの3フェーズから成る
更にsentence pair modelingでよく使われているfeature enhancementテクニック[5]を利用.先程のSelfAttentionMH(E)をHとして,下式のような特徴量を作り全結合レイヤに投げる.fは活性化関数.
これによりq1,q2からそれぞれM1,M2を得る
Matching このフェーズは一般的なマシンリーディングと似ている.今回は内部クエリに対して現在のクエリでアテンション(先ほどと同様にMulti-head及びfeature enhancement採用)を取る.これにより現在のクエリに対して矛盾のない新しい内部クエリを得ることを想定する.矛盾とは,例えば内部クエリに"Nike shoes"があり,現在のクエリが"Adidas"だと,"Nike shoes Adidas"となるようなこと,Nikeはドロップすべきと学習する必要がある.
Predicting 前回の内部クエリq1から,残すべき単語を決める問題なので,q1の各単語毎に残す残さないのバイナリ分類問題として扱う. 今回予測の前に再度self-attentionを行い,M3をM4に更新する.実験ではこの2回目のエンコードは,同一フレーズの中の単語列(例えば"vero moda".これはブランド名)の分類の一貫性に貢献した.// 何故貢献するかはよくわからん そして最後に全結合層に投げ,クロスエントロピーロスを学習.// Wbcは2次元への変換なのでsigmoidで良い気がするけど
実験には,オンラインEコマースのクエリデータを抽出した(多分Alibaba).ただこれは対話的でなくsingle-turnのものなので少し調整した.まず同一ユーザーが30分以内に検索したクエリペアを抽出し,その頻度が5回未満のものは除外した.そこで連続する2つのクエリを,q1(前回の内部クエリ)及びq3(今回の内部クエリ)とみなした.そしてそれらのクエリを中国語でセグメンテーションを行い,その差異をq2とした. 例:q1: "Adidas shoes", q3: "Nike shoes"の場合,q2は"Nike"になる. 最後にq2が空だったものは除外した.train/val/testで4865/271/275のサイズ
単語のembeddingはショッピングに関連するコーパス(自社製?)で事前学習したものを利用し,今回のデータでfine-tuneする形. 他実装内容については論文4.2参照のこと.
今回は提案モデルに加えて,3つのベースラインを導入
結果は下記.Exact Match正解率(クエリ全体があってるかどうか)と単語毎のF1スコアを評価メトリクスに採用.
まずslot baselineは,製品知識及びスロットフィリングのアルゴリズムの効率性のカバレッジに制約があるため,教師あり学習の他の手法よりかなり悪い結果になった.Eコマースの対話検索では,複雑なシナリオ及び豊富な知識が必要で,かなり凝ったトラッキングが必要ということが分かる. LSTM1はslot baselineよりかなりよくなり,LSTM2は提案モデルにほぼ同じ.ただし,提案モデルはLSTM2より,学習時は2.1倍,テスト時は1.6倍早い
ablationもも行った.この中ではself-attentionによるエンコードが一番モデルに聞いていることが分かる.
Eコマースの対話検索の問題を扱った.これにはマシン理解の側面を取り入れつつ,対話検索との違いも考慮したモデルを提案した.またそのためのデータセットも構築した.モデルは最近の優れたアテンションベースのモデルを取り込み,いくつかのベースラインよりも良い結果となった.
Podcastでも解説しました. https://anchor.fm/lnlp-ninja/episodes/ep11-Query-Tracking-for-E-commerce-Conversational-Search-A-Machine-Comprehension-Perspective-e2eohm
Query Tracking for E-commerce Conversational Search: A Machine Comprehension Perspective Yunlun Yang, Yu Gong, Xi Chen. CIKM (ACM International Conference on Information and Knowledge Management) 2018. Alibaba Group. https://arxiv.org/abs/1810.03274
概要
Eコマースの検索エンジンを対話で行う対話検索の研究.対話検索はユーザーには魅力的で強力な手段であるが,スロットフィリング・トラッキングに注力する伝統的なタスク指向対話とはまったく異なる. 今回は実際のEコマースの対話検索のクエリトラッキングをテーマにする,つまり各インタラクションから内部的なクエリを得ることが目的である. 今回は,アテンションベースのNNでこれに取り組み,また,Eコマースのクエリトラッキングデータセットも構築した.
イントロ
伝統的なEコマースの検索のIFはステートレスに動くが,我々は短い期間での連続するクエリは関連性があることを見つけた.例えば「dress」と検索した後に「red dress」と検索するように.それゆえに,コンテキストクエリの利用はインタラクションをより効率的にできるかもしれない. NNの登場でスマートアシスタントの技術も発展した(雑談やタスク指向).そこで本研究では,対話のテクニックを検索に導入する対話検索[6]を利用し,ユーザーの最後のクエリを考慮し,おしゃべりするような感覚で検索を行ってもらう.
Eコマース対話検索とタスク指向対話は似ている.例えばフライト予約では,ユーザーの条件(席情報,日付等)を獲得し,期待されている航空券を獲得する.これらのシステムではユーザーインプットの理解に強く依存する.タスク指向対話では,主に2モジュールからなる:スロットフィリングと対話状態追跡の2つ.ユーザー発話からスロットを抽出し,現在の対話状態(dialog state)を更新する.そして最終的な対話行動を決定する.
しかしそれでも一般的なタスク指向対話システムと大きな違いがある.
そのため,我々は今回の問題をコンテキストアウェアなクエリトラッキングタスクとして定式化する.ゴールは,ユーザークエリの履歴を考慮して,現在のユーザー意図を出力することである.これをマシン理解の観点を利用し,クエリトラッキングベースのNNを提案する.また内部クエリをスロットの助けなしに更新し,単語レベルのバイナリ分類問題(後ほど説明)に置き換える.
問題
定式化を下記にする.前回の内部クエリq1(単語列 t=1..m),現在のユーザークエリq2(単語列 t=1..n),そして新しい内部クエリq3(単語列 t=1..k).
着目点としては,q2の単語は必ずq3に含まれる.また,単語列は順不同を想定し,順は検索結果に影響しない.これらを考慮すると,q3を求めるタスクは,q1の各単語をq3に加えるか加えないか,の問題になる.そして加える,と判定されたq1と,q2を内部クエリq3として定義できる.新しい内部クエリq3は下式でy (y1,y2,...ym)とすると下式のようになり,yiは0~1のスコアに成り,これはq1のある単語wiを捨てるかどうかのスコアと成る.
アプローチ
クエリトラッキングとマシンリーディングの関係について議論する.本論はマシンリーディングのアイデアに基づいて,クエリトラッキングモデルを提案する
Machine Comprehensionとクエリトラッキング
マシンリーディングは,ドキュメント(ニュース記事とか)とそれに関するクエリが与えられ,それに答える(一般的にはドキュメント内の単語とか範囲が答えとなる,SQuADなど)という問題設定である.つまり,(Doc, Query, Ans)の3つ組を扱う.// マシンリーディングのためには,機械がドキュメントを理解する必要があるので,Machine Comprehensionと呼ばれる これを実現するには,Encoding,Matching,Predictingの3つからなる.ドキュメントとクエリは高次元にエンコードされ,アテンション機構を利用してマッチング部分を探し,最終的な答えを推論する. クエリトラッキングはマシンリーディングに似ている.つまり,現在のクエリを与えられ,前回の内部クエリから保存すべき場所を見つける.q1'をq1から保存すべき単語を残したものと定義する.つまり,これは(q1, q2, q1')という問題に成る.
マシンリーディングとの違いは下記
提案モデル
提案モデルは下記で,Encoding,Matching,Predictingの3フェーズから成る
更にsentence pair modelingでよく使われているfeature enhancementテクニック[5]を利用.先程のSelfAttentionMH(E)をHとして,下式のような特徴量を作り全結合レイヤに投げる.fは活性化関数.
これによりq1,q2からそれぞれM1,M2を得る
Matching このフェーズは一般的なマシンリーディングと似ている.今回は内部クエリに対して現在のクエリでアテンション(先ほどと同様にMulti-head及びfeature enhancement採用)を取る.これにより現在のクエリに対して矛盾のない新しい内部クエリを得ることを想定する.矛盾とは,例えば内部クエリに"Nike shoes"があり,現在のクエリが"Adidas"だと,"Nike shoes Adidas"となるようなこと,Nikeはドロップすべきと学習する必要がある.
Predicting 前回の内部クエリq1から,残すべき単語を決める問題なので,q1の各単語毎に残す残さないのバイナリ分類問題として扱う. 今回予測の前に再度self-attentionを行い,M3をM4に更新する.実験ではこの2回目のエンコードは,同一フレーズの中の単語列(例えば"vero moda".これはブランド名)の分類の一貫性に貢献した.// 何故貢献するかはよくわからん そして最後に全結合層に投げ,クロスエントロピーロスを学習.// Wbcは2次元への変換なのでsigmoidで良い気がするけど
実験
データセット
実験には,オンラインEコマースのクエリデータを抽出した(多分Alibaba).ただこれは対話的でなくsingle-turnのものなので少し調整した.まず同一ユーザーが30分以内に検索したクエリペアを抽出し,その頻度が5回未満のものは除外した.そこで連続する2つのクエリを,q1(前回の内部クエリ)及びq3(今回の内部クエリ)とみなした.そしてそれらのクエリを中国語でセグメンテーションを行い,その差異をq2とした. 例:q1: "Adidas shoes", q3: "Nike shoes"の場合,q2は"Nike"になる. 最後にq2が空だったものは除外した.train/val/testで4865/271/275のサイズ
実装詳細
単語のembeddingはショッピングに関連するコーパス(自社製?)で事前学習したものを利用し,今回のデータでfine-tuneする形. 他実装内容については論文4.2参照のこと.
メイン結果
今回は提案モデルに加えて,3つのベースラインを導入
結果は下記.Exact Match正解率(クエリ全体があってるかどうか)と単語毎のF1スコアを評価メトリクスに採用.
まずslot baselineは,製品知識及びスロットフィリングのアルゴリズムの効率性のカバレッジに制約があるため,教師あり学習の他の手法よりかなり悪い結果になった.Eコマースの対話検索では,複雑なシナリオ及び豊富な知識が必要で,かなり凝ったトラッキングが必要ということが分かる. LSTM1はslot baselineよりかなりよくなり,LSTM2は提案モデルにほぼ同じ.ただし,提案モデルはLSTM2より,学習時は2.1倍,テスト時は1.6倍早い
Ablationテスト
ablationもも行った.この中ではself-attentionによるエンコードが一番モデルに聞いていることが分かる.
結論
Eコマースの対話検索の問題を扱った.これにはマシン理解の側面を取り入れつつ,対話検索との違いも考慮したモデルを提案した.またそのためのデータセットも構築した.モデルは最近の優れたアテンションベースのモデルを取り込み,いくつかのベースラインよりも良い結果となった.
コメント
参考