論文閱讀 | Falcon: Balancing Interactive Latency and Resolution Sensitivity for Scalable Linked Visualizations

来源:https://www.cnblogs.com/Basasuya/archive/2019/08/08/11323855.html
-Advertisement-
Play Games

作者: Dominik Moritz, Bill Howe, Jeffrey Heer 發表於CHI 2019, 三位作者都來自於University of Washington Interactive Data Lab 項目代碼: 簡介 Linked Visualization(鏈接可視化系統)是 ...


作者: Dominik Moritz, Bill Howe, Jeffrey Heer

發表於CHI 2019, 三位作者都來自於University of Washington Interactive Data Lab

項目代碼:https://github.com/uwdata/falcon

簡介

Linked Visualization(鏈接可視化系統)是通過刷選、放縮等操作,在不同可視化視圖上進行交互,鏈接(link)不同視圖的操作,並更新視圖的一種可視化方式。為了支持有效的探索,Linked Visualization必須提供快速響應來消除延遲敏感。在百萬級以上的數據量時,傳統可視化方法無法實現實時的探索,引出一系列問題。

本文提出falcon,一個大數據Linked Visualizations的低延遲方案,實現對十億數據集的冷啟動探索。falcon平衡交互延遲和視圖精度,從查詢和界面系統兩方面對Linked Visualizations進行優化,降低刷選和鏈接(brushing and linking)的延遲。結合數據索引,數據預取和漸進式交互等方法,falcon系統使用載入數據子索引來優化刷選延遲,通過逐步載入互動式解析度,以減少視圖切換時間。實驗表明,falcon實現了50fps的刷選交互延遲,無需昂貴的預計算和存儲代價。

相關工作

  • Linked Visualization在商用可視化軟體,如tableau, powerBI, DataV中應用非常廣泛。他們經常使用直方圖作為可視化方式,輔以brushing and linking 作為交互手段,讓用戶在展示不同維度的視圖之間互動式刷選部分子集,同時在其它視圖間同步展示子集結果。
  • 在論文The effects of interactive latency on exploratory visual analysis(2014 TVCG)中,Liu and Heer指出超過500ms的延遲會對用戶行為造成較大影響,用戶對刷選(brushing and linking)相比平移(pan)和縮放(zoom)有更高的延遲敏感度。
  • 過去的工作採用預處理數據索引或者稀疏數據塊的方案來達到加快可視查詢和交互的目標,但它們無不會導致高昂的計算和存儲代價。這些文章有imMens(2013 EuroVis), Nanocube(2013 VIS)等等。
  • falcon分解高維數據索引,分解後它僅支持與單個活動視圖的交互,當用戶與特定視圖交互(active view)時,將其所需部分數據索引進行載入。這樣每次交互所需索引的大小在視圖數量上是線性的,這避免了維度爆炸。

界面設計

  • falcon提供了一個可視化的視圖儀錶板,具有零,一個或兩個維度的直方圖。如圖顯示的是flights數據的可視化結果。每個視圖都支持刷選,放縮,平移的功能,通過brushing and linking同步更新所有視圖的查詢結果,此外還可以通過按鈕來選擇是否查看沒有被過濾的數據。
  • 需要註意的是正在刷選的視圖是主視圖(active view), 其餘都是次視圖(passive view),上圖中滑鼠所正在刷選的(第二行第二個)就是active view。

演算法與模型

數據索引

大數據可視化系統中,我們常常使用數據索引來存儲數據,以此優化後端處理中的時間複雜度和空間複雜度。數據索引又叫data tile, datacube。如下圖所示,一個1維的直方圖,我們可以使用一個同樣長度的數組,每條數據按照維度信息放入相應的數據方格當中,形成數據索引。如果是2維的直方圖,同理,我們需要一個2維的數組(一個平面)作為數據索引,此時每個直方圖的相應格子就是平面中的某一行或者某一列的和。3維依次類推,是一個立方體,此時每個直方圖的相應格子就是立方體中的某個平面的和。

假設數據條數是T, 維度數為m, 每個維度的劃分精度為n,那麼構建時間複雜度: \(O(T)\)空間複雜度: \(O(n^m)\)查詢複雜度: \(O(n^{m-1})\)。可以發現空間複雜度和查詢複雜度都隨維度呈指數型增長,這樣在高維度(多視圖)的可視化系統中,存在巨大的維度災難。針對較高的查詢複雜度,我們可以使用sum area table查詢複雜度降到\(O(2^m)\),但是處理數據索引的空間複雜度依然巨大,當可視化系統的前後端分離的情況下,更會帶來巨大的傳輸延遲和存儲負擔。

本文針對這個情況提出處理當前刷選視窗(active view)相關的數據子索引的方案,有效減小了空間複雜度,也一併減少了查詢複雜度。假設有5個維度,每個維度粒度是10,顯示五個單維度的直方圖。舊方案需要\(O(10^5)\)的空間複雜度和\(O(2^5)\)的查詢複雜度(有sum area table), 只會預處理一次。新方案冷啟動無需預處理,每次切換刷選視窗(active view)時需要O(4 * 100)的空間複雜度和僅僅O(4)的查詢複雜度。

Falcon 採用兩種數據索引的實現方案。一是如果數據量比較小(< \(10^6\)), 會直接在前端生產高維數據索引, 進行查詢。二是如果數據量很大,通過後端的高性能GPU資料庫(OmniSci)來生成數據索引。由於falcon只需要當前界面數據子索引的思想,有效減小了響應時間。

