[Data] Data Products and Where To Find Them

Bryan Yang
A multi hyphen life
Aug 20, 2021

How to treat data as products

關於資料產品(Data Product)的定義眾說紛紜,我個人很喜歡 Simon O’Regan 在這篇文章的定義:

A product whose primary objective is to use data to facilitate an end goal.

原因有幾個:

  • 比起複雜的定義我更喜歡文字簡單的定義
  • 比起過度強調 AI、視覺化的定義、我更喜歡這種針對資料本質用途的定義。

根據這個定義,Simon 將資料產品依據內在的複雜程度分為幾個類別,類別越下面會進行越多加工、也更容易讓一般使用者(非技術人員)使用:

  • 原始資料(Raw Data)

就像農作物一樣,原始資料指的是最 Low Level 、未經加工處理的資料,可能來自於跟後端 API 溝通的資料庫、也有可能是程式執行時留下的 Log、埋在前端搜集使用者行為的事件等等。

原始資料是資料產品的最要的起點,資料分析有句名言,「Garbage in、garbage out」,如果一開始的資料品質就沒有顧好,或是沒有考量到後續的資料應用而亂設計,都會對後續資料產品品質有嚴重影響。

以使用者事件來說,光是事件的命名、資料結構、有沒有 Session ID、使用者 ID 的設計方式,都會影響後續的使用。

  • 加工資料(Derived Data)

加工資料顧名思義就是將原始資料拿來加工做近一步處理後的資料。例如後端的資料庫通常會為了效能以及去除冗余資料將資料正規化,但是在分析階段需要重新加這些正規化的表格相互 Join 反正規化,這樣的資料就是加工資料。資料加工的手法很多,除了反正規化之外,也包括了資料清洗、聚合等等,需要看需求而定、沒有一定的做法。

例如在我拿到使用者事件後,可以計算每天使用者人數、使用者最近看的影片、使用者最常點擊的按鈕等等。

  • 模型(Model)(原文是 Algorithms,但我覺得 Model 更適用)

單純的演算法其實不太能算是資料產品,而是需要將演算法融合資料後才會會形成一個用來解釋這些資料的模型(或是 AI)。模型可以用來解釋資料、或是用來猜測新資料的屬性或分佈。

當我想要預測使用者的點擊行為時,就可以根據使用者 ID 以及使用者的特徵組成要拿來產生出模型的訓練/測試資料。接著可以套用不同的演算法,像是多元回歸、羅吉斯回歸、隨機森林等等方式來預測使用者行為。

Andrew 最近也更為強調資料在 Model 中的重要性(Data Cetric AI)。

  • 輔助決策(Decision Support)

使用資料的一個重要目的就在於幫助我們做決策,不管是氣象報告也好、還是公司的財務分析報告也好,都是根據資料產生出一個可能是模型、也有可能是分析報表的資料產品提供給使用者作為決策參考之用。

  • 自動決策(Automated Decision Making)

輔助決策和自動決策的差異就是在決策中間人為涉入的程度多寡。例如導航系統會分析不同路徑到達終點的時間,但是實際上要走哪條路還是由駕駛控制,算是輔助決策;如果車子能自動根據路況來自動選擇要走哪條路,或是推薦系統根據過去資料以及模型就直接投放特定內容給使用者,就會是自動決策。

資料產品的層次並無法獨立作業,而是層層疊加。如果要做加工資料,就一定需要原始資料;如果要做模型,就一定需要加工資料;當我要開發自動決策系統時, 就一定需要原始資料、加工資料以及模型的配合。

下次再來聊聊資料產品的生命週期跟一般產品有什麼不同。

--

--

Bryan Yang
A multi hyphen life

Data Engineer, Data Producer Manager, Data Solution Architect