Google在今年Cloud Next宣布,於原本的分析資料倉儲BigQuery服務加上機器學習,推出BigQuery ML新功能,資料科學家或是分析師,可以使用簡單的SQL語法,直接以BigQuery中大量的結構與半結構化資料,建置與部署機器學習模型。創建模型語法簡單的就像是創建表格一樣CREATE MODEL dataset.model_name。

BiqQuery原來就允許大型資料集相互交叉分析,但Google發現,許多使用BiqQuery的企業並沒有使用機器學習來進一步理解產生的資料,而追究原因發現,精通SQL的資料分析師可能沒有相對應資料科學的機器學習知識。

因此Google推出BigQuery ML,這是BigQuery內部的一個功能,允許資料分析師可以直接使用存在於BigQuery中的結構化與半結構化資料。BigQuery ML是一組簡單的SQL語法擴充,使用這些語法,用戶就能直接應用常見的機器學習功能,像是銷售預測或是客戶分類等預測分析功能,而且部署這些功能,比起傳統機器學習系統時間要少上許多。另外,對於機器學習應用最令人頭痛的資料準備問題,BigQuery ML也提供了一些能夠減少用戶工作量的做法,不只有智慧預設設定還有資料轉換的功能,幫助使用者快速取得良好的結果。

Google提到,他們在設計BigQuery ML後端時,面臨選擇兩難。由於將大量資料從BigQuery伺服器,傳輸到執行機器學習的專用伺服器上非常的耗時,而且會產生額外的安全以及隱私成本。但考量梯度下降法能夠實作使用常用SQL操作,又是常見的機器學習最佳化的方法,使Google可以在BigQuery ML上,重新利用既存BigQuery SQL處理引擎。

也由於BigQuery引擎當初設計的目標,是要能有效快速的掃描大量資料集,而非用於隨機描繪小樣本,基於種種原因,Google決定在BigQuery ML中使用批次梯度下降法,而非隨機(Stochastic)的版本,Google表示,儘管現在隨機梯度下降法在多數大型機器學習系統更為常見,但批量版本也具有很多優點。

Google解釋,尤其是在大部分資料庫內的機器學習系統,都使用隨機梯度下降法,但是當資料非以最佳化排序時,產生的結果可能不如預期,而且BigQuery上資料分布的模式,通常是為執行一般SQL查詢所做的效能最佳化,如果為了支援隨機機器學習而不斷的重新分布資料,將造成昂貴的成本。批次梯度下降法對硬碟上資料排序與分區較不敏感,因此不會有上述問題,另外,批次處理方法還能結合線搜索(Line Search),讓機器學習更穩定以及更少的調校,相反的,在隨機方法上使用線搜索更為麻煩。

另外,BigQuery除了新增機器學習功能外,測試版BigQuery clustering允許用戶在BigQuery中創建叢集表,將具備相似叢集金鑰的資料列綑綁在一起,以加速資料查詢。另外,BigQuery GIS功能也進入測試階段,Google提到,地理空間資料是物聯網、遠端訊息處理、零售和製造工作流的關鍵,BigQuery GIS與Google Earth Engine團隊合作,以使用S2函式庫支援新地理空間資料類型與功能。BigQuery還增加了一個實用的小功能,就是現用戶只要使用Sheets連結器,就能直接在Sheets存取與瀏覽BigQuery中的資料。


Advertisement

更多 iThome相關內容