自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

新聞 前端
信息時代到來以后,我們被各種各樣海量的信息所淹沒,從新聞、廣告、電商、直播、短視頻等各種涉及這些場景的APP中,大量個性化的信息被推送到我們眼前。

  一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

引言

信息時代到來以后,我們被各種各樣海量的信息所淹沒,從新聞、廣告、電商、直播、短視頻等各種涉及這些場景的APP中,大量個性化的信息被推送到我們眼前。例如在使用得物APP購物的過程中,我們也常常會聽到這樣的問題,為什么會給我推這雙鞋/這件衣服?為什么瀏覽收藏過的商品反復出現(xiàn)在推薦流中?推薦流是怎么猜測我的喜好的?推薦的排序邏輯是怎樣的,都考慮了哪些因素?能不能主動增加某些類目的曝光量?這些種種的問題,都和我們的排序模型、排序邏輯有關,下面就讓我們來聊聊推薦系統(tǒng)中是如何對商品做排序的。

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖1. 得物APP首頁推薦瀑布流

推薦系統(tǒng)

首先來簡單說一下推薦系統(tǒng)的基本架構,借用youtube論文中的一張圖片來說明。推薦系統(tǒng)的核心目標是從我們的總商品庫中,為用戶挑選出他最感興趣的一部分商品,從而節(jié)省用戶時間,也提高平臺的轉(zhuǎn)化效率,為交易的順利進行提供助力。除開一些工程實現(xiàn)部分的細節(jié),整個過程可以大致分為兩個階段,即召回(candidate generation)和排序(ranking),其中召回的任務是從海量商品中選取部分用戶“大概率”感興趣的商品集,而排序則負責將召回選出來的這部分商品仔細分析,按照用戶可能感興趣的程度(probability),從高到低進行排序,展示給用戶觀看,整個過程在毫秒級的時間內(nèi)完成。

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖2. 引用自論文:Deep Neural Networks for YouTube Recommendations

召回層面的策略和邏輯有很多,也演化了很長一段時間,不過這不是我們今天聊的重點,我們來詳細聊聊,當我們拿到了召回結果,大概在一萬件以內(nèi)的規(guī)模下,模型是怎樣確定他們的先后順序的,機器怎樣自動化地計算出分數(shù)來評估用戶對他們的感興趣程度的。

排序模型的發(fā)展也有很長一段時間了,從互聯(lián)網(wǎng)逐漸興起開始,為用戶快速篩選出有價值的信息一直是一件非常核心的事。我們不妨來看看,為了完成這項任務,都經(jīng)歷了哪些演變過程。

先看一個簡單例子,一位女性用戶來到我們平臺,我們可以拿到的信息有她的性別、訪問時間、行為歷史記錄等,假設她之前逛了逛衣服,收藏了一雙鞋,最近又在瀏覽吹風機,而我們的召回候選集中又恰好有衣服、鞋和吹風機,我們應該怎樣來定義排序的邏輯呢?

規(guī)則學習

解決問題的第一階段,往往是依賴于直覺的,直覺告訴我們,每一個和用戶或者是商品有關的信息,都會影響到用戶的決策,這之中又必然存在著一定的數(shù)量關系,排序便有了最初的思路:人工規(guī)則。顧名思義,就是根據(jù)平臺運營人員對業(yè)務的熟悉程度,來直接定義物品的先后順序,例如平臺最近某件衣服是爆款,賣得很好,所以要排在前面,盡可能讓顧客看到,考慮到個性化因素,這位又是女性用戶,那么就把最近所有女性用戶購買的商品做一個統(tǒng)計,按照銷量從高到低排序,或者更近一步,某個地區(qū)的女性用戶,最近收藏過鞋子的某地區(qū)的女性用戶….只要劃分用戶特定維度后的數(shù)據(jù)流足夠多,規(guī)則足夠明確,最終所有商品對一個具體用戶都會有一個排序結果,一個粗糙的推薦排序策略也就成型了。

