天天看點

閑魚觸達系統背後——我想更懂你

作者:閑魚技術-之誠

背景

上周看完了閑魚 push 系統 Hermes 的“三生三世”,大家是不是一直等着“十裡桃花”呢?Hermes 咋就這麼靈活呢?她咋就這麼懂你呢?今天,小編我就帶領大家一起揭開她神秘的面紗。

觸達類業務,對使用者最重要的三個問題:

• When is Right? 什麼時候發給我最合适?

• Who is Right? 什麼樣的場景更适合我?

• What is Right? 發什麼内容更吸引我,我更感興趣,對我有幫助呢?

結合 3R 原則,如何快速的觸達使用者,更好的更優質的推送使用者感興趣的内容,是消息推送需要解決的關鍵問題。

思路

Hermes 的設計理念是将系統分為三部分,不同的元件實作不同的需求:

• 合理的選擇發送時機(When)通過任務中心完成。

• 不同場景選擇不同的使用者(Who)通過配置中心完成。

• 發送使用者最感興趣的内容(What)通過比對中心完成。

首先,讓我們來了解一下 Hermes 的整體技術架構。

閑魚觸達系統背後——我想更懂你

我們可以從架構圖中看出,配置中心負責維護平台核心的資料模型,提供任務和素材的内容給比對中心和任務中心;任務中心負責觸達的時機選擇和實際的觸達計劃,保證系統穩定性;比對中心負責素材場景擇優,疲勞度控制以及實驗。

在具體讨論各個部分的設計之前,讓我們先梳理一下 Hermes 在 push 整體觸達鍊路上的不同類型:

• 個性化觸發,通過洞察使用者感興趣的内容,有針對性的幫助閑魚使用者發現價值。舉例來說,通過算法,找到使用者最容易接受消息推送的時段(某使用者 A 喜歡在上午吃完早餐後打開手機),推送使用者感興趣的消息内容(使用者 A 最近喜歡浏覽一些數位産品),幫助他們更好的通過閑魚滿足個人需求(閑魚将最近有關數位産品的一些促銷活動推送給使用者 A,使用者 A 找到了一個好 deal,很開心)

• 實時觸發,通過洞察使用者使用閑魚的實時行為,更好的幫助使用者實作個人需求,比如使用者浏覽了某個商品 x,如果商品 x 降價了,我們會通過消息推送告知使用者曾經浏覽過的商品降價了,這樣使用者就可以用更便宜的價格買到喜歡的商品。類似的還有關注賣家上新等場景。在觸達方式上,我們有 push、短信、popLayer 等不同的觸達方式,針對每種方式的特點,優化使用者接收消息的體驗。

結合上述兩種類型,我們來講解系統是如何通過各部分的配合實作上述鍊路的。

配置中心

配置中心是 Hermes 靈活的重要一環,如何快速的發掘使用者感興趣的内容,快速的配置,快速的上線是影響使用者體驗的重要因素。首先需要明白配置中心的三個核心角色,任務、人群和素材。營運可以通過平台配置不同的活動(就是任務),每個活動都可以建立多個素材,素材支援千人千面(個性化内容),營運同學針對各自負責的活動,圈選對應的人群(奧格使用者增長平台【1】),是以任務和素材是一對多的關系,任務和人群是一對一的關系。

閑魚觸達系統背後——我想更懂你

Hermes 的配置中心對任務和素材進行分開管理,系統會把任務按照觸達目的進行分類,任務關聯素材。明确的分類管理,對營運同學管理目前的營銷活動,活動目的以及觸達形式一目了然,任務素材稽核機制保證了推送給使用者的活動品質,資料大盤的報表便于後期做資料分析,更好的了解使用者對發送内容的回報。

