2024算法工程師的技術(shù)成長_第1頁
2024算法工程師的技術(shù)成長_第2頁
2024算法工程師的技術(shù)成長_第3頁
2024算法工程師的技術(shù)成長_第4頁
2024算法工程師的技術(shù)成長_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

算法工程師的技術(shù)成長今天分享的內(nèi)容分為以下幾個部分,首先Beta階段可以認為是研究生階段和算法工程師實習(xí)生階段,接下來是特征調(diào)研、在線應(yīng)用、模型訓(xùn)練。這四個部分是我在算法領(lǐng)域的技術(shù)成長中不同階段的相關(guān)工作總結(jié)。最后一部分是深度學(xué)習(xí),深度學(xué)習(xí)模型雖是眾多模型中的一種,由于最近比較火所以特意專門分享一下。Beta階段就是在研究所做研究或者去公司實習(xí)做模型調(diào)研性質(zhì)工作,主要偏學(xué)術(shù),與工業(yè)界存在一定差距。這個階段的一個主要工作是嘗試不同的模型。學(xué)術(shù)界可以嘗試使用和改進很多復(fù)雜的模型而工業(yè)界換模型比較困難,原因有:學(xué)術(shù)界實驗數(shù)據(jù)一般是固定的,如參加比賽數(shù)據(jù)是現(xiàn)成的,可以直接使用訓(xùn)練工具或平臺訓(xùn)練出模型;工業(yè)界面臨的問題就是機器有限,數(shù)據(jù)足夠多,很多時候一個簡單的模型用足夠多的訓(xùn)練數(shù)據(jù)訓(xùn)練出來的效果不一定比復(fù)雜的模型差。還有一個就是時間成本,一般越簡單的模型訓(xùn)練時間越短。學(xué)術(shù)界可能訓(xùn)練一個模型可以用幾天,但是工業(yè)界很難接受。工業(yè)界的問題對模型時效性都有要求。學(xué)術(shù)界比如比賽過程中評估的標(biāo)準和模型的目標(biāo)非常一致,而工業(yè)界把模型應(yīng)用到一個系統(tǒng)中,系統(tǒng)收益的評估標(biāo)準和模型目標(biāo)不一定很一致。以廣告系統(tǒng)的CTR預(yù)估為例。整個廣告系統(tǒng)是非常復(fù)雜,CTR預(yù)估只是其中的一部分。一個簡單的廣告系統(tǒng)CTR預(yù)估越準確,點擊率和收入提升也越明顯。但是實際系統(tǒng)中CTR預(yù)估后有很多后續(xù)處理,假設(shè)有一些業(yè)務(wù)對預(yù)估CTR的穩(wěn)定性要求很高可能對CTR預(yù)估結(jié)果分段處理,CTR預(yù)估精度提升并不能帶來點擊率和收入的明顯提升。實際系統(tǒng)中線上換模型,實現(xiàn)是有成本的,因此工業(yè)界換模型比較慎重。Beta階段的工作除了嘗試不同的模型外,一個重要的工作就是調(diào)參,主要是需要人工設(shè)置的超參。超參有模型結(jié)構(gòu)的參數(shù),如LR模型的正則化系數(shù),GBDT模型樹的深度和個數(shù);還有優(yōu)化算法的參數(shù),如學(xué)習(xí)率、步長等。Beta階段工作的模型評估的特點是:主要是離線指標(biāo),一般不涉及線上應(yīng)用。實際上離線指標(biāo)與線上指標(biāo)差異比較大,離線評估的好,線上不一定好。總結(jié)一下:Beta段的工作重點是嘗試不同的模型和調(diào)參,而實際上工業(yè)界的算法工程師的重點并不在這一塊,而是數(shù)據(jù)和特征工程。當(dāng)前是一個大數(shù)據(jù)時代,數(shù)據(jù)是承載信息的載體,大數(shù)據(jù)特點是數(shù)據(jù)量大、維度多。大數(shù)據(jù)常見的處理方式是分布式處理,經(jīng)常使用的平臺有Hadoop、Spark,也可能用到Hive,避免直接寫MapReduce。大數(shù)據(jù)分布式處理是一個算法工程師基本的工作技能,模型訓(xùn)練是有監(jiān)督的,需要有樣本,樣本要包含label得到label涉及到的基本操作有拼接,有時候也需要將不同維度的數(shù)據(jù)拼接到一起。高級處理有去噪、采樣、SA算法,因為實際業(yè)務(wù)數(shù)據(jù)可能含有大量噪聲和具有不平衡的特點。有了大數(shù)據(jù)處理能力,接下來就是特征調(diào)研。這一階段就是通過增加特征提高模型精度,這一階段的特點就是要高效,只有為了性能問題才會去刪減特征,正常的都是增加特征。加特征要考慮便捷性問題,能改配置文件的盡量別改代碼,如果需要改代碼要考慮是不是可以簡單實現(xiàn),還有就是代碼改動后能夠很快的跑出特征,但是現(xiàn)在數(shù)據(jù)海量,模型訓(xùn)練數(shù)據(jù)時間周期長,有可能是半月或幾個月,所以特征抽取的性能很關(guān)鍵。因此為了方便加特征,一般都會開發(fā)一些通用的特征抽取框架,目的就是為了加特征變的很方便。為了高效跑出模型,特征抽取的性能很關(guān)鍵,除了優(yōu)化特征抽取框架本身的性能和特征抽取過程的性能外,還有一些技巧比如只抽取新增加的特征,然后與基線做一個拼接,這樣的好處第一個是快,第二個是避免多次抽取基線特征。多次抽取基線特征會有兩個問題:多次抽取不一定抽取的都對,存在一些連續(xù)值特征的時候可能不小心特征會抽錯;一個團隊如果好多人同時做特征調(diào)研,每個人都跑出所有的特征,這是對計算資源和存儲資源的一種很大的浪費。接下來介紹下特征調(diào)研的一些事情,主要是特征設(shè)計和特征分類。特征設(shè)計沒有通用的方法論,特征的設(shè)計依賴于對產(chǎn)品的理解。如果不想在特征設(shè)計上花費太多時間,簡單的方法就是引入更多的數(shù)據(jù),還有就是利用端到端的深度學(xué)習(xí)去學(xué)習(xí)進行特征設(shè)計,但是它不能完全取代特征設(shè)計,有時還是需要人工進行特征組合。特征分類有連續(xù)值和離散值,大數(shù)據(jù)中大部分數(shù)據(jù)(比如IP、操作系統(tǒng)、機型)是離散的,因此離散模型在工業(yè)界較多,如LR模型、FM等。特征分類也可以分成單邊特征和組合特征,單邊特征就是一些原始字段,組合特征就是多個維度去組合。剛開始做特征調(diào)研由于特征較少不會去做特征選擇,但是隨著特征增多必然會刪減特征。特征選擇分為兩類,一種是刪掉一些特征類;第二種就是特征值的選擇,就是特征類不變,刪除無用的特征值:有兩種方法,一種是模型的正則化,這類方法壞處就是訓(xùn)練完才知道特征無用,還有一種方法是訓(xùn)練前,如Fea-G算法,以及基于新特征過濾的方法。訓(xùn)練出模型后應(yīng)用到線上,如果算法工程師生成一個模型后不管了,生成的是一些模型文件,這對算法工程師成長是不利的,算法工程師對整個系統(tǒng)的影響也是無法控制的。模型優(yōu)化沒有帶來產(chǎn)品指標(biāo)的提升不一定是模型的問題,有可能是應(yīng)用出問題。常見的問題第一個就是一致性問題,最嚴格的就是打分一致性。但是有時并不一定能完全實現(xiàn),比如預(yù)測的時候只能用請求的時間,可能訓(xùn)練的時候用的是曝光的時間;還有就是位置,預(yù)測的時候還不知道位置。特征一致性就是模型訓(xùn)練的特征和在線打分的特征要一致,正常情況下絕大部分特征是要做到離線和在線一致的。還有一種一致性就是離線和在線的AUC的一致性。解決特征一致性最根本的解決方法是在線預(yù)測的時候把特征打印出來,離線不再抽取特征,實際中要解決在線打印特征的性能問題。第二個就是關(guān)注應(yīng)用場景,分兩點介紹,第一個就是對系統(tǒng)影響有多大,比如CTR預(yù)估,從N條素材中選一條,N有多大決定選擇的空間。第二個就是預(yù)測出的打分如何被使用,如果打分高的排在后面,這種預(yù)測越精準效果越差。不同產(chǎn)品要求不同,比如話語權(quán)較高的廣告商的廣告位置變化不能太大,但是CTR預(yù)估是不能保證這一點的,這就需要在后續(xù)做一些處理。還有一個快速迭代實驗也是比較關(guān)鍵的,模型訓(xùn)練上線,要做多個實驗,這樣能夠提高效率,依據(jù)你的流量大小看同時能做多少組A/Btest。第一個就是一個業(yè)務(wù)有很多環(huán)節(jié),多個環(huán)節(jié)是否能并行做實驗,因此不能所有的實驗都平分百分之百的流量,這樣就要分層進行實驗。第二個就是要關(guān)注上線的實驗效率,最好的模式是模型訓(xùn)練后直接修改配置文件就可以上線。第三點就是實驗數(shù)據(jù)的置信度,雖然系統(tǒng)運行能支持并行,效率也很高,但是實驗要觀察多少時間,數(shù)據(jù)可不可信。一種簡單有效的方法是可以做AA實驗,看策略上相同的實驗需要觀察多長時間數(shù)據(jù)效果一樣。最后就是線上性能問題,第一點就是在線打分性能情況,面臨的是一個超時問題,超時一般發(fā)生在候選隊列很長,競爭激烈,這樣意味著都是商業(yè)價值高的請求,這種對線上的損失比較嚴重,因為最有商業(yè)價值的流量減少。第二點是模型大部分是單機存儲,要關(guān)注模型的加載方式。第三點就是模型的更新方式,一個是更新頻率,另一個是全量更新還是增量更新。模型訓(xùn)練的數(shù)據(jù)處理能力和訓(xùn)練速度很重要。海量數(shù)據(jù)一般是采用分布式訓(xùn)練的方式,實現(xiàn)方法要保證數(shù)據(jù)量增加了通過增加機器仍然可以訓(xùn)練出模型。第二個就是提高訓(xùn)練速度,以及提高收斂的速度,優(yōu)化算法有GD、LBFGS等,除了優(yōu)化算法實際過程中還有一些經(jīng)驗。如模型訓(xùn)練初始權(quán)重不要設(shè)為0或者隨機,基線特征權(quán)重不要設(shè)為0,利用老的模型能夠加快收斂速度和使用更少的歷史數(shù)據(jù)。另外一種方法就是增量訓(xùn)練,只用最新一天的數(shù)據(jù),同時注意老數(shù)據(jù)的衰減。在線訓(xùn)練一定程度降低了資源需求,可以提高模型更新的頻率,在實際應(yīng)用中對模型的時效性都是有要求;簡單模型如果更新頻率較快也不比復(fù)雜模型效果差。學(xué)習(xí)算法典型的就是FTRL,SOA算法。算法工程師對模型訓(xùn)練工具的開發(fā)必須具備定制需求升級能力,你并不需要重新開發(fā)一個工具或平臺,但在實際應(yīng)用都需要一些定制需求。深度學(xué)習(xí)火熱的一個原因就是它解決了特征學(xué)習(xí)的問題,特征挖掘方面比較典型的就有DANOVA算法。深度學(xué)習(xí)除了可以做各種預(yù)估,還可以生成一些向量化的東西,隱層輸出可以是User/Ad/Doc/Image的矢量化vector,這個可以用到召回階段,還可以做聚類。如果映射的vector在空間都可比,應(yīng)用場景會更廣。在實際應(yīng)用中DNN也會遇到各種問題,常見的就是在線打分性能問題,在線預(yù)測可以看成是一個矩陣運算;還有一個就是其收益不一定很大,DNN模型復(fù)雜,但是需要足夠的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論