那么以上策略是否就是我們的排序方案呢?顯然并不是的。以上方案有兩個不太合理的地方:

  1. 人工的策略會因人而異,很難有一個統(tǒng)一的標準,而且?guī)缀醪豢赡馨阉行畔⒄显谝黄鹄闷饋怼?/li>
  2. 優(yōu)化的目標模糊,依賴于線上實踐結果來評價好壞,總體而言大家都是為了讓平臺更好,但是每一個具體的策略,到底是優(yōu)化點擊率還是轉(zhuǎn)化率還是用戶的停留時長、下拉深度,很難在給出規(guī)則時對結果有一個預期,線上實驗的成本很高,而且方案的迭代周期可能是無限長的(人總能想到各種不同的規(guī)則組合)。

有沒有一個方案能整合利用所有能拿到的信息,并且在上線前對結果有一個合理預期,甚至不需要上線實驗,離線就能評估策略的好壞呢?這個時候,機器學習方法出現(xiàn)在了我們眼前。

機器學習

解決問題的第二階段,就是在直覺的基礎上引入可量化的模型。模型是一個比較抽象的詞,在這里它指的是對一種映射的抽象描述,即 f(context,user,item)—> score,任何能用具體公式提供這個分數(shù)計算邏輯的方案,都可以叫做模型。衡量一個模型好壞的標準,就是這個假設出來的映射關系與現(xiàn)實中真實的內(nèi)在關系的距離。比如個子越高,體重就越大,就是一個根據(jù)身高信息去映射體重信息的線型模型,這個模型顯然是不嚴謹?shù)?,但在很多時候也是成立的。說回我們的排序模型,我們需要設計一個方案,從用戶、商品和上下文信息(事件發(fā)生的時間、場景等客觀信息)中,提煉出用戶對商品的偏好程度。

一個能同時整合所有信息,在形式上足夠簡單,在工業(yè)界的大數(shù)據(jù)和高并發(fā)下又擁有足夠穩(wěn)定性的模型,早就已經(jīng)被數(shù)學所給出,那就是著名的邏輯回歸模型,形式如下:

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛
一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖3. 邏輯回歸函數(shù)圖像

這個模型的形式雖然簡單,但思想足夠深刻,里面整合了數(shù)學界在參數(shù)估計、信息論和凸優(yōu)化等方向的研究成果,將變量用線性的方式結合起來,把定義在(-∞,+∞)的自變量映射到(0,1)的值域上,這里的(0,1)之間的分數(shù)可以理解為用戶感興趣的概率,整個過程便成了一個點擊率預估問題。當我們用線上實時收集到的用戶行為數(shù)據(jù)作為基礎,把用戶的點擊行為轉(zhuǎn)化為0或1的訓練目標,便可以用很成熟的數(shù)學方案快速地求出公式中的所有最優(yōu)化參數(shù)w,從而確定下最終的計算過程。雖然邏輯回歸模型在學術界已經(jīng)是基礎中的基礎,但由于其穩(wěn)定性和極高的計算效率,工業(yè)界也依然有很多業(yè)務場景中使用這套模型作為線上服務的主要擔當或者降級備用方案。

除了邏輯回歸以外,還有許多機器學習的模型被應用在排序環(huán)節(jié)中如NB, SVM和GBDT等,其中比較成功的模型是GBDT,這里面又以陳天奇博士提出的XGBoost模型最為著名,在工業(yè)界也有廣泛的應用。GBDT模型是以決策樹模型為基礎提出的組合模型,樹模型的特點是更加符合我們?nèi)藢κ挛锏呐袛喾绞?,大概的思想類似下圖:

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖4. 樹模型決策思路簡述

剛才提到的GBDT模型就是將以上這種決策行為給定量化,并且使用多棵決策樹進行組合決策的結果,相比于邏輯回歸模型,它提出了一個更符合人類直覺的視角,將排序問題拆解為對若干特征的而二分類組合,將各種用戶和商品特征在決策過程中進行了交叉,實踐中效果往往是更優(yōu)的,這也符合我們提到的“模型是對真實決策關系的模擬”這一觀點。但是樹模型也有它的不足,比如它優(yōu)化性能較低,對大數(shù)據(jù)量的計算性能較差,對增量訓練的支持度較差等等。

