Categories
程式開發

一個優秀的Push平台,需要經歷怎樣的前世今生


對閒魚用戶來說,因為閒魚商品庫存只有一件,商品的時效性很強,因此當用戶關注的賣家上新、瀏覽的商品發生降價或者平台為用戶找到一批高性價比商品時,用戶期望盡快被通知。 Push已經成為用戶與閒魚平台聯繫的重要紐帶。

本文將以技術同學視角,介紹閒魚Push從離線手工投放的1.0版本進化到智能個性化的2.0版本的發展過程,詳細說明遇到的問題和技術方案選型,以期給讀者帶來一些思考和解決類似問題的思路。

一個優秀的Push平台,需要經歷怎樣的前世今生 1

閒魚Push1.0

當閒魚all in無線後,平台需要把與用戶相關的優質內容推送給用戶,便於用戶快速找到想購買的商品和感興趣的內容。平台亟需一個Push產品化方案保證將優質內容以Push的形式觸達到用戶,提升用戶體驗。基於這樣的前提,閒魚Push1.0方案的主要思路如下:

  1. 計算Push用戶名單

    a. 計算與用戶強相關的優質Push場景,根據場景得到用戶名單

    b. 垂直業務根據用戶畫像等條件,圈選業務的目標人群

  2. 基於場景疲勞度過濾每個用戶能發送的場景列表

  3. 對每個用戶的場景列表進行全局擇優,挑選點擊率最高的場景作為目標場景

閒魚Push1.0方案簡單明了,流程清晰,而且離線流程方便監控告警和問題排查,滿足當時的業務需求,上線後運行穩定。在很長一段時間內1.0方案的核心架構和流程沒有太大變更。但隨著業務發展,閒魚Push1.0方案的一些弊端開始暴露,包括

  • Push用戶名單計算不夠實時
  • 消息卡片樣式不夠豐富
  • Push觸發時機單一
  • Push場景比較少

這些問題最終導致Push點擊率無法繼續提升,觸碰到1.0方案的天花板。為了解決這些問題,我們對閒魚Push系統進行幾個方面的優化升級,並最終重構了閒魚Push系統。

閒魚Push1.1

為了給Push用戶提供更好的用戶體驗,豐富用戶Push場景,我們優先考慮從消息樣式、觸發時機和用戶場景幾個方面優化擴展現有閒魚Push方案,優化項主要分為消息feeds流升級、 Push時間個性化、實時Push等。

消息feeds流升級

Push會沉澱到客戶端的消息板塊,而消息板塊也是用戶進入閒魚後瀏覽最頻繁的板塊之一,消息樣式最開始只支持文本消息和圖片消息,這類消息樣式的問題是對用戶來說有效信息曝光少、而且消息樣式單一。為此我們對消息展示形式進行升級,通過feeds方式展示消息,提升有效信息曝光率,優化消息樣式,打造消息板塊的用戶心智。 feeds流升級上線後效果明顯,因為用戶感興趣的內容相比透出更多,UV點擊率和用戶次留相對提升都很大。

一個優秀的Push平台,需要經歷怎樣的前世今生 2

第一條為feeds流消息,之後是圖片消息,相對來說,feeds流消息可以透出更多有效信息

Push時間個性化

閒魚Push1.0方案主要支持的是定時批量Push,實際的運行情況是定時批量給目標用戶發Push。 Push觸發時機比較單一,人為造成流量較為集中,增加系統穩定性風險;另外統一的觸發時機並不適用於所有用戶,存在對部分用戶打擾的情況。

針對這種情況,我們優化了Push觸發時機,由算法根據用戶行為計算預測每個用戶的觸發時機。算法將用戶相對平均的分在一天之中,在用戶相對活躍的時間段將Push觸達給用戶,減少對活躍用戶騷擾,也使得Push觸達的用戶群體分層更加合理健康。

實時Push

