01 數據采集層 流量分發第一步規范采集海量數據

《易經》:“初九:潛龍勿用”。潛龍的意思是隱藏,陽氣潛藏,陽爻位于最下方稱為“初九”,龍潛于淵,是學而未成的階段,此時需要打好基礎。

而模塊一我們就是講解推薦系統有關的概念、基礎數據體系搭建、埋點上報、用戶和物品畫像、標簽挖掘、AB 測試系統等各基礎知識,助你快速了解互聯網業務場景及推薦系統的作用。

這一講作為模塊一的第一講,有必要先來了解一下個性化流量分發體系的整個搭建流程。

在課程開始之前,我們先看一個例子:

在日常生活中,打開 58 同城網站時,我們可能會遇到以下情形:

  • 和好友同時打開 App,發現我倆的首頁金剛區本地服務的圖標和文字不一樣?

  • 搜索“小區搬家”,發現首頁搜索框里的推薦詞也發生了變化。

58 同城怎么知道我需要什么樣的本地服務?為什么搜索框里的推薦詞也發生了變化?這就涉及這一講要講的內容——個性化流量分發體系。

以平臺是否掌控整體流量分配情況為依據,我們把個性化流量分發體系的模式分為中心化模式和去中心化模式。為了方便你理解,我們再拿 58 同城舉例(主要看下中心化模式)。我們知道 58 同城 App 首頁有搜索框、分類宮格式導航、部落信息輪播、頭條欄目、猜你喜歡推薦等業務模塊,流量就是通過這樣的設計模式從首頁中心化分配到其他各個業務模塊。

相信你對個性化流量分發體系已經有了初步了解,接下來我們繼續揭開它的真面目。

個性化流量分發體系

那到底什么是個性化流量分發體系呢?個性化流量分發體系是通過、策略手段來平衡用戶體驗和商業目標。在這個過程中,我們需要把用戶的訪問流量合理分配到各個流量利用區,促進流量利用最大化,或者說獲得流量最大限度轉化,最終提升流量價值,從而達到戰略意圖。因此,個性化流量分發體系的本質就是對整個產品的用戶行為路徑進行優化。

在個性化流量分發體系搭建過程中,數據是非常重要的資產,也是驅動決策的燃料。這里提及的數據,主要指的是基本信息、顯式反饋、隱式反饋這三種。

  • 基本信息:主要指用戶的性別/年齡/地區、物品的分類/款式/重量等。

  • 顯式反饋:一般指用戶對物品的真實評分,這類數據的特點是用戶操作成本高,數據量小,更真實。

  • 隱式反饋:一般指除直接評分以外的若干用戶行為數據,包括點擊、加購、收藏、購買、瀏覽時長等,這類數據特點是用戶操作成本低、數據量大、具有一定的不真實性。用戶行為數據還可以進一步通過聚合、梳理形成用戶的行為表現數據(如活躍度、回訪、復購情況等)。

而個性化流量分發的過程,其實就是先對基本數據和反饋數據進行加工,再利用加工結果進行決策的過程。在數據流轉的過程中,個性化流量分發體系被劃分為數據采集層、數據加工層、數據決策層、效用評價層這 4 層。

個性化流量分發體系架構

從上圖可知,在數據采集階段,我們的主要工作是全面了解產品和用戶。在數據加工階段,我們的主要工作是對用戶和物品分門別類。在數據決策階段,我們的主要工作是驅動分發方案和產品優化,這也是搜索和推薦等產品的工程和算法能力輸出階段。在效用評價階段,我們的主要工作是評估流量分發的效果并形成數據反饋。

接下來我們著重講解在數據采集階段,我們都需要做哪些工作?

特殊說明:數據加工階段的內容我們將在 02 講和 03 講中著重講解,效用評價階段的內容在 04 講中著重說明,而數據決策階段因為是推薦系統的核心,也是本專欄的重中之重,所以會放在模塊二、三、四、五中進行深度說明。

數據采集階段

《道德經》中說“九層之臺,起于累土”,數據采集階段作為后面三個階段的基礎,雖然它不涉及復雜算法,但這個階段的工作內容相對細碎且容易出錯,因此我們有必要從細微處著手,先把地基打牢。

在實際業務中,如果我們擁有海量數據,但是采集的數據質量很差,那么此時就算使用再好的算法也是“巧婦難為無米之炊”,并會使得后面三個階段徒勞無功。由此可見,數據采集階段的意義重大。

在數據采集階段,它的最大價值是規范、高效、準確地獲取海量數據,以此保證數據的準確性,防止數據出現偏差。

