作為在一家公司中從事算法,數據挖掘,機器學習的小伙伴們,似乎會有一些感覺,我現在做到的東西感覺好土啊,一點也不高大上,明明有那么多吊炸天的算法,為啥我們現在還要用這么土的方法呢?不行我要嘗試這些吊炸天的算法,而有的時候卻往往是吃力不討好。
就個人感覺而言,工業算法工程師其實是要求蠻高的一個崗位,雖然從業七年多了,但是是否已經入門還真的不敢說。因為它涉及的領域太多,經典的已經被反復證明有成熟套路的應用場景就包括了,搜索效果優化,個性化推薦,計算廣告,智能風控等等。而每一個場景背后雖然有著比較共同的基礎算法理論支持,但真要把某一個領域做好,卻真的不是那么容易的事情。
拿推薦的場景舉例吧。
常見的推薦手法有幾種,那么拿基于標簽畫像的方法來做個引子。
設計一套標簽體系;對待推薦的目標實體,通過運營打標,用戶ugc打標,實體本身附屬的文本內容,圖像內容進行標簽抽取;對用戶通過瀏覽、購買、加購物車,評論等行為將實體標簽關聯到用戶身上。這樣,當用戶有新的行為的時候,就可以通過標簽和權重集合作為特征向量,計算消費者和推薦實體的相似度,離線或實時的生成推薦列表了。
這樣似乎沒有啥問題,其實是有問題的。
如果我們的應用的展示位很豐富,推薦展示位只是其中一小部分,那么問題可能還不會那么明顯。但是如果我們的應用是高度依賴算法智能推薦的的話,那就好玩了,因為馬太效應,越推越窄,很快一些標簽的權重就高的沒法看了。
這該怎么辦呢?
可以有一些不同的路子去嘗試,可以通過標簽擴展(其實效果不容易控制,粒度太粗);或者引入其它的推薦算法作為推薦源(svd,itmbase,userbase,contentbase等等)。這個時候,就要想辦法去合理安排這些算法了。
后面會有越來越多的問題接踵而來:哪些算法適合放在基礎層面去負責初試粒度的召回呢,哪些算法適合把各個基礎找回算法結果進行精排序呢,用戶主動搜索了一個東西我如何快速反饋到其它展示位的推薦結果中呢,我該如何設計日志打點,以方便后續的效果跟蹤呢,如何可以更自動化的去測試不同的算法組合,算法參數而不應總是人手動abtest呢,如何能夠給運營以合理的干預權限以增加業務邏輯而又不會影響算法本身的效果呢,我如果請求失敗了有沒有降級方案呢,集群job似乎越跑越慢了是不是要單獨申請個queue防止其他人干擾我呢……
哈哈,想做好效果這些全都是要考慮到的事情啊,靠單純的一個算法,很難去最好一個場景。我更喜歡稱算法工程師為效果優化工程師,因為在企業當中,你第一核心要務不是把某個算法研究的特別透徹,而是要讓你的整套效果優化的流程跑順,在此基礎上,用實際業務指標去說話。
回歸前面的算法同學們的苦惱,其實算法也是技術的一種,而技術的本質,按科學技術哲學中的理論是:技術是一種解蔽的過程,解蔽嘛,就是實打實的做出實際效果。所以經過大家無數次實際使用并證明行之有效的方法就特別受歡迎,新奇的算法,注定是在回去效果達到一定瓶頸的時候去做突破而用的了。
-
算法工程師
+關注
關注
2文章
30瀏覽量
6139
發布評論請先 登錄
相關推薦
評論