羅景:連接效率優化實踐

来源:https://www.cnblogs.com/datafuntalk/archive/2022/06/11/16365598.html
-Advertisement-
Play Games

分享嘉賓:羅景 58同城 高級架構師 編輯整理:洪鵬飛 內容來源:DataFun AI Talk《連接效率優化實踐》 出品社區:DataFun **導讀:**本次分享由以下幾個部分構成—— 58的業務背景 綜合排序框架 效率優化框架 基礎數據流程(數據) 策略優化路徑(演算法) 效率優化平臺(工程) ...


分享嘉賓:羅景 58同城 高級架構師

編輯整理:洪鵬飛

內容來源:DataFun AI Talk《連接效率優化實踐》

出品社區:DataFun


導讀:本次分享由以下幾個部分構成——

  • 58的業務背景
  • 綜合排序框架
  • 效率優化框架
  • 基礎數據流程(數據)
  • 策略優化路徑(演算法)
  • 效率優化平臺(工程)
  • 總結和思考

file

--

01 58的業務背景

file

這是58app端的業務展示,可以看出58的業務場景豐富且複雜,產品形態多樣,涵蓋了租房、二手房、二手車、招聘、本地服務以及二手物品等多種業務,針對每個業務,又分為置頂,精品,普通等多種不同的產品形態。

--

02 綜合排序框架

file

如上圖所示,整個演算法層分為三個階段:粗排、精排和調序。

粗排階段,主要考慮減小模型壓力,篩選出一部分排序候選集。主要採用時效性策略以及質量因數的降權策略。分別根據不同周期進行分層處理,用於時間降權;同時對質量因數,採用價格偏離、類目錯發、位置虛假等因數進行降權排序。

精排階段,主要考慮列表點擊率、有效轉化率、個性化以及相關性信息,對粗排後的集合進行精細化排序。

調序階段,根據業務相關以及過濾相關等策略進行重新排序。

在上述粗排、精排以及調序三個階段中,演算法團隊重點輸出了質量治理,效率優化以及流量調控三種核心能力。

--

03 效率優化框架

file

效率優化框架由三部分組成:數據、演算法以及工程。在進行效率優化框架設計和迭代過程中,主要結合相關業務,對策略的相關優化路徑進行迭代更新,最後對相關技術以及方案進行相關積累,形成平臺化沉澱,方便以後復用。

file

優化路徑,包括:策略優化路徑和效率優化平臺。

關於策略優化路徑,主要分為四個階段:

  • 反饋策略。這主要運用於業務建模初期,採用平滑策略,位置消偏,時間衰減,流量反作弊策略進行初期模型的相關排序;
  • 基礎模型。主要進行基礎流程建設,涉及LR、GBDT模型,用戶個性化,帖子結構化這幾方面進行優化;
  • 特征升級。主要針對組合特征,時效性升級,文本特征以及圖像特征幾個方面,使模型效果更佳;
  • 模型升級。主要針對融合模型,深度學習模型,以及線上學習方面進行相關迭代。

關於效率優化平臺,主要針對日誌合併清洗,特征工程,模型訓練評估以及上線驗證四個階段進行優化。

file

進一步對效率優化平臺進行介紹:主要針對日誌系統,日誌樣本,機器學習,上線試驗以及線上系統進行相關優化。

  • 日誌系統:針對日誌樣本、機器學習、上線試驗這幾個方面進行平臺化整合,包括流程執行、流程管理、特征開放以及配置管理等。
  • 日誌樣本:涉及日誌預處理,帖子特征抽取,個性化生成,樣本生成等;
  • 機器學習:涉及樣本採樣,特征工程,模型訓練,評估分析等;
  • 上線試驗:涉及推送流程,實驗系統,報表系統等。

接下來對涉及到的相關技術點進行介紹:

  • 數據:日反作弊、特征開放平臺、樣本選取;
  • 演算法:反饋策略、基礎模型、特征升級、模型升級;
  • 工程:特征組件化、融合模型框架化、平臺化整合。

1. 基礎數據流程(數據)

file

關於數據,主要涉及日誌反作弊和特征開放平臺。

數據的生成分為兩個階段,第一個階段為原始樣本生成,第二個階段為樣本生成。

原始樣本主要來自於曝光、點擊以及轉化日誌,在相關日誌的合併以及清洗之後可以獲得原始樣本數據。

樣本生成,主要是在特征開放平臺上生成。涉及到帖子特征庫,用戶個性化特征,以及相關的特征描述文件。

其中,帖子特征庫由帖子結構化,反饋特征,文本圖像特征三個方面組成;用戶個性化特征,主要由帖子特征庫和點擊轉化日誌而來。

