A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation 論文解讀(SIGMOD 2021)
- 本篇部落格是對A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation的一些重要idea的解讀,原文連線為:A Unified Deep Model of Learning from both Data and Queries for Cardinality Estimation (acm.org)
- 該文重點介紹了同時從data和query中學習聯合資料分佈的方法。
- 特點:
- 不做任何獨立性假設
- 同時利用data和query訓練模型
- 增量更新,更好的時間和空間消耗
基數估計及聯合分佈相關資訊
- 該部分在筆者另一篇介紹Naru的部落格中已經講述Deep Upsupervised Cardinality Estimation 解讀(2019 VLDB) - 茶柒每天要學習 - 部落格園 (cnblogs.com) 這裡不做過多贅述,本文所用到的模型在data-driven方面的思想與Naru基本一致(包括使用自迴歸模型,encoding,decoding,progressive sampling)下文的重點是介紹如何用query(監督資料)訓練data-driven(無監督模型)。
在自迴歸模型中加入query資訊訓練的challenge
現有的自迴歸模型無法實現從query中學習,這是因為在做反向傳播時,梯度無法流經取樣的一些離散隨機變數(在本文中代表進行範圍查詢時漸進取樣出的一系列點),因此取樣過程是不可微的。本文介紹了使用gumbel-softmax方法對取樣的點進行重引數化,使之可微的方法。
Gumbel-Softmax Trick
- gumbel-softmax是一種重引數化技巧,假設我們知道資料表中某一個屬性列的概率分佈P,範圍查詢需要我們在目標範圍按照該概率分佈取樣出一些點{x...},利用這些取樣點對範圍選擇度進行估計。但是這樣取樣出來的點有一個問題:x只是按照某種概率分佈P直接選擇出來的值,並沒有一個明確定義公式,這就導致了x雖然與概率P存在某種關聯,但是並沒有辦法對其進行求導,也就不能利用反向傳播調整概率分佈。
- 既然問題的原因是沒有一個明確的公式,那麼我們構造出一個公式,使之得到的結果就是這些取樣不就可以解決不可微的問題了嗎?我們想要構造的就是下式,即gumbel-max技巧:
\[f(x)=\left\{ \begin{aligned} 1,i=argmax(log(p_j)+g_j) \\0,otherwisee \end{aligned} \right.
\]
其中\(g_i=-log(-log(u_i)),u_i\sim Uniform(0,1)\).被稱為Gumbel噪聲,這個噪聲的作用是使得每次公式產生的結果都不一致因為如果每次都一致就不叫取樣了。根據該式我們最終會得到一個one-hot向量,用該向量與待取樣的值域空間相乘即可得到取樣點。我們注意到上式存在argmax操作,該操作也是不可微的,此時我們用softmax操作代替argmax即可解決問題,而最終方案被稱為gumbel-softmax技巧。
損失函式
- data-driven 使用交叉熵損失函式
- query-driven使用q-error 損失函式*
- 本文通過一個超引數將兩者相結合如下圖: