jojonki / arXivNotes

IssuesにNLP(自然言語処理)に関連するの論文を読んだまとめを書いています.雑です.🚧 マークは編集中の論文です(事実上放置のものも多いです).🍡 マークは概要のみ書いてます(早く見れる的な意味で団子).
https://github.com/jojonki/arXivNotes/issues
195 stars 8 forks source link

2018: Query Tracking for E-commerce Conversational Search: A Machine Comprehension Perspective #139

Open jojonki opened 6 years ago

jojonki commented 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)を更新する.そして最終的な対話行動を決定する.

しかしそれでも一般的なタスク指向対話システムと大きな違いがある.

  1. ユーザー発話の複雑度はEコマースが提供する商品に応じて変わってくる.様々な商品が展開されており,ユーザーの商品に対する表現も多様である.対話検索をスロットフィリングでやろうとすると,相当数のスロットをカバーしなくてはいけないため,手作業ではあまりにも厳しい.
  2. ユーザーは異なる色,ブランド,他キーワードで目的の商品にアプローチするため,状態更新への要求はかなり高い.例えば"Adidas shoes"のあとに"Nike"と入れた場合,ユーザーの期待は既にAdidasでなく"Nike shoes"になる.一方,"fairy dress"のあとに"cute"と入れた場合,ユーザーはもしかすると"fairy and cute dress"を検索したく,どちらのスロットも活かしたいと思っているかもしれない.それ故シンプルなスロットベースの対話状態更新では,Eコマース対話検索は難しい.
  3. 現在のユーザー意図をまとめ,検索エンジンにわたすことが重要である.このユーザー意図を表すクエリを内部クエリと呼ぶことにする.この内部クエリは対話状態に相当し,各インタラクションで更新される.また検索エンジンのクエリは,キーワードは順不同なキーワードの羅列であることが一般的である.ユーザークエリと内部クエリの例を下記に示す. screen shot 2018-10-21 at 1 44 10 pm

そのため,我々は今回の問題をコンテキストアウェアなクエリトラッキングタスクとして定式化する.ゴールは,ユーザークエリの履歴を考慮して,現在のユーザー意図を出力することである.これをマシン理解の観点を利用し,クエリトラッキングベースのNNを提案する.また内部クエリをスロットの助けなしに更新し,単語レベルのバイナリ分類問題(後ほど説明)に置き換える.

問題

定式化を下記にする.前回の内部クエリq1(単語列 t=1..m),現在のユーザークエリq2(単語列 t=1..n),そして新しい内部クエリq3(単語列 t=1..k).

screen shot 2018-10-21 at 2 02 30 pm

着目点としては,q2の単語は必ずq3に含まれる.また,単語列は順不同を想定し,順は検索結果に影響しない.これらを考慮すると,q3を求めるタスクは,q1の各単語をq3に加えるか加えないか,の問題になる.そして加える,と判定されたq1と,q2を内部クエリq3として定義できる.新しい内部クエリq3は下式でy (y1,y2,...ym)とすると下式のようになり,yiは0~1のスコアに成り,これはq1のある単語wiを捨てるかどうかのスコアと成る.

screen shot 2018-10-21 at 2 04 10 pm

アプローチ

クエリトラッキングとマシンリーディングの関係について議論する.本論はマシンリーディングのアイデアに基づいて,クエリトラッキングモデルを提案する

Machine Comprehensionとクエリトラッキング

マシンリーディングは,ドキュメント(ニュース記事とか)とそれに関するクエリが与えられ,それに答える(一般的にはドキュメント内の単語とか範囲が答えとなる,SQuADなど)という問題設定である.つまり,(Doc, Query, Ans)の3つ組を扱う.// マシンリーディングのためには,機械がドキュメントを理解する必要があるので,Machine Comprehensionと呼ばれる これを実現するには,Encoding,Matching,Predictingの3つからなる.ドキュメントとクエリは高次元にエンコードされ,アテンション機構を利用してマッチング部分を探し,最終的な答えを推論する. クエリトラッキングはマシンリーディングに似ている.つまり,現在のクエリを与えられ,前回の内部クエリから保存すべき場所を見つける.q1'をq1から保存すべき単語を残したものと定義する.つまり,これは(q1, q2, q1')という問題に成る.

マシンリーディングとの違いは下記

  1. マシンリーディングの答えは連続する単語シーケンスに対して,保存すべき単語はシーケンシャルとは限らない.そのため直接単語や単語列を予測するのは,クエリトラッキングに適さない
  2. クエリは順不同であるのでbow表現と成る.そのためRNNのようなシーケンシャルな表現は学習時に非効率である.
  3. クエリトラッキングは繰り返し行われる検索処理である.そのためクエリトラッキングはMachine Comprehensionより信頼性が求められる(Machine Readingはあくまで1回の(D, Q, A)を求めるだけの問題なのでステートレス)

提案モデル

提案モデルは下記で,Encoding,Matching,Predictingの3フェーズから成る

screen shot 2018-10-21 at 4 09 36 pm

更にsentence pair modelingでよく使われているfeature enhancementテクニック[5]を利用.先程のSelfAttentionMH(E)をHとして,下式のような特徴量を作り全結合レイヤに投げる.fは活性化関数.

これによりq1,q2からそれぞれM1,M2を得る

実験

データセット

実験には,オンライン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スコアを評価メトリクスに採用.

screen shot 2018-10-21 at 6 26 44 pm

まずslot baselineは,製品知識及びスロットフィリングのアルゴリズムの効率性のカバレッジに制約があるため,教師あり学習の他の手法よりかなり悪い結果になった.Eコマースの対話検索では,複雑なシナリオ及び豊富な知識が必要で,かなり凝ったトラッキングが必要ということが分かる. LSTM1はslot baselineよりかなりよくなり,LSTM2は提案モデルにほぼ同じ.ただし,提案モデルはLSTM2より,学習時は2.1倍,テスト時は1.6倍早い

Ablationテスト

ablationもも行った.この中ではself-attentionによるエンコードが一番モデルに聞いていることが分かる.

screen shot 2018-10-21 at 5 24 40 pm

結論

Eコマースの対話検索の問題を扱った.これにはマシン理解の側面を取り入れつつ,対話検索との違いも考慮したモデルを提案した.またそのためのデータセットも構築した.モデルは最近の優れたアテンションベースのモデルを取り込み,いくつかのベースラインよりも良い結果となった.

コメント

参考

jojonki commented 6 years ago

Podcastでも解説しました. https://anchor.fm/lnlp-ninja/episodes/ep11-Query-Tracking-for-E-commerce-Conversational-Search-A-Machine-Comprehension-Perspective-e2eohm