羅景:連接效率優化實踐

来源: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
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...
  • 1. JUnit 最佳實踐指南 原文: https://howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/ 我假設您瞭解 JUnit 的基礎知識。 如果您沒有基礎知識,請首先閱讀(已針 ...