延時載入與線性插值

有時計算數據索引需要很長時間,falcon會優先計算粗精度下的數據索引,之後再載入細精度的索引。如果框選範圍處於條形圖的中間位置,falcon會使用線性插值的方式進行擬合。論文通過實驗證明,儘管使用線性插值,真實值和擬合值的Wasserstein distance處於非常小的範圍內(99%的情況下< 0.01)。

實驗

作者將Falcon與SquareCrossfilter進行了比較,記錄了300萬條記錄的5個視圖的刷選實驗結果。Falcon的性能是恆定的,接近瀏覽器的最大幀速率60fp。反觀SquareCrossfilter,當向刷選開始和結束過程中,系統會反應緩慢。

此外本文還針對不同數據集進行了測試。下表統計不同數據集大小的所有視圖的在切換刷選視窗(active view)等待時間的平均值,中位數和第95百分位樹,分別在像素解析度(1維為500個bins,2維200×200bins)和bin解析度(1維25bin和2維25×25bins)下進行統計。測試結果其中包括了網路傳輸的時間,灰色顯示計算第一個視圖的傳輸完成的時間,Browser指只有前端的實現方法,Core指使用GPU資料庫作為後端的實現方法。

實驗表明:

  • falcon對於只有前端和前後端分離的兩種方案,都有顯著的性能提升。
  • falcon的框選操作的時長不再取決於原數據量大小,框選精度不再取決於原本數據的最小精度。

  • falcon通過逐步載入和線性插值的方式來減小用戶在數據量較大時的不舒適感。

總結

針對大數據Linked Visualizations,本文提出了考慮刷新延遲優先於視圖切換延遲,以及降低交互的初始解析度以改善視圖切換時間的方案。基於原型系統falcon,當連接到後端GPU資料庫系統時,falcon支持流暢瀏覽和刷選數十億條記錄,而無需昂貴的預計算或其他記憶體等方面的限制。但falcon還有許多不足之處,如:

  • falcon只實現了關於求和的功能,並不涉及中位數,平均數等更複雜的計算。也不涉及非數值型數據的計算。

  • 預設用戶每次只會刷選一個視圖,如果用戶使用的是觸屏設備,這個假設就會被推翻。

  • 更註重刷選的操作,對於縮放等操作並沒有進行優化和討論。

  • 對於數據索引的處理方面有更多的發揮空間,比如數據壓縮,中間件的處理等等。

總之,falcon從一個不同的視角解決了Linked Visualizations的刷選延遲問題,實現了對十億數據集的冷啟動探索。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 前段時間工作中需要將經過我司平臺某些信息核驗數據提取後上傳到客戶的FTP伺服器上,以便於他們進行相關的信息比對核驗。由於包含這些信息的主機只有4台,採取的策略是將生成的4個文件彙集到一個主機上,然後在這台主機上將文件上傳的目標ftp伺服器。 1,建立主機A到其他三台主機之間的信任關係,以便於遠程拷貝 ...
  • 一、多命令順序執行 && || 相當於其他高級語言中的 ? : 二、管道符 [命令1] | [命令2] 命令1的正確輸出作為命令2的操作對象 分屏顯示結果 netstat -an 命令可查看系統所有的網路連接 可使用管道符,netstat -an | grep ESTABLISHED查看正在連接系統 ...
  • 使用 unzip XXX.zip 方式解壓的時候會出現中文亂碼 很多人推薦以下方式: 但是unzip已經不支持了 親測有效的方式為: 7z安裝參考:https://www.cnblogs.com/crazytata/p/10235812.html 相關參考鏈接:https://www.cnblogs ...
  • 剛開始學習linux操作系統是總是很茫然,無所適從,以下是自己總結的工作經驗,僅供參考! 一、準備資源 安裝前需要準備的資源有linux系統centos7.6發行版系統鏡像,vmware workstations15 模擬安裝虛擬機工具。 二、安裝步驟 1, 安裝VMware workstation ...
  • 1 電腦的基本硬體組成 早期,DIY一臺電腦,要先有三大件 CPU 記憶體 主板 1.1 CPU 電腦最重要的核心配件,中央處理器(Central Processing Unit)。 電腦的所有“計算”都是由CPU來進行的。 CPU是一個超級精細的印刷電路版 1.2 記憶體(Memory) 你撰 ...
  • 任何程式都需要載入到記憶體才能與CPU進行交流 同理, 位元組碼.class文件同樣需要載入到記憶體中,才可以實例化類 的使命就是提前載入.class 類文件到記憶體中 在載入類時,使用的是Parents Delegation Model(溯源委派載入模型) Java的類載入器是一個運行時核心基礎設施模塊, ...
  • 1.事件簡介 事件(event)是MySQL在相應的時刻調用的過程式資料庫對象。一個事件可調用一次,也可周期性的啟動,它由一個特定的線程來管理的,也就是所謂的“事件調度器”。 事件和觸發器類似,都是在某些事情發生的時候啟動。當資料庫上啟動一條語句的時候,觸發器就啟動了,而事件是根據調度事件來啟動的。 ...
  • 以下示例在 SQL Server 實例上創建了一個資料庫。該資料庫包括一個主數據文件、一個用戶定義文件組和一個日誌文件。主數據文件在主文件組中,而用戶定義文件組包含兩個次要數據文件。ALTER DATABASE 語句將用戶定義文件組指定為預設文件組。然後通過指定用戶定義文件組來創建表。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...