下面,我們通過一張圖了解整個數據采集流程,以及在這個階段我們需要做哪些工作。

數據采集流程

從圖中可知,數據采集流程包括數據需求梳理、埋點規范制定、埋點實施、數據上報、生成數據表、數據驗收等流程。而在數據采集之前,我們的首要工作是數據需求梳理、埋點規范構建、埋點位置梳理。

(1)數據需求梳理

在真實業務中,數據需求的來源一般都比較廣,除推薦系統的需求外,還包括營銷、畫像、廣告、標簽等需求。

面對諸多需求時,我們不僅需要構建靈活的數據埋點上報規范,還要滿足業務的現有需求,更重要的是要為將來可能出現的需求留出擴展空間。這就要求我們將條理化的業務指標體系(即數據需求)梳理成具體實施需求,而解決該問題的關鍵在于下面三個步驟。

步驟一:確認事件與變量

事件指的是我們需要分析的數據來源,最終它是一個結果性指標,比如支付成功。而變量指的是事件的維度或屬性,比如用戶性別、商品的種類。

這里我們可以將事件視為產品中的操作,例如加入購物車、支付成功,然后將變量視為描述事件的屬性,比如不同商品的加購次數中,商品名稱就是變量。

特殊說明:如果從不同的角度定位一個問題,事件和變量都會發生改變,這就要求我們基于數據需求,找到事件與變量之間搭配的最優解。

步驟二:明確事件的觸發時機

在這個過程中,我們需要思考什么時候才是記錄事件的合理時機,因為不同的時機其分享成功率也不一樣,同時不同的觸發時機將帶來不同的數據口徑。例如分享成功事件面臨用戶點擊微信發生分享動作、用戶分享后跳轉到相應頁面這 2 個時機。因此,數據使用者需要明確事件的觸發時機。

時機的選擇沒有對錯之分,我們根據具體的業務需求來制定即可。

步驟三:明確實施優先級

在實際業務中,業務部門必須基于業務指標明確實施埋點的優先級,因為開發部門不可能一次性完成大量事件的埋點。比如電商業務中,我們應該優先實施購買流程這個關鍵事件,與此沖突的其他事件都應該往后排序。

而且在實際業務中,我們往往需要考慮技術實現成本。如果技術實現成本不一致,我們應該優先落實能夠最快落地的,以確保技術的準確性,比如有的埋點需要跨越多個接口;而如果技術實現成本相同則應該優先實施業務數據價值更高的。

(2)埋點規范制定

舉個例子:某工程師給雙十一活動頁面命名時,采用的是拼音與英文相結合的方式,而這種不規范的埋點會讓實施人員產生混淆,最終出現錯誤埋點。埋點規范的價值就在于幫助我們快速理解業務需求,并高效落地埋點方案。

在埋點規范制定過程中,我們通常需要遵循以下三點原則:

  • 上報內容格式清晰、簡單,目標易于統計和使用;

  • 各端各推薦位置上報的請求曝光內容、可見曝光內容、點擊內容、自動播放格式統一;

  • 所有推薦的內容類型編號,業務需要進行統一編排和維表維護,從請求曝光——>可見曝光——>點擊——>落地頁這四個階段均需要保持一致。

(3)埋點實施

埋點規范是埋點實施的前置約束,在埋點實施時,我們需要嚴格按照埋點規范實施埋點,其中,需要注意三個要點。

  • 明確事件上報的條件:比如請求曝光時,我們在埋點規范中明確注明請求成功后立即上報還是在曝光頁面停留超過一定時長后再上報等問題。

  • 明確字段參數的數據源:通常埋點同學對數據敏感度差,為了防止數據取錯,就要求我們與埋點同學一起明確每個參數的正確取數位置。

  • 數據采集流程:數據上報后,為方便數據倉庫同學高效、便捷地處理日志,我們需要明確每種數據的格式,因為非標準的格式會耗費大量的時間和精力處理格式。

(4)數據上報

埋點完備且上報的數據經過數據倉庫處理后就可以直接被應用了。

(5)數據統計

數據統計是非常重要、非常基礎的數據應用,例如推薦系統的轉化率指標( CTR),它是通過點擊數/可見曝光數來計算的。在這個公式中,我們發現如果沒有點擊事件和可見曝光事件的數據埋點,就不可能產生 CTR 這個數據,推薦系統的效果也就很難量化評估。

(6)埋點驗收

在埋點驗收階段,我們需要驗收所有推薦位 置、每個位置下的所有參數、每個參數的數據格式。除此之外,我們還需要將不同數據進行連接,把不同系統的數據以報表的形式展現,并對數據的有效性和準確性進行驗證。

