簡明機器學習系統概述

2021-09-03 10:34:31 字數 2029 閱讀 2960

業務成長迅速,使用者量和收錄的電影量都在增加,現有的業務結構如圖所示:

可以看到,現有的系統不斷的收錄使用者資料,然後通過人工的方式選擇和推薦電影實現對使用者的推薦和批量營銷。

那麼現在就有問題了,也許有人會質疑你,原有的方式不好嗎?為什麼非要機器學習?

事實上,使用機器學習的理由有很多,不使用機器學習的理由同樣有很多,作為乙個演算法工程師,自然需要對到來的質問有所準備:

不斷增長的使用者規模,完全依賴人工處理總會有捉襟見肘的一天的。

機器學習和統計學習模型等基於模型的方式能夠發現人類難以發現的模式。

模型能夠避免人類在感情上的偏見。

先解決實行過程的阻礙之後,就該用技術好好服務業務了,首先的明白,我們的業務是針對個人使用者的,個性化是永遠都繞不過去的彎,推薦系統從根本上來說是個性化的一種,向使用者提供個性化且他們可能感興趣的內容。而個性化包含的範圍就比較廣,對比推薦系統,個性化可以偏向隱式,比如根據使用者以往的資料適當改變搜尋結果,使用者可能沒有明顯感覺到不同。

目標營銷用和推薦類似的方法從使用者群眾找到要營銷的物件,通常情況下,推薦和個性化都是一對一的場景。

使用者細分是通過將使用者劃分成不同的組,這些劃分有助於理解使用者組的共性,發現同組使用者之間的相似性和不同組之間的差異。其中可能會用到諸如聚類一類的演算法和使用者特徵和行為資料。在沒有標註資料的時候,通過這種方法可以幫助制定更好的策略。

回歸模型可以用來**諸如新電影的市場表現。

分類模型可以用來對只有部分資料的新電影自動分配標籤。

從頂層來看,我們的機器學習系統由如下部分構成,從資料獲取到將資料處理成可用於機器學習模型的形式再到最後的訓練和部署等。有新資料時,可以重複該流程。

資料處理並不是乙個簡單的問題,包括資料儲存和資料清理和轉換

機器學習流程的第一步就是獲取訓練模型需要的資料,儲存也並不簡單,可能涉及多種系統,檔案系統dbfs,amazon s3等,sql資料庫,分布式hbase等,搜尋引擎,還流資料系統kafla等等。

大部分機器學習模型處理的都是特徵,特徵通常是輸入變數所對應的可用於模型的數值表示。

雖然大部分人都希望將時間用於機器學習模型探索,但通常來說獲得的資料都是原始形式,需要進一步處理,常見的情況包括但不限於:

資料過濾:篩選需要的資料。

處理資料缺失,不完整或者有缺陷:現實中經常會存在比如使用者沒有輸出,儲存是錯誤,或者技術漏洞,硬體故障等等原因造成的資料不完美。

過濾異常值。

資料彙總:比如通過統計手段,彙總一些條目。

當資料已經準備成為模型需要的格式時,就可以開始訓練和測試,這部分我們關注的是模型選擇的問題,通常情況下我們會嘗試不同的模型和不同的引數,最終選擇表現最好的乙個。由於通常資料集都非常大,所以在較小的有代表性的資料集上進行這個過程會很有幫助。

最終,把選擇好的模型部署到生產環境中,這同樣也有不少工作量。

最部署模型之後,我們需要知道它在實際中未知的資料集上表現如何,在生產環境下的表現也是唯一檢驗之前工作好壞的標準。

本階段的另乙個重心是模型反饋,指通過使用者行為來對模型**進行反饋的過程,在現實系統中,模型的應用將潛在的影響使用者行為,從而反過來影響模型以後的訓練資料。對於這類問題,我們可以在開始的時候就劃分出一部分使用者不對其應用模型**或者推薦系統,從而達到更好理解業務資料的效果。

線上模型還會存在的乙個問題是,新獲得的資料,是實時更新還是不實時更新?

因為模型部署牽扯到資料轉換,模型訓練,模型選擇等一系列問題,所以很難做到絕對的實時,spark提供了spark streaming元件是個不錯的選擇,但由於現實中系統天然的複雜性,系統的設計都是以接近實時性為目標。

機器學習概述

什麼是機器學習?what is machine learning?machines can learning by ayalyzing large amouts of data.ml是一種重在尋找資料中的模式並使用這些模式來做出 的研究和演算法的門類。ml是ai的一部分,並且和知識發現與資料探勘有所...

機器學習概述

機器學習之父 卡內基梅隆大學計算機學院院長湯姆 公尺切爾 tom michael mitchell 在1997年給機器學習這樣的定義 對於乙個給定的任務t task 在合理的效能度量方案p performance 的前提下,某個計算程式可以自主學習任務t的經驗e experience 隨著提供合適的...

機器學習概述

在面對新來的事物做判斷時,傳統的方式會採用一長串負責的規則去進行判斷,如果新來的樣本符合我們規則,我們就可以準確的判斷樣本的好壞 品質等型別,當遇見我們規則不發匹配的時候,我們就無法正確做出判斷,以及隨後要更新我們已有的規則。在面對大資料 變化頻發的狀況下,傳統的方式不適合去使用。example e...