The query-flow graph: model and applications
-
Paolo Boldi, Francesco Bonchi, Carlos Castillo, Debora Donato, Aristides Gionis, Sebastiano Vigna
-
CIKM 2008
概要
-
query-flow graph
-
q_i→q_j: 同セッションで計算されやすいよ!w(q_i,q_j)はその確率
-
問題
-
でかい、ノイズ、定式化、あいまい、疎、などつらぽよ
-
応用
-
logical session
-
intertwined query chainsを見つける
-
query recommendation
-
Random walk with restartを使う
概念
-
クエリログとは
-
L = {<q_i, u_i, t_i, V_i, C_i>}
-
q_i: クエリ
-
u_i: ユーザID
-
t_i: タイムスタンプ
-
V_i: 得られたドキュメント
-
C_i: クリックされたドキュメント
-
全部使う、ともーじゃん?…と思わせて
-
L = {<q_i, u_i, t_i} しか使わない
-
セッションとは
-
時間制限を設けてクエリログを区切る
-
隣り合うクエリ間の時間がt=30min以下
-
スーパーセッション
-
チェイン(ミッション、ロジカルセッション)
-
The query-flow graph
-
G_qf = (V, E, w)
-
V = Q∪{s, t}
-
w:E→(0,1]
-
w(q,q'): qとq'が同チェインに含まれる確率
構築
-
I(L) = {S_1, …, S_m}
-
time stampでソートしてしきい値tで区切っただけ
-
T = {(q,q') | ∃s_i s.t. q=q_i, q'=q_{i+1}∈S_j}
-
訓練データ
-
特徴
-
18個:Textual, Session, Time-related
チェインを見つける
-
評価関数を定義するよ
-
S = <q_1, q_2, …, q_k>
-
とりあえずquery-flow graphには↑が入っている
-
chain cover
-
{1, …, k}をC_1, …, C_kに分割
-
各C_iをchainと考えて発生確率を決定
-
maximize P(C_1)…P(C_k)
-
TSPでやるには?
-
ω(q_i, q_j)=max{-log P(q_i, q_j), -log P(q_i, t)P(s, q_j)}
-
後者は分割に相当
-
どうやって解くの?
-
timeout-basedな分割とも比較しちゃう
-
実験結果
-
ATSPの方がちょっと良い
-
※ATSPはタイムスタンプ使わない、timeout-basedは使っている
-
イイ感じに分割できる!!!
Query Recommendation
-
w'(q,q')をw(q,q')がでかいもの限定に
-
最大重みでレコメンド
-
Random walkでレコメンド
-
personalized PR
-
そのまんまだとうまくいかないのでちょっと変える、正規化っぽい
-
Historyでレコメンド
CIKM kk query-flow graph recommendation
2013-12-12 00:24:10 (Thu)
最終更新:2013年12月12日 00:24