最后,我們總結一下數據采集的整個流程:首先,我們需要對收集哪些數據進行需求梳理,并建立埋點規范;其次,依據埋點規范實施數據埋點;然后,接收實際上報的數據,并落入數據倉庫;緊接著,在數據倉庫中生成滿足業務需求的數據表;最后,對數據埋點進行驗收。

本節總結

學到這里,你已經了解了流量分發的四個階段和數據采集階段的完整流程啦,棒棒噠~

《道德經》中說“重為輕根,靜為躁君。是以圣人終日行不離輜重。”在流量分發體系中,數據就是這個系統的輜重,而數據驅動思維方式是每個推薦算法工程師必備的思維方式。

根據這種思維方式,我們可以快速獲取產品改進的分析流程:首先,確定個人分析目標,從數據規模、數據分布等角度介入發現問題;其次,確定需要分析的數據,將數據細化到數據分析指標,預估數據的有效閾值;然后,尋找并獲取評估數據的渠道,得到自己想要的原始數據;接著,對數據進行合理加工和分析,得出分析結論;最后,對得到的結果進行合理分析,指導推薦迭代。

這里插播一道思考題:你還知道哪些流量分發手段呢?歡迎你在留言區進行互動、交流,分享你的個人看法。

另外,如果你覺得本專欄有價值,歡迎分享給更多好友~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38928.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38928.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38928.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

基于SpringBoot+Vue商戶點評管理與數據分析系統設計和實現(源碼+LW+調試文檔+講解等)

💗博主介紹:?全網粉絲10W,CSDN作者、博客專家、全棧領域優質創作者,博客之星、平臺優質作者、專注于Java、小程序技術領域和畢業項目實戰?💗 Java精品實戰案例《1000套》 2025-2026年最值得選擇的Java畢業設計選題大全&#xff…

使用 Vanna 生成準確的 SQL 查詢:工作原理和性能分析

Vanna工作原理 從本質上講,Vanna 是一個 Python 包,它使用檢索增強功能來幫助您使用 LLM 為數據庫生成準確的 SQL 查詢。 Vanna 的工作分為兩個簡單的步驟 - 在您的數據上訓練 RAG“模型”,然后提出問題,這些問題將返回可設置為在您的數據庫上自動運行的 SQL 查詢。 vn.t…

【后端面試題】【中間件】【NoSQL】MongoDB提高可用性的方案(主從結構、仲裁節點、分片、寫入語義)

主從結構 MongoDB的高可用和別的中間件的高可用方案基本類似。比如在MySQL里,接觸了分庫分表和主從同步;在Redis里,Redis也有主從結構;在Kafka里,分區也是有主從結構的。 所以先介紹啟用了主從同步 我們的系統有一個關…

基于Java的微信記賬小程序【附源碼】

摘 要 隨著我國經濟迅速發展,人們對手機的需求越來越大,各種手機軟件也都在被廣泛應用,但是對于手機進行數據信息管理,對于手機的各種軟件也是備受用戶的喜愛,記賬微信小程序被用戶普遍使用,為方便用戶能夠…

算法題中常用的C++功能

文章目錄 集合優先隊列雙端隊列排序時自定義比較函數最大數值字符串追加:刪除:子串: 元組vector查找創建和初始化賦值: 字典map引入頭文件定義和初始化插入元素訪問元素更新元素刪除元素檢查元素存在遍歷元素int和string轉換 集合…

Ubuntu20.04更新GLIBC到2.35版本

目錄 1 背景2 增加源2.1 標準源2.2 鏡像源 3 更新 1 背景 Ubuntu20.04默認GLIBC庫版本是2.31.今天碰到一個軟件需要2.35版本的GLIBC。 升級GLIBC庫有兩種方式: 下載高版本庫源碼,編譯后替換系統中低版本庫。由于GLIBC庫是Linux系統中最基礎庫&#xff…

你想活出怎樣的人生?

hi~好久不見,距離上次發文隔了有段時間了,這段時間,我是裸辭去感受了一下前端市場的水深火熱,那么這次咱們不聊技術,就說一說最近這段時間的經歷和一些感觸吧。 先說一下自己的個人情況,目前做前端四年&am…

深圳技術大學oj C : 生成r子集

Description 輸出給定序列按字典序的 � 組合,按照所有 � 個元素出現與否的 01 標記串 ����?1,...,�1 的字典序輸出. 此處01串的字典序指:先輸入的數字對應低位&#x…

移動智能終端數據安全管理方案