總的來說,無論是邏輯回歸還是GBDT模型,都是機器學習在推薦領域很好的實踐和探索,他們各自都還存在一些明顯的不足,業(yè)界針對這些不足的地方也都有各種補充和優(yōu)化的方案,經(jīng)過幾年的迭代,伴隨著理論和硬件條件雙重發(fā)展的基礎上,推薦系統(tǒng)迎來了它的深度學習時代。

深度學習

解決問題的第三階段,是在成熟的工業(yè)界方案基礎上,加入自己對具體業(yè)務場景的理解。邏輯回歸公式簡潔,性能可靠,GBDT思路清晰,效果出色,但他們是否就是問題的最終解決方案呢?顯然還是不夠的,如上面提到的,他們各自都還有不少的問題需要解決:

  1. 邏輯回歸對特征間關系的刻畫過于簡單,對特征僅僅做了線性組合,與現(xiàn)實中大量的非線性關系的存在是違背的,比如女性、上海、數(shù)碼產(chǎn)品這幾個特征的簡單加減法來描述用戶購買傾向,與我們的認知不符,這三個特征和購買意愿的關系,更有可能是非線性的,而GBDT在處理特征組合時使用的方式也比較單一,難以刻畫更為復雜的組合關系。
  2. 數(shù)據(jù)的排序邏輯過于單一,都是以點擊率作為目標,單一目標的問題在于,很容易導致結果缺乏多樣性,用戶此刻想看數(shù)碼產(chǎn)品,并不意味著滿屏的推薦都應該變成數(shù)碼產(chǎn)品,這可能反而會降低用戶體驗。

從解決這兩個問題出發(fā),我們的思路又細分到了兩個方向上,分別是拓寬模型的復雜度和多目標下的后排序干預。

第一個問題是拓寬模型的復雜度,在具體操作中可以分為兩個方面的工作,第一個方面,是在特征組合上盡可能提供復雜的特征,比如我們例子中,本身模型輸入的信息是性別、地區(qū)、用戶行為、商品屬性,但是我們可以人工定義一些其他的復雜特征,比如用戶是否購買過同類商品,用戶對同品牌商品的點擊次數(shù)等,通過增加特征的復雜度,來增加模型輸入的信息量,把一些非線性的關系轉(zhuǎn)化到線性模型上來解決,這樣做的好處是有效節(jié)省了計算資源,也減輕了線上推斷所帶來的壓力,對效果提升也很有幫助;不過弊端也是明顯的,那就是整體思路又回到了我們一開始人工規(guī)則的老路上,依賴于人的經(jīng)驗來做優(yōu)化,不過這里的人由平臺運營換成了算法工程師。所以能不能把拓寬非線性關系的工作也交給機器來完成呢?這便是第二個方面,引入深度學習的模型。

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖5. Google提出的模型的Wide&Deep模型架構

深度學習在如今的工業(yè)界早已是大名鼎鼎,從2016年起,在谷歌的W&D模型的影響下,工業(yè)界的推薦系統(tǒng)開始紛紛效仿,大踏步地邁進了深度學習所統(tǒng)治的時代,如今各大廠的主流推薦模型,都是在深度學習的基礎上做的開發(fā),關于深度學習的理論知識,相關講解有很多,這里就不詳細展開。對于推薦系統(tǒng)來說,深度學習所解決的核心問題,就是特征間非線性關系的自動化挖掘。這里面的邏輯,可以說是一個“用魔法來打敗魔法”的過程。我對這個問題的理解是這樣的,特征間正確的組合方式是存在的,只是組合成幾何級增長,遍歷嘗試的操作代價難以承受,這便是第一重“魔法”;而深度學習從理論上證明,只要給定入?yún)⒑湍繕?,它可以擬合任意復雜的函數(shù),但是最終你也不會知道擬合出來的函數(shù)具體形式是怎樣的(可解釋性目前為止也是學術界的一個很重要的方向),這便是第二重“魔法”;一邊是你無法遍歷的組合結果,另一邊是你無法解釋的組合結果,但最終產(chǎn)出了符合你預期的業(yè)務效果,所以我稱之為一個用魔法去打敗魔法的過程,這也是業(yè)內(nèi)深度學習算法工程師又被戲稱為“煉丹工程師”的原因,很多時候工程師對于模型的具體作用原理也是難以解釋的,唯一知道的,就是它是否“有效”。

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖6.阿里巴巴提出的ESMM多目標網(wǎng)絡