如何發掘使用者個性化的内容呢?每個業務場景都會根據不同使用者的曆史行為産出一張個性化 ODPS 表,這裡面算法會根據不同使用者的特點産出不同的内容。此外,時效性也非常關鍵,計算出來的個性化内容如果幾天後才發給使用者,可能使用者已經不感興趣或者有新的關注點,如何快速同步産出的結果來及時發送給使用者呢?在資料流轉的設計架構中,配置中心的任務素材内容我們存儲在 mysql 和 ODPS(阿裡海量資料離線處理平台【2】)中,通過離線同步和實時同步兩種方式輸入到比對中心(算法中心):任務素材的配置資訊存儲在 mysql 中,離線通過 ODPS 同步機制,實時通過監聽 binlog 機制,同步發送 MQ 消息給比對中心;素材千人千面的内容我們存儲在 ODPS 表中,離線同步我們采用了 ODPS 同步機制,實時同步我們利用 Blink(阿裡海量資料實時流計算平台【3】)來完成,具體的方式通過 Blink 監聽 ODPS 表的内容變更,然後将内容同步到比對中心對應的資料存儲中(IGraph 資料庫,下文會有介紹)。通過實時的資料同步,我們可以做到内容快速配置上線,這也展現了 Hermes 的靈活。結合個性化内容的生成,我們可以給比對中心提供充足的素材供比對中心找尋使用者最感興趣的内容,發掘使用者的興趣點。

閑魚觸達系統背後——我想更懂你
閑魚觸達系統背後——我想更懂你

任務中心

任務中心主要負責觸達時機的确定,使用者校驗,計算任務素材比對清單,調用比對中心來判定是否對使用者進行觸達,業務校驗,資料埋點,消息觸達,整體鍊路如下圖:

閑魚觸達系統背後——我想更懂你

在觸達時機上,根據不同類型的消息特點,我們把觸達時機分為兩類:個性化觸發是算法通過離線 T-1 日算出每個使用者最有可能接受觸達的時間(個性化時間),産生一張 ODPS 表,任務中心通過 SchedulerX(阿裡分布式排程系統)排程這張個性化時間表,查找符合條件的使用者清單,将使用者清單封裝為消息發送(MetaQ,阿裡自研分布式消息隊列),接收到消息的服務針對每個使用者,進行上述的鍊路傳遞;實時觸發是通過端智能的使用者行為采集,上報,根據使用者目前所在的場景,挑選适合該場景的資訊發送給使用者。這其中,感覺使用者行為和決策下發是 Omega 系統實作的,Hermes 通過與 Omega 系統配合,獲得觸發時機以及對應場景,關于 Omega 系統的介紹,我們公衆号之前的系列文章《端智能系列》會給你詳細的闡述(傳送門)。

閑魚觸達系統背後——我想更懂你

當整條鍊路觸發之後,系統首先校驗使用者是否符合系統要求,如果符合的話系統會根據使用者去查詢使用者命中的任務(其實是查詢使用者是否在某個人群中,還記得一個任務對應着一個人群嗎?),根據使用者命中的任務,通過配置中心找到對應的符合這個使用者的所有的素材,然後将這個素材清單結合一些配置資訊發送給比對中心,比對中心具體的功能下個段落會有仔細講解,比對中心傳回決策”是否發送消息“給目前請求使用者,如果發送,發什麼素材以及發送什麼内容;如果不發送,不發送的原因,便于做後期分析統計。如果發送的話,任務中心會進行業務參數校驗,千人千面校驗等一系列校驗内容確定素材合理合法,然後記錄資料埋點以及後期日志,最後通過閑魚自研的消息下發管道 Heracles 推送給使用者,參見下圖:

閑魚觸達系統背後——我想更懂你

這裡需要單獨說明一下實時觸發的場景,由于實時觸發的場景多樣,系統會根據使用者行為推送給使用者不同的消息内容。但系統又不能對使用者造成騷擾,這就需要比對中心需要區分這些場景,有針對性的選擇最合适的内容,針對複雜的場景,需要進行場景隔離。這就需要不同的比對中心,是以系統要對比對中心靈活配置,這裡我們通過傳入比對中心的 id 靈活選擇對應的比對中心,解耦了任務中心和比對中心,對未來更多類型的場景,提供了可能。

閑魚觸達系統背後——我想更懂你

比對中心