隨著信息技術的飛速發展,移動設備已成為企業日常運營不可或缺的工具。特別是隨著智能手機和平板電腦等移動設備的普及,這些設備存儲了大量的個人和敏感數據,如銀行信息、電子郵件等。員工通過智能手機和平板電腦訪問企業資源,提高…

【HICE】web服務搭建3

端口號的不同進行監聽 1.下載httpd協議&#xff1a;dnf install httpd -y 2.編輯vhost.conf cd /etc/httpd cd /conf.d [rootlocalhost conf.d]# cat 1.conf listen 9090 listen 9091 listen 9092 <directory /www> allowoverride none require all granted </d…

【機器學習】Datawhale-AI夏令營分子性質AI預測挑戰賽

參賽鏈接&#xff1a;零基礎入門 Ai 數據挖掘競賽-速通 Baseline - 飛槳AI Studio星河社區 一、賽事背景 在當今科技日新月異的時代&#xff0c;人工智能&#xff08;AI&#xff09;技術正以前所未有的深度和廣度滲透到科研領域&#xff0c;特別是在化學及藥物研發中展現出了巨…

SpringBoot+Vue集成AOP系統日志

新建logs表 添加aop依賴 <!-- aop依賴--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId> </dependency> 新建獲取ip地址工具類 import javax.servlet.http.H…

React 函數式組件里面有生命周期嗎?沒有怎么辦?

React 函數式組件沒有像類組件那樣傳統的生命周期方法&#xff0c;但是通過 React Hooks&#xff0c;可以在函數式組件中實現類似的生命周期行為。 useEffect: 可以看作是類組件里的 componentDidMount, componentDidUpdate 和 componentWillUnmount 的結合體。它允許你在函數組…

在Linux環境下使用sqlite3時,如果嘗試對一個空表進行操作(例如插入數據),可能會遇到表被鎖定的問題。

在Linux環境下使用sqlite3時&#xff0c;如果嘗試對一個空表進行操作&#xff08;例如插入數據&#xff09;&#xff0c;可能會遇到表被鎖定的問題。這通常是因為sqlite3在默認情況下會對空表進行“延遲創建”&#xff0c;即在實際需要寫入數據之前&#xff0c;表不會被真正創建…

React Native V0.74 — 穩定版已發布

嗨,React Native開發者們, React Native 世界中令人興奮的消息是,V0.74剛剛在幾天前發布,有超過 1600 次提交。亮點如下: Yoga 3.0New Architecture: Bridgeless by DefaultNew Architecture: Batched onLayout UpdatesYarn 3 for New Projects讓我們深入了解每一個新亮點…

java 利用 gdal 生成遙感tif的縮略圖

簡要說明 在java&#xff0c;簡單使用gdal生成tif文件的縮略圖 maven依賴 <!--需要安裝完gdal后&#xff0c;本地install gdal包才能使用 --><!--gdal安裝可參考 https://blog.csdn.net/qq_41613913/article/details/135743562 --><dependency><groupI…

Docker精華篇 - 常用命令大全,入門到精通!

大家好,我是CodeQi! 我們都知道 Docker 的重要性,以及 Docker 如何在軟件開發生命周期中發揮重要作用 。 說實話,學習 Docker 很有趣,至少在我看來是這樣。 一旦掌握了基礎知識,這并不難。 困難的是記住所有這些命令。 因此,在這篇文章中,我收集了所有命令,或者更…

Patch embed 的映射矩陣多大?

假設我們有一個圖像&#xff0c;其大小為 (H \times W \times C)&#xff0c;其中 (H) 是圖像的高度&#xff0c;(W) 是圖像的寬度&#xff0c;(C) 是圖像的通道數&#xff08;例如&#xff0c;RGB 圖像的通道數為 3&#xff09;。 將圖像劃分成 patches: 假設我們將圖像劃分成…

命令可以不通過數據綁定進行配置

命令可以不通過數據綁定進行配置。在某些情況下&#xff0c;可能希望直接在代碼隱藏文件中處理命令邏輯&#xff0c;而不是通過數據綁定。以下是一個完整的例子&#xff0c;展示了如何在不使用數據綁定的情況下實現命令。 ### 1. 定義命令 首先&#xff0c;我們定義一個簡單的…

四十篇:內存巨擘對決:Redis與Memcached的深度剖析與多維對比

內存巨擘對決&#xff1a;Redis與Memcached的深度剖析與多維對比 1. 引言 在現代的系統架構中&#xff0c;內存數據庫已經成為了信息處理的核心技術之一。這類數據庫系統的高效性主要來源于其對數據的即時訪問能力&#xff0c;這是因為數據直接存儲在RAM中&#xff0c;而非傳統…