一文帶你了解得物推薦系統(tǒng)是如何做排序的。網(wǎng)友:真牛

圖7.阿里巴巴提出的重排序網(wǎng)絡

關于邏輯回歸的第二個問題,多目標和多樣性,就不能簡單通過拓寬模型復雜度來解決了。多目標優(yōu)化和后排序干預也是現(xiàn)在推薦排序側(cè)很重要的邏輯,由于深度學習這個魔法特別好用,所以業(yè)界也產(chǎn)出了很多相關的理論模型,比如阿里的ESMM和Re-ranking模型。不過由于后排序這塊是直接影響到用戶最終體驗的,不可解釋的魔法結果在目前的實用性和可控性上還是比不上能夠靈活調(diào)整的規(guī)則,因此在模型排序的結果環(huán)節(jié),又加入了一些人工規(guī)則,比如類目打散、品牌打散和曝光過濾等,來滿足一些主觀需求。最終的排序流程,還是一個計算機模型和人工規(guī)則互相輔助來實現(xiàn)的。

總結

以上便是推薦系統(tǒng)的大體排序邏輯,以后的模型還會越來越多,也未必都會局限在深度學習的領域,整個業(yè)界也還在探尋什么樣的模型能以最小的代價刻畫出人與物的協(xié)同關系,這個問題很可能沒有一個標準答案,需要算法工程師根據(jù)具體的業(yè)務場景和業(yè)務特點去構造和處理排序的問題。最終的排序結果是在訓練數(shù)據(jù)、特征選擇、模型結構和后排序邏輯的共同干預作用下決定的,數(shù)據(jù)會是排序邏輯的核心,而不是人工主觀意識在駕馭和操縱的。雖然小的細節(jié)還在不斷地調(diào)整和改變,但是大的方向一定是以更復雜的特征、更合理的模型結構、更高效的迭代方式,更靈活的規(guī)則調(diào)整來實現(xiàn)更好的業(yè)務指標。

 

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2025-01-15 09:06:57

servlet服務器Java

2022-09-29 13:09:38

DataClassPython代碼

2019-11-14 09:16:56

物聯(lián)網(wǎng)技術路由器

2023-11-06 08:16:19

APM系統(tǒng)運維

2022-11-11 19:09:13

架構

2023-05-17 11:33:45

梯度下降機器學習

2022-03-14 08:01:06

LRU算法線程池

2023-11-20 08:18:49

Netty服務器

2018-10-22 08:14:04

2019-07-04 15:16:52

數(shù)據(jù)挖掘大數(shù)據(jù)算法

2022-09-06 11:21:49

光網(wǎng)絡光纖

2018-12-05 08:26:52

物聯(lián)網(wǎng)智能物聯(lián)網(wǎng)技術

2019-09-10 10:14:15

2023-04-11 08:01:32

Web 開發(fā)源代碼映射

2019-04-19 14:03:52

APISDK接口

2023-10-27 08:15:45

2022-02-24 07:34:10

SSL協(xié)議加密

2023-11-08 08:15:48

服務監(jiān)控Zipkin

2023-03-31 08:16:53

Flutter優(yōu)化內(nèi)存管理

2021-09-13 22:34:56

區(qū)塊鏈新基建數(shù)字化轉(zhuǎn)型
點贊
收藏

51CTO技術棧公眾號