閒魚Push1.0方案主要覆蓋的是用戶相關離線場景,對用戶實時行為產生的場景覆蓋不夠,而且這類場景較離線場景相比實時性更高,對用戶來說相對更重要。針對這個問題,我們增加了對實時場景覆蓋,將用戶行為抽象成關係模型,以IFTTT作為系統整體觸發機制。當關係一側的用戶行為發生變更後觸發對另一側的觸達,這類場景實時性更強,和用戶強相關,提升用戶Push場景豐富度,增強用戶粘性。實時Push場景上線後Push點擊率相對離線場景提升1倍以上,具體技術細節可參考《閒魚IFTTT》。

以上是我們針對閒魚Push1.0的功能優化和增強,通過這些能力也擴展支持了更多場景和業務,最終組合在一起成為閒魚Push1.1版本。

閒魚Push的今生

閒魚Push1.1整體上線後極大提升了用戶Push場景豐富度和用戶體驗。隨著對Push和用戶理解的深入,我們發現還有優化提升的空間,包括:

  • 平台視角不夠,現有的優化更偏向點對點,需要從閒魚Push平台視角將這些點連成線形成合力,產生1+1>2的效果
  • 現有閒魚Push流程的本質還是離線計算,算法無法進行更加實時的個性化和全局擇優,對用戶體驗有一定影響
  • 場景配置不夠靈活,新增場景成本高,制約了豐富用戶Push場景的進度

基於這些原因,我們最終對閒魚Push系統進行重構和升級,打造閒魚Push實時智能投放平台Hermes。 Hermes取自希臘神話,他聰明(智能)、行動敏捷(快)、多才多藝(多種觸達),最能契合閒魚Push實時智能投放平台的使命願景。

邏輯架構

一個優秀的Push平台,需要經歷怎樣的前世今生 3

Hermes架構與閒魚Push1.0完全不同,以實時為目標,在場景素材準備、算法全局調優和Push發送等關鍵環節實現實時或準實時,提升Push內容時效性;另外從平台角度出發,將Hermes分為配置中心、匹配中心和任務中心,各個子系統定義交互的數據協議,彼此沒有強依賴。三個子系統的作用分別是:

  • 配置中心

    配置中心負責維護平台核心數據模型,給業務方提供頁面操作配置Push場景和素材,降低業務方接入成本;並且把配置數據以離線全量和實時增量的方式同步給算法模型,作為匹配依據。

  • 匹配中心

    匹配中心又稱為算法擇優中心,匹配中心負責訓練算法擇優模型,根據場景和素材配置為每個用戶個性化篩選,根據每個素材歷史點擊率數據排序,根據用戶近期行為召回用戶最有可能感興趣的素材和個性化內容。

  • 任務中心

    任務中心負責Push觸發時機和實際觸達,任務中心核心支持定時觸發、實時觸發和時間個性化觸發,目的是對Push觸發方式收口,為不同的業務和場景選擇不同觸發方式,幫助業務實現業務目標。另外是對觸達進行收口,方便平台編排觸達計劃,包括觸發時間和發送量級,保證達到業務目標同時不會對Hermes和業務下游系統造成過大瞬時壓力。

業務效果

Hermes平台上線後效果非常明顯,主要表現為:

  • Push點擊率相對提升達到兩位數
  • 用戶場景覆蓋量直接翻倍
  • Push點擊激活的DAU也超過歷史最高水平

總結

本文介紹了閒魚Push從前世離線計算的1.0版本,發展到多項功能優化的1.1版本,最終進化成今世的實時智能投放平台的全過程,其實閒魚Push的每個階段都契合當時業務發展需要,但對於用戶體驗的無限追求最終產出了閒魚Push實時智能投放平台Hermes。希望這種方式可以幫助讀者理解閒魚Push發展的業務背景和技術方案選型考量。接下來我們還會有一篇文章詳細說明Hermes的技術方案,包括系統架構、技術選型、性能優化和穩定性保障措施,歡迎大家繼續關注。

本文轉載自公眾號閒魚技術(ID:XYtech_Alibaba)。

原文鏈接

https://mp.weixin.qq.com/s/yGsymqoOiREqa9sLdWVCVQ