Hermes 除了快,還很懂你,奧妙就在比對中心。她不光幫助 Hermes 回答了“ 是發 or 還是不發,That is a question"(緻敬著名英國文豪莎士比亞),還解答了發送什麼内容對使用者最有用,才是使用者最感興趣的,最能幫助到使用者。咋做的呢?比對中心來自阿裡算法平台 TPP,結合配置中心準備好的個性化内容資訊,算法小姐姐會根據場景模組化,根據使用者的曆史資料,實時行為進行模型訓練,對素材進行預估打分,比對召回,素材之間的 AB 實驗和賽馬【4】,最終決定哪個素材以及内容是最适合使用者的。當然,在此之前,還有非常重要的一步,就是消息觸達不能對使用者造成騷擾,是以根據使用者、任務、素材、内容疲勞度來綜合判斷到底發還是不發,以及什麼素材和内容滿足疲勞度控制,在實時場景中,比對中心相對個性化觸發更為複雜,這裡除了單場景的素材擇優,還需要考慮到多個場景下如何進行場景擇優的問題,比如使用者進入 app 首頁這個場景,可能會觸發多個場景,每個場景都有對應的消息觸達,那麼比對中心如何選擇最優場景,再根據場景中的不同素材進行素材擇優,這裡的模型設計會更為複雜。在平台上,算法使用了阿裡自研的推薦平台 TPP,内部使用到的資料存儲是 IGraph,一種阿裡自研的高性能圖資料庫。

閑魚觸達系統背後——我想更懂你

小結一下,結合上述的具體闡述,通過配置中心,任務中心和比對中心的關聯,Hermes 可以快速發掘使用者感興趣的内容,并且在使用者易于接受的時機把内容傳播給使用者,同學們,你們聽明白了嗎?有啥問題嗎?有問題的話就留言吧,卡爾.薩根說過:"世上沒有傻問題" (順便點個"在看", 小哥哥晚餐就給自己加個雞腿了)

業務效果

Hermes 平台上線之後效果非常顯著,使用者點選率提升兩位數,說明使用者對消息推送的時間相較于老系統更容易接受,消息内容更感興趣;使用者場景的覆寫量直接翻倍,這為使用者提供了更豐富的場景,給使用者帶來了更有趣的内容,是以通過 push 激活的閑魚 DAU 也超過了曆史最高水準。

除了業務效果,其實 Hermes 讓營運效率也得到了顯著提升,為什麼想聊一下這個呢?因為這個其實對使用者關系密切,我們身處在一個資訊量爆炸的時代,每天都有很多的時事熱點,營運同學需要根據時事熱點第一時間建立實時性高的活動,将熱點與閑魚與使用者有機的結合在一起,推送給使用者當下最感興趣的内容,這就要求 Hermes 在營運配置上必須快,配置要簡單,過程要清晰,速度要快。

在 Hermes 還未誕生的時候,老系統配置,測試,稽核往往需要三天以上的時間,而現在所有的流程全部在管理後天配置完成,實時生效,資料大盤統計,歸納整理一站式全部搞定,誰用誰知道,用了都說好!

總結與展望

本文從技術角度講解了 Hermes 在使用者觸達方面靈活,了解使用者的特點,深入解釋了閑魚觸達平台中 push 的技術架構和主體流程,在阿裡内部平台以及團隊自研應用的支援下,實作了千人千面,精準快速觸達的使用者體驗。Hermes 作為閑魚觸達的統一收口平台,不光是 push,短信,未來也會接入 open page 等更豐富的觸達形式,通過不同的觸達方式,優化使用者體驗;在閑魚觸達的整體架構設計中,未來我們會對場景擇優和内容選擇上進行深度的優化,針對不同的業務目标,比對出最适合使用者的場景以及消息内容。為了使用者,沒有最懂你,隻有更懂你。希望通過觸達聯通我們的使用者,為使用者提供最及時最想看到的閑魚消息。希望大家持續關注我們的最新進展,對消息觸達感興趣的同學歡迎和我們一起讨論你感興趣的問題,希望我們的平台可以幫助到更多的使用者!

備注

備注 1:奧格 -淘系使用者生命周期全鍊路管理平台

備注 2:ODPS -阿裡海量資料離線處理平台

備注 3:Blink - 基于 Flink 的阿裡海量資料實時流計算平台

備注 4:賽馬-素材競争,一種自然的實驗方式,通過素材自身内容進行競争,優勝略汰

繼續閱讀