對於樣本新特征問題,平臺採用自動合併機制,對新增加的帖子新特征以及用戶新特征進行合併。

經過上述兩步的處理,樣本數據便形成了。

file

在數據日誌反作弊階段,主要針對IP,用戶進行相關日誌反作弊處理,主要涉及到多指標判斷機制以及作弊標記機制:

  • 在多指標判斷機制中,主要有曝光量、點擊量、轉化量、點擊率、轉化率這多個指標進行相關的判斷;
  • 在作弊標記機制中,主要對特征的欄位進行相關的作弊類型標識。

下麵是針對IP反作弊規則的例子:

  • 採用曝光大於某個閾值,CTR小於某個閾值,對曝光異常但是點擊合理的IP數據進行相關的過濾;
  • 採用曝光大於某個閾值,轉化小於某個閾值,過濾掉曝光異常但轉化量偏低的IP數據;
  • 採用CTR大於某個閾值,過濾掉CTR異常的IP數據;
  • 採用轉化除以點擊大於某個閾值,過濾掉點擊到轉化異常的IP數據;
  • 採用CVR大於某個閾值,過濾掉CVR異常的IP數據等等。

file

模型的效果主要由特征,特征工程以及演算法組成,特征工程在模型效果方面表現的異常重要。數據特征開放平臺是主要為了簡化新特征嘗試流程,降低嘗試代價,並快速支持試驗。特征開放平臺採用規範化元數據描述、管理,自定義合併機制,支持時效性對齊,自動觸發,以及定製化回溯機制,其基本流程為,首先在特征註冊平臺上進行註冊,完善特征的元數據描述;接著按規範格式與約定時效性在給定的存儲位置生成數據;最後根據樣本生成流程基於特征描述緊張自動化合併。

2.策略優化路徑(演算法)

file

反饋策略在建模初期使用,主要採用平滑策略,位置消偏,時間衰減三種策略進行優化迭代,對準實時反饋以及歷史反饋分別進行7天為周期分鐘級滾動統計點擊率和轉化率以及30天為周期按天滾動的點擊率與轉化率。在實行反饋策略後,實時點擊率有10%的提升,而歷史轉化率方面,轉化效果有一定提升。

file

在數據樣本選取方面,支持多種場景,例如模型類型、業務類型、產品形態,並實現了靈活配置樣本的選取機制,大致有以下四種機制:

  • 基於表達式
  • 預定義預設組件(Raito,Pos,Neighbor,Random,Unique..)
  • 組合方式(and,or,not)
  • 自定義組件

同時可以採用標準方式選取,相關實例採樣以及樣本過濾操作。

file

在基礎階段模型上,通常採用14天的數據做訓練,並採樣成1:15的正負樣本比例,使用3天數據做為測試,並以AUC作為主要離線評測指標。原始特征在150維左右,針對LR模型採用離散化編碼處理方式,特征超高維度。模型方面,對原始特征主要採用XGB進行訓練。

在效果方面,針對租房普通列表頁面上,有20%以上的轉化率提升;而在租房精選上實現了30%以上的ECPM提升;而在普通列表頁面上,電話接通率提升10%以上。

3.效率優化平臺(工程)

file

在特征工程組件化方面,採用組件名(輸入,配置)到輸出的配置方案,其中涉及1對1的特征變換,1對n的特征編碼,n對n的特征組合,同時還滿足各種適配條件進行相關組件化配置。

在工程融合模型框架化方面,可以擁有以下兩種功能:

第一種,支持表達式配置,靈活,支持多種形式的組合;
第二種,樣本標識機制下,保證了批處理框架下的樣本對齊。

同時模型融合方面,主要採用結果融合以及特征融合,結果融合主要將模型預測結果作為特征,而特征融合方面,利用訓練好的模型來構建特征,例如GBDT編碼特征,NN編碼,FM隱向量等方式。

融合流程:

  • 第一步,在效率優化平臺按照正常流程訓練好待融合模型;
  • 第二步,準備目標模型樣本數據;
  • 第三步,基於樣本數據生成基於待融合模型提取的特征;
  • 第四步,將初始樣本數據與根據帶融合模型提取的特征進行合併,形成融合模型樣本;
  • 第五步,訓練目標模型。

file

特征升級主要包括:

  • 時效性升級:反饋特征按周期滾動,分鐘級更新,同時還提取了相應周期的個性化特征;
  • 特征組合:採用笛卡爾組合和匹配組合方式,例如價格面積組合,價格性別組合,個性化偏好等;
  • 文本圖像特征:採用詞向量,關鍵詞,圖像飽和度,圖像全連接模型輸出特征等。

file

