【論文紹介】Learning to Ask Appropriate Questions in Conversational Recommendation

文献情報

タイトル:Learning to Ask Appropriate Questions in Conversational Recommendation
著者:Xuhui Ren, Hongzhi Yin, Tong Chen, Hao Wang, Zi Huang, Kai Zheng
会議:SIGIR 2021

概要

対話型情報推薦のフレームワークKBQGを提案。KBQGでは、質問文の生成と推薦結果の生成を実行する。質問文を生成する際に、映画ドメインであれば「好きな俳優は誰ですか」や「好きなテーマはなんですか」のように、属性名を使う点が特徴。質問文と推薦結果はいずれもknoledge graph(KG)を活用することで生成している。

従来研究との差異

KGを用いた対話型情報推薦では、「トム・クルーズは好きですか」や「スパイ映画は好きですか」のように、属性値を使って「はい」「いいえ」で答えられる質問を生成することでユーザの好みを推定していたため、ユーザが何度も質問に答えなければならず非効率的であった。本論文では、ユーザが好みのアイテムを見つけるために重要な「属性名」を推測して、好みの属性値をユーザに回答させることで効率的な推薦を実現している。

提案手法

提案フレームワークKBQGは下図に示す「Conversational Policy Decision」「KG-based Preference Mining」「Reaction Decision」の3つのコンポーネントから構成される(図は論文より引用)。

Conversational Policy Decision

ユーザに対して質問をするか推薦結果を提示するかを決める。どの属性名をユーザに質問したか(質問済みの属性名に1が立っているmulti-hotベクトルで表現)と、全アイテムの中で推薦スコアが閾値以上となったアイテムの割合を見て、前者のベクトルの要素の大半が0(ユーザの好みを十分に調べられていない)か後者の割合が高すぎる(推薦候補が多すぎる)場合は質問をして、それ以外の場合は推薦結果を提示する。具体的には強化学習によって、それらの情報から質問と推薦のタイミングを決めている。

KG-based Preference Mining

Conversational Policy Decisionの結果に応じて、具体的に質問をする属性名を決めたり、推薦結果を生成したりする。ユーザ、アイテム、属性名はベクトルで表現され、ベクトルの学習には各属性名が固有の超平面を持つTransHを採用。
ユーザuにアイテムを推薦する際は、uのベクトルに、その時点でのuの好みを表現したベクトルを足した位置に近いアイテムを推薦する。ある時点でのuの好みは、各属性名のベクトルの重み付き和で表現される。このときの重みはattention(uにとっての各属性名の重要度)により求める。質問をする際は、そのattentionの値が大きい属性名を使う(「俳優」という属性名であれば「好きな俳優は誰ですか」と質問する)。

Reaction Decision

質問または推薦結果に対するユーザの反応を反映する。属性名を使った質問に対して、ユーザが1つ以上の属性値を回答した場合(例えば「俳優」という属性名に対して「トム・クルーズ」と「アナ・ケンドリック」という2つの属性値を回答)、各属性値のベクトルをユーザベクトルに足すことでユーザのベクトルを更新する。
推薦結果にユーザが満足すればその時点で終了し、満足しなければその満足できなかった推薦アイテム集合を次回以降の推薦結果に含めないようにしつつ、次の推薦結果を生成する。

実験

MovieLensとDBbook2014の2種類のデータセットを使ったオフライン評価を実施。ユーザのアイテムの消費履歴から、好きな属性値の回答を決めることでユーザの回答をシミュレート。テストデータのアイテムが推薦結果の上位10件に入ればユーザが満足したとみなして推薦結果の生成を終了。
従来手法に比べて、ユーザが満足するまでに要する質問回数と推薦回数の和が減っていて、効率的な推薦が実現できていることを確認。質問回数と推薦回数の和の平均はMovieLensで7.335回、DBbook2014で8.156回。

定性評価の結果も掲載していて、左図がKBQG、右図がKBベースの従来手法の推薦過程を表している(図は論文より引用)。中央の図は、KBQGにより推定された、このユーザに対する各属性名のattentionの値の分布で、KBQGではこの分布に応じて質問を生成している様子がわかる。


この記事が気に入ったらサポートをしてみませんか?