天天看點

如何用算法模型來解決業務問題

作者:一個資料人的自留地
如何用算法模型來解決業務問題

專業成就職業

大家好,我是政策産品夏師傅。

政策産品當中涉及到大量算法模型的應用,比如召回,排序政策的設計,除了規則邏輯之外,算法模型是很多體量比較大的業務必備的。是以有必要跟大家聊一下實際工作中,我們是如何利用算法模型來解決業務問題的。

了解這些也有助于大家熟知算法工程師的工作流程大概是什麼樣的,降低溝通成本。

算法模型解決業務問題整體上可以分為如下幾步,接下來我将分别講一下每一步具體做點什麼。

如何用算法模型來解決業務問題

01 問題定義

不能為了上模型而使用模型。

是以首先,我們需要明确我們要解決的問題是什麼?

問題可以是具體的使用者需求,比如:使用者希望看到自己感興趣的商品排到前面;也可以是目前業務面臨的問題,比如:目前平台GMV滲透率高的品類曝光流量不足,這些其實都是問題。但是對于使用算法模型來解決的話,關鍵點在于如何把這個問題變成算法模型能了解,能解決的問題。

是以這裡面必然涉及到一個如何從感性的問題描述轉變為一個可以讓模型去了解和預測的問題。

這就到了第二個環節:問題模組化。

02 問題模組化

問題模組化的關鍵其實就兩個:業務名額定義和模型預測目标定義。

業務名額定義即根據目前業務核心場景去定義核心業務名額,這塊涉及到一些資料名額體系搭建。

模型預測目标主要用于根據該目标去設定模型的收斂目标,也就是模型要預測什麼,輸出什麼值。典型的比如ctr預估,實際上就是輸出了ctr這個值。

在問題模組化階段,還有兩個重要的事情:樣本選擇和交叉驗證。

簡言之,我們從原始資料(日志)當中選擇跟目前模型預估名額相關的樣本,然後把這些樣本分為訓練集和測試集,然後通過交叉驗證的方法對模型進行訓練和評估。

這塊不得不提一下關于模型評估的名額。名額的分類有很多,最常見的其實就是準确率,召回率,AUC曲線等,包括常見的NDCG是對排序模型的衡量關鍵名額。

03 特征工程

完成了問題定義和問題模組化,接下來就進入了很關鍵的特征工程,從大量的資料當中進行特征抽取,核心目的是為了将特征輸入給模型,讓模型從資料中學習規律。

關于如何做特征選擇,大家可以參考我之前寫的文章:政策産品經理需要了解的特征選擇方法

最為關鍵的是下面這張圖:

如何用算法模型來解決業務問題

第一點好了解,特征是為目标服務的,是以選擇出來的特征必須能夠表征目标;第二點的意思是這個特征要在不同的物品之間有相當明顯的差異。比如銷量,有的高,有的低;評價,有的是100%好評,有的是80%好評,這些都可以稱之為特征。但是,如果你們業務的基本上99%的物品好評率都在100%,那基本上這個特征就不用加了。有差異才有差別,有差別才能作為一個決策的因素。什麼情況下我們需要進行特征選擇?訓練資料包含許多備援或無用的特征,移除這些特征并不會導緻丢失資訊。其中備援是指一個本身很有用的特征與另外一個有用的特征強相關,或它包含的資訊能從其它特征推演出來;特征很多但樣本相對較少,也就是某一個次元的資訊資料量太少,覆寫度較低。關于特征選擇的4個步驟:以下是模型特征選擇的4個步驟,政策産品經理以了解為主:産生過程:産生特征或特征子集候選集合;評價函數:衡量特征或特征子集的重要性或者好壞程度,即量化特征變量和目标變量之間的聯系以及特征之間的互相聯系。為了避免過拟合,可用交叉驗證的方式來評估特征的好壞;停止準則:為了減少計算複雜度,需設定一個門檻值,當評價函數值達到門檻值後搜尋停止;驗證過程:在驗證資料集上驗證選出來的特征子集的有效性。04 模型選擇

當我們把上面的事情确定之後,接下來就到了關鍵的模型選型的環節。大家都知道,具體的算法模型其實有很多種,不同的模型有很大差别,使用場景不同,能夠處理的特征也有很大差異。 比如對于協同過濾,常見的usercf和itemcf兩種,還有一些基于兩個基本的協同過濾模型的變種,比如i2i,頻繁二項集等。那我們就需要思考什麼樣的場景比較适合usercf,什麼樣的場景比較适合itemcf。另外,雖然這些模型都能做到根據使用者行為資料去進行個性化推薦的目标,但是具體的落地過程其實是大相徑庭的。當我們經過特征工程得到一份高品質的特征之後,還需要考慮哪個模型能夠更準确地從資料中學習到相應規律,從衆多模型中選擇最佳的模型。05 模型融合

正如上面說的,其實不同的模型有不同的應用場景,是以一般線上通常是含有多個模型,最大化利用每個模型的優勢,進而達到目标收益最大化,而模型融合以後得結果其實就是線上最終展示出來的結果。

以上就是關于算法是如何解決業務問題的介紹,希望大家能夠明白一點,不要為了用算法而用算法,也不要認為算法就一定能更好的解決問題,關鍵點不在這,而是基于業務的實際情況去決定到底使用算法還是規則,使用什麼樣的算法。

繼續閱讀