關於模型升級,主要採用LR的預測結果接入GBDT,或者GBDT的結果接入LR;而在深度學習方面,採用Wide&Deep以及DeepFM等技術實現演算法迭代。

file

在WideDeep實現方面,主要將wide部分的連續特征進行離散化,相關特征有RCrctr,HCtagfhgectrap等特征;並將枚舉離散化特征,主要用於離散特征個數較少的情況;而Hash離散特征,主要用戶離散值數量較大的特征,離散分桶最大值為5000;在交叉特征方面,主要由帖子維度組合,帖子與用戶基礎屬性組合。而在deep部分,連續特征主要採用離散化最大最小歸一化處理,枚舉離散特征和wide部分一致,而Hash離散特征採用embedding_size方式,而在Embedding特征方面,採用個性化加個性化組合的方式。

file

而在平臺整合方面,主要由三個大的模塊組成:

  • 第一個模塊為基礎模塊,包括日誌樣本、機器學習以及上線試驗;
  • 第二個模塊為用戶工作空間,主要用於數據相關的配置;
  • 第三個模塊為基礎數據,主要涉及流程資料庫,樣本數據,日誌數據,和效果數據。

通過這三個模塊,平臺擁有流程創建,流程配置,運行監控,模型轉換,推送上線,報表關聯等功能,同時應對了特征開放平臺,數據管理,流程管理,實驗管理,報表管理等方面。

file

上圖為機器學習平臺的配置頁面,可以看出從基礎配置,訓練採樣,測試採樣,特征以及訓練,可以看出模型測試和訓練簡潔便利,做到了5+專屬的流程切換,全效率優化流程管理,策略成電分享復用,也降低了維護代價,降低優化的門檻。

4.效果和下一步

經過整個流程的優化,可以看出效果:房產精選(二手房精選、租房精選)實現了相比基線40%到60%的ECPM(千次展現收入)提升。而在普通業務方面,租房,二手房,二手車上實現10%的轉化率提升。

下一階段,將對深度學習進行相關的探索,嘗試多種深度模型,並集成Tensorflow到模型訓練流程,探索線上、離線學習一體化平臺,同時要利用豐富的數據,例如有效轉化數據,文本圖像視頻特征等。

--

04 總結&思考

在策略優化上,要儘可能循序漸進,關註數據豐富度與質量,同時明確業務優化目標,兵保證線下線上的一致性,此外還要保證新技術探索與優化目標的權衡。在平臺建設上,要重視工程能力,監控預警機制,同時進行迭代優化。


今天的分享就到這裡,謝謝大家。
本文首發於微信公眾號“DataFunTalk”。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 現在有些客戶的業務數據還在使用傳統Excel來彙總信息,使用Email實現數據的傳遞與交互。iNeuOS線上報表工具的開發與發佈基本上可以替代傳統Excel的使用,並且用戶可以自定義模板、隨意查詢數據等。 ...
  • 1.前言 hi,大家好,我是三合。作為一名程式猿,日常開發中,我們在接到需求以後,一般都會先構思一個模型,然後根據模型寫實體類,寫完實體類後在資料庫里建表,接著進行增刪改查, 也有第二種情況,就是有些人喜歡先在資料庫里建表,然後再添加實體類。前者是code First,後者是db First,如果數 ...
  • DS18B20 是一個常見的數字溫度計晶元, 因為測溫準確, 廉價且接線簡單, 實際應用廣泛, 在各種教學實驗套裝中出鏡率也很高. 在寫STC8H GPIO示例的時候寫了一下 DS18B20, 這個型號雖然簡單古老, 但是內容比較有意思, 一個篇幅寫不下, 所以把內容抽出來單獨介紹. ...
  • 在日常開發中,郵件發送是個比較常見的場景。因此出現了很多相關的軟體和服務,各大雲廠商也推出自己的郵件服務。今天筆者就像大家介紹一種常見的組合,AWS的郵件服務 SES 與郵件伺服器 postfix 的配置和使用方法。 概述 什麼是 AWS-SES Amazon Simple Email Servic ...
  • 寫在前面 令人愉快又頹廢的周日馬上就要到了,正在計劃這周博客寫什麼的我,突然收到導師發給我的消息,What?要給我發補助? 這樣中午不得去食堂加一個餐,很快啊,我就說了聲:謝謝。 但後續證明我還是太嫩了些,天上是沒有免費午餐的。 不過對於這種專業相關,而且能從中學到不少東西的任務,我還是十分樂意去乾 ...
  • 1.下載安裝包 1.1 下載elasticsearch 7.13.3 curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.13.3-linux-x86_64.tar.gz 1.2 解壓文件 t ...
  • SQL的語法 SQL通用語法 SQL語句可以單行或多行書寫,以分號(“;”)結尾。 SQL語句可以使用空格或縮進增強可讀性。 MySQL資料庫的SQL語句不區分大小寫(建議關鍵字大寫)。 註釋 單行註釋: -- 內容 # 內容(MySQL特有) 多行註釋: /* 內容 */ SQL語句分類 分類 全 ...
  • MyBatisPlus(簡稱MP)是基於MyBatis框架基礎上開發的增強型工具,旨在簡化開發、提高效率 - 無侵入:只做增強不做改變,不會對現有工程產生影響 - 強大的 CRUD 操作:內置通用 Mapper,少量配置即可實現單表CRUD 操作 - 支持 Lambda:編寫查詢條件無需擔心欄位寫錯... ...
