論文閱讀 | Formalizing Visualization Design Knowledge as Constraints: Actionable and Extens...
1. Introduction
程式設計師編寫的視覺化圖表與專家眼中的設計標準總存在差距。我們無法每次都向視覺化專家諮詢設計上的意見,所以我們需求將設計標準,研究成果應用於 自動化設計工具 的正式框架,這些工具有助於對於推薦資料的合理編碼和正確的視覺探索方式。我們建議將視覺化設計標準建模為約束的集合,並結合從實驗資料中學習到的軟約束的權重,使用求解器把理論設計知識具體的,可擴充套件和可測試的表達出來的系統。我們使用Draco實現了我們的想法,Draco是一個基於答案集程式設計(ASP)的基於約束的系統。本文的貢獻可以概括為以下三點:
- 本文提出了一種自動化可視設計的規範框架 ,使用一些設計規範來幫助使用者製作好的視覺化設計
- 本文將視覺化設計建模為約束條件進行最優化求解,有些約束條件是硬性條件(必須滿足),有些是軟性條件(帶有懲罰)
- 本文基於Clingo,這是一種基於答案集程式設計(ASP)的求解器,還有Vega-Lite, 這是一種json化的視覺化圖表語法
2. Related Work
Visual Encoding Principles
視覺化設計標準定義了在視覺化圖表當中最基本的概念,mark是視覺化中的基本圖形元素,channel是表達資料的方式和頻道。比方說一張折線圖,它的mark是線段,channel是位置(高低)。
除此之外,視覺化還將資料型別data定義為:continuous(數值型,10英尺,23歲),ordered(離散型,有大小之分,如星期幾),categorical(離散型,無大小之分,如蘋果,梨子)三類。將處理資料Aggregate分為,sum, mean,count,median。
Vega-lite
Vega-Lite 吸收了前任對於視覺編碼的研究成果,並參考了d3,visQL(tableau前身)等視覺化語言。 Vega-Lite結合了傳統的圖形語法,提供了視覺化編碼規則和分層和多檢視顯示。使用者通過組合選擇來指定互動式語義。在Vega-Lite中,選擇是一種抽象,它定義輸入事件處理,興趣點和包含測試的謂詞函式。選擇通過用作輸入資料,定義比例範圍或通過驅動條件邏輯來引數化可視編碼。 Vega-Lite編譯器自動合成必需的資料流和事件處理邏輯,使用者可以覆蓋這些邏輯以進行進一步的自定義。
Automated Visualization Design
過去的自動化設計系統使用預先設計的規則對使用者的需求進行判定,通過聚類和窮舉(dfs),最後得到一個有限集合,通過rankSVM等排序演算法,得到最後的偏好。這種方案的缺陷在於,窮舉的搜尋策略是深度優先搜尋,複雜度過大,還有很多回溯,這對於大型設計空間來說效率低。 Draco使用現代約束求解器和標準化的表示語言,並且還提出了軟約束的概念,增加了靈活性。最近的一篇自動可視設計系統是來自idl實驗室的 Voyager 2 。
3. Modeling Visualization Design In Draco
- 硬性視覺化約束規範
如前文所述,Draco當中的規則分為硬規則和軟規則。硬規則包括一些視覺化圖表內部的邏輯(比方說折線圖無法表示種類等等),還有許多使用者自己定義的偏好。這些規則必須被滿足。
-
Mark ∈ {bar, line, area, point}
-
Channel ∈ {x, y, color, text, shape}
-
Field ∈ {site, year, age}
-
Type ∈ {categorical, continuous}
-
Aggregate ∈ {sum, mean, count, median}
-
Zero ∈ {yes, no}
我們還可以寫多條件 硬規則,如下所示
- :- X
X這種情況不會發生
- :- channel(_,shape), not mark(point)
表明對於形狀編碼必須是是“點” ,其他標記型別(如區域,線,條或文字)不能對形狀進行編碼。
- :- mark(bar), channel(E, y), continuous(E), not zero(E)
表明必須使用零作為基線的垂直條形圖。
- 軟性視覺化約束規範
- :~ X [w]
傾向於X這種情況不會發生,如果違反那麼會有w的懲罰
- :~ continuous(E), not zero(E) [5]
表示模型更喜歡連續欄位的座標從零開始,並且違反規則會使這個模型的cost增加5
- 通過以下的語句定義資料的通道偏好設定
:~ channel(E,y), type(E,nominal). [0] :~ channel(E,x), type(E,nominal). [1] :~ channel(E,column), type(E,nominal). [2] :~ channel(E,color), type(E,nominal). [3]
假設我們有m個軟性約束,pi為第i個約束,每個約束的懲罰為wi
令 S = {(p1, w1)… (pi, wi)} npi(v)是v這種檢視違反軟約束pi的次數,那麼Cost可以定義為:$Cost(v)=\sum_{i=1..k}wi*n_{pi}(v)$
這樣我們通過求解器可以通過這些權值得到不同視覺化圖表的偏好。
4. User Study
- 比較試驗
本文將Draco與voyager2中使用的CompassQL求解演算法做比較,將CompassQL中的規定轉成Draco中的 -: X(硬規則),將CompassQL中的偏化轉成Draco中的 ~:X(軟規則)。實驗結果可以發現,CompassQL中複雜的規則語句在Draco只需要短短几句。
- 使用rankSVM訓練軟約束引數
本文使用lY. Kim and J. Heer. Assessing effects of task and data distribution on the effectiveness of visual
encodings,和 lB. Saket, A. Endert, and C. Demiralp. Task-based effectiveness of basic visualizations. 所用到的實驗資料,訓練軟約束引數,獲得了比原先自定義不同的視覺化結果。
5. Conclusion
作為今年infovis的best paper,本篇文章確實可圈可點,本論文的文件,線上演示可以看https://uwdata.github.io/draco/。下面是總結
-
本文提出了目前最完整的自動化可視設計框架
-
這個框架具有高度靈活性和可訓練性
-
未來它將支援推薦更復雜的圖表或者儀表盤
-
這個系統為 理解視覺化語法,創新視覺化設計,理解不同編碼的感知 都有不可或缺的作用