一周排行
    -Advertisement-
    Play Games
  • 概述:在C#中,++i和i++都是自增運算符,其中++i先增加值再返回,而i++先返回值再增加。應用場景根據需求選擇,首碼適合先增後用,尾碼適合先用後增。詳細示例提供清晰的代碼演示這兩者的操作時機和實際應用。 在C#中,++i 和 i++ 都是自增運算符,但它們在操作上有細微的差異,主要體現在操作的 ...
  • 上次發佈了:Taurus.MVC 性能壓力測試(ap 壓測 和 linux 下wrk 壓測):.NET Core 版本,今天計劃準備壓測一下 .NET 版本,來測試並記錄一下 Taurus.MVC 框架在 .NET 版本的性能,以便後續持續優化改進。 為了方便對比,本文章的電腦環境和測試思路,儘量和... ...
  • .NET WebAPI作為一種構建RESTful服務的強大工具,為開發者提供了便捷的方式來定義、處理HTTP請求並返迴響應。在設計API介面時,正確地接收和解析客戶端發送的數據至關重要。.NET WebAPI提供了一系列特性,如[FromRoute]、[FromQuery]和[FromBody],用 ...
  • 原因:我之所以想做這個項目,是因為在之前查找關於C#/WPF相關資料時,我發現講解圖像濾鏡的資源非常稀缺。此外,我註意到許多現有的開源庫主要基於CPU進行圖像渲染。這種方式在處理大量圖像時,會導致CPU的渲染負擔過重。因此,我將在下文中介紹如何通過GPU渲染來有效實現圖像的各種濾鏡效果。 生成的效果 ...
  • 引言 上一章我們介紹了在xUnit單元測試中用xUnit.DependencyInject來使用依賴註入,上一章我們的Sample.Repository倉儲層有一個批量註入的介面沒有做單元測試,今天用這個示例來演示一下如何用Bogus創建模擬數據 ,和 EFCore 的種子數據生成 Bogus 的優 ...
  • 一、前言 在自己的項目中,涉及到實時心率曲線的繪製,項目上的曲線繪製,一般很難找到能直接用的第三方庫,而且有些還是定製化的功能,所以還是自己繪製比較方便。很多人一聽到自己畫就害怕,感覺很難,今天就分享一個完整的實時心率數據繪製心率曲線圖的例子;之前的博客也分享給DrawingVisual繪製曲線的方 ...
  • 如果你在自定義的 Main 方法中直接使用 App 類並啟動應用程式,但發現 App.xaml 中定義的資源沒有被正確載入,那麼問題可能在於如何正確配置 App.xaml 與你的 App 類的交互。 確保 App.xaml 文件中的 x:Class 屬性正確指向你的 App 類。這樣,當你創建 Ap ...
  • 一:背景 1. 講故事 上個月有個朋友在微信上找到我,說他們的軟體在客戶那邊隔幾天就要崩潰一次,一直都沒有找到原因,讓我幫忙看下怎麼回事,確實工控類的軟體環境複雜難搞,朋友手上有一個崩潰的dump,剛好丟給我來分析一下。 二:WinDbg分析 1. 程式為什麼會崩潰 windbg 有一個厲害之處在於 ...
  • 前言 .NET生態中有許多依賴註入容器。在大多數情況下,微軟提供的內置容器在易用性和性能方面都非常優秀。外加ASP.NET Core預設使用內置容器,使用很方便。 但是筆者在使用中一直有一個頭疼的問題:服務工廠無法提供請求的服務類型相關的信息。這在一般情況下並沒有影響,但是內置容器支持註冊開放泛型服 ...
  • 一、前言 在項目開發過程中,DataGrid是經常使用到的一個數據展示控制項,而通常表格的最後一列是作為操作列存在,比如會有編輯、刪除等功能按鈕。但WPF的原始DataGrid中,預設只支持固定左側列,這跟大家習慣性操作列放最後不符,今天就來介紹一種簡單的方式實現固定右側列。(這裡的實現方式參考的大佬 ...