
熱點聚集
本篇文章4416字,閱讀大概需要6分鐘
微博是一個廣播社交網(wǎng)絡平臺,通過有趣的機制共享短期信息。微博用戶注重訂閱內(nèi)容。在這種情況下,推薦系統(tǒng)可以很好地與訂閱分發(fā)系統(tǒng)集成并相互促進。微博的兩個關鍵基礎:第一,建立用戶關系,第二,內(nèi)容溝通微博致力于優(yōu)化這兩點,促進微博的發(fā)展。
微博推薦開發(fā)過程改變了系統(tǒng)的方向,業(yè)務不斷變化,目標重置,產(chǎn)品理念,架構(gòu)和算法發(fā)生變化。本白皮書主要描述了推薦架構(gòu)在此過程中的演變,并希望通過此機會探索業(yè)務與技術(shù)之間的關系,同時在產(chǎn)品目標,算法需求和技術(shù)開發(fā)方面為讀者提供完整的開發(fā)環(huán)境。
通常,架構(gòu)是在團隊和業(yè)務環(huán)境中創(chuàng)建的,努力基于環(huán)境因素解決環(huán)境問題,結(jié)構(gòu)由強大的功能組成,并且創(chuàng)建面向?qū)崿F(xiàn)的效果。本白皮書詳細介紹了微博建議的三個階段,包括環(huán)境因素,架構(gòu)配置和特性以及實施影響。
1獨立1.0
1.1環(huán)境
影響結(jié)構(gòu)形成的環(huán)境因素可分為內(nèi)部環(huán)境因素和外部環(huán)境因素。內(nèi)部因素主要與團隊和成員有關,但外部因素主要在外部部門,整個公司或整個行業(yè)。
這個項目有很多項目,當時平均每個團隊有5個并行開發(fā)項目。當然,最重要的因素是微博產(chǎn)品是快速生成器,微博需要在很多地方提供支持。同時,由于項目周期很短,調(diào)度緊急,很難有時間進行清理和抽象。典型產(chǎn)品包括微棒,微小組,微分布,微結(jié)構(gòu),用戶和內(nèi)容對齊。
基于以上原因,當我們面對單個項目時,我們使用熟悉的技術(shù)堆棧通過建立我們自己的理解來逐個構(gòu)建我們的流程。
雖然開發(fā)過程中存在許多缺點,但我們已為后續(xù)架構(gòu)優(yōu)化奠定了基礎。結(jié)果如下。
在微博快速發(fā)展的過程中,微博滿足了微博對推薦業(yè)務支持的要求,完成了20多個獨立項目。
吳的框架誕生了,內(nèi)部的高效計算框架誕生于此。
Web應用程序?qū)拥某掷m(xù)需求摘要,推薦的通用應用程序框架配置2樓2.0
我們介紹了一個獨立的1.0。根據(jù)架構(gòu)開發(fā)的方式,我們?nèi)チ艘粋€分支路口,一個是流行的LAMP架構(gòu),另一個是與廣告和搜索相匹配的CELL架構(gòu)。 LAMP架構(gòu)數(shù)據(jù)策略是獨立的,腳本語言是業(yè)務開發(fā)的主要語言,該項目是快速開發(fā)和迭代的首選。 CELL架構(gòu)強調(diào)本地流程處理,數(shù)據(jù)和業(yè)務組合,自行開發(fā)的服務以及適用于高性能應用程序的數(shù)據(jù)庫。畢竟,我們選擇與兩者兼容,并且我們傾向于擁有業(yè)務架構(gòu)。為什么會這樣?我們來看看當時的環(huán)境。
2.1環(huán)境
微博推薦2.0期間為2013年3月至2014年底。此期間的內(nèi)部環(huán)境因素為:
今天,團隊成員已經(jīng)合作了很長時間,并就技術(shù)選擇達成了一些共識。
團隊產(chǎn)品專注于內(nèi)容/用戶/垂直課程推薦,場景分為源主頁,正文頁面和PC主頁。這種集中不僅有助于統(tǒng)一建筑,還有助于獲得技能。
外部因素包括:
該公司明確定位建議,提高關系績效和內(nèi)容溝通效率,并為推薦廣告的技術(shù)探索,場景干預和用戶體驗提供基礎。
在推薦的字段中,每個公司都有自己的架構(gòu)輸出,這是微博建議的重要指南。
2.2架構(gòu)配置和功能
隨著團隊實施核心業(yè)務實施,工具和框架不斷發(fā)展,2.0部署的目標正在變?yōu)楝F(xiàn)實。
1.技術(shù)目標
與1.0不同,僅僅實現(xiàn)業(yè)務需求不再是2.0的技術(shù)目標。要獲得完整的推薦流程,您需要:
第一步是實施完整的推薦流程,包括候選人,調(diào)整,策略,演示,反饋和評估。
數(shù)據(jù)是第一個提取數(shù)據(jù)架構(gòu)的數(shù)據(jù)。為了實現(xiàn)數(shù)據(jù)比較,效果是基于數(shù)據(jù)的,實現(xiàn)數(shù)據(jù)通道,反映反饋,實現(xiàn)數(shù)據(jù)著陸和執(zhí)行業(yè)務需求。
提供一種方便干預算法的方法。
這不僅可以確保快速迭代和業(yè)務開發(fā),還可以支持高效計算。
2.建筑
微博推薦2.0架構(gòu)如圖5所示。它不再是一個獨立的系統(tǒng),開發(fā)人員也無法使用類似的技術(shù)來解決類似的問題。該架構(gòu)圖主要包括以下部分:
應用層:主要負責推薦的策略和演示,其特點是充分利用腳本語言的特性來響應重復的要求。您可以在對齊后顯示大多數(shù)推薦的內(nèi)容,但必須在技術(shù)級別完成此IO密集型層,因為您需要合并,刪除和重新定位前端產(chǎn)品策略。在技術(shù)選擇框架中,開發(fā)最初基于Apache + mod_python并且創(chuàng)建了common_recom_frame。該框架面向能夠成功實施推薦業(yè)務流程的二級開發(fā)人員。該框架的核心思想是提取項目,任務和數(shù)據(jù)的三層接口。該項目適用于每個推薦項目,每個推薦項目的推薦任務不同,一種管理的訪問方法。兩個規(guī)格同時設置。一種是集成推薦的接口,無論用戶,內(nèi)容或行業(yè)如何,另一種是通過保護不同協(xié)議數(shù)據(jù)庫的訪問方法來顯著提高開發(fā)效率。 common_recom_frame框架的誕生基本上解決了產(chǎn)品的各種推薦策略要求,并走在了產(chǎn)品的前面。圖5微博推薦2.0架構(gòu)的示意圖
計算層:主要消耗CPU,該層為算法提供干預方法,并執(zhí)行支持算法模型迭代的推薦排序計算。在這個技術(shù)選擇層,我們繼承了原始的WOO協(xié)議框架,這是一個基于c/c ++開發(fā)的內(nèi)部高效通信框架。當然,我已經(jīng)做了很多擴展,并且我借用了上面提到的common_recom_frame思想來實現(xiàn)基于WOO框架的項目/工作/數(shù)據(jù)管理,為二級開發(fā)人員提供了更高效的開發(fā)工具。在您團隊的開源項目中包含此工具:https://github.com/wbrecom/lab_common_so
數(shù)據(jù)層:主要負責推薦的數(shù)據(jù)流和存儲。數(shù)據(jù)層的任務主要是解決數(shù)據(jù)的IN/OUT/STORE問題。 IN數(shù)據(jù)輸入到系統(tǒng),OUT是數(shù)據(jù)訪問方法,STORE是數(shù)據(jù)存儲方法。在進行數(shù)據(jù)層規(guī)劃時,分析了微博推薦的數(shù)據(jù)特征,該屬性可以分為靜態(tài)和動態(tài)兩大類。靜態(tài)數(shù)據(jù)的定義如下:更新需要大量低頻率和低并發(fā)性的數(shù)據(jù),動態(tài)數(shù)據(jù)定義為:增量數(shù)據(jù)同時以高頻率動態(tài)更新。因此,在靜態(tài)和動態(tài)數(shù)據(jù),RIN/R9接口,徑向/流明,tmproxy /呼吸機或工具框架生成期間,唯一的IN/OUT/SOTRE的通用方向。下面說說擴展,RIN數(shù)據(jù)訪問動態(tài)數(shù)據(jù),支持通過Web服務接收數(shù)據(jù),后端隊列管理,消費者集群得到多服務框架ckestrel的補充,用戶需要執(zhí)行自己的業(yè)務開發(fā)您可以在線快速使用動態(tài)數(shù)據(jù)。 R9接口處理器訪問靜態(tài)數(shù)據(jù)推薦行為針對R9接口框架的Hadoop集群靜態(tài)計算[MR Hive SQL和SPARK行為]通知管理和數(shù)據(jù)加載,解決了多個靜態(tài)數(shù)據(jù)。動態(tài)數(shù)據(jù)使用許多redis群集,靜態(tài)數(shù)據(jù)使用lushan群集來存儲推薦數(shù)據(jù)。對于lushan,這個工具也包含在團隊開源項目中:https://github.com/wbrecom/lushan。 tmproxy/ventilation為了解決OUT數(shù)據(jù)的問題,再加上通風訪問中間件代理來處理靜態(tài)和動態(tài)數(shù)據(jù)的推薦請求,后端數(shù)據(jù)減少了業(yè)務變化的影響。基本服務:推薦系統(tǒng)的基本服務主要包括監(jiān)控,報警和評估系統(tǒng),數(shù)據(jù)監(jiān)控系統(tǒng)分為性能和影響監(jiān)控兩類,評估系統(tǒng)主要用于下級評估。在去之前有一定的期望和影響。
3.特點
優(yōu)點是:
數(shù)據(jù)的集成方法,以提供完整的推薦流程支持
在快速實現(xiàn)業(yè)務功能的過程中,效果技術(shù)不斷深化。
該算法得到了很好的支持。
首次使用您的數(shù)據(jù)的想法將幫助您全面比較您的影響并繼續(xù)提高您的推薦效果。
密封系統(tǒng)易于放置,質(zhì)量保證包含在測試中。
缺陷如下。
與推薦的核心有一定距離,并且與建議不完全一致。
推薦的策略算法完全傳遞給開發(fā)人員,不適合一般使用。
算法培訓不包括在內(nèi),只是在線交付系統(tǒng),因此構(gòu)建完整的推薦系統(tǒng)是不夠的。
2.3結(jié)果
微博推薦2.0的誕生產(chǎn)生了良好的效果。
微博的核心業(yè)務是通過諸如機構(gòu)推薦,趨勢用戶推薦,趨勢內(nèi)容推薦,各種場景中的用戶推薦,粉絲經(jīng)濟學,賬戶推薦等系統(tǒng)完成的。
為lab_common_so創(chuàng)建一個基本框架并執(zhí)行開源
一個靜態(tài)存儲集群解決方案,lushan,誕生了。
聯(lián)陣框架的誕生極大地提高了企業(yè)生產(chǎn)的效率,也為開放社區(qū)做出了貢獻。
3平臺類型3.0
在前一節(jié)的2.0描述中提到的一個主要缺點是“與推薦的核心存在一定距離,并且與推薦不完全一致”。我們希望在建議3.0中修復它。為什么在滿足業(yè)務需求時推薦的架構(gòu)會繼續(xù)發(fā)展?我們將向您展示微博推薦的平臺風格3.0設計。讓我們來看看環(huán)境。
3.1環(huán)境
從2014年底到現(xiàn)在的當前內(nèi)部環(huán)境因素如下,微博建議3.0。
推薦產(chǎn)品沒有擴展,它們更重要,并且重點從業(yè)務開發(fā)和迭代轉(zhuǎn)向針對性能的技術(shù)迭代。
如果您以迭代方式提出新項目或業(yè)務,則會有許多重復性任務,重復任務,因為架構(gòu)未得到解決。
外部因素包括:
該公司還從業(yè)務擴展轉(zhuǎn)向效率優(yōu)先,以改善用戶體驗和內(nèi)容質(zhì)量。
微博建議在推薦的技術(shù)鏈接的距離區(qū)域中存在一定距離,并且存在追趕狀況。
3.2架構(gòu)配置和功能
當前環(huán)境也可以反映3.0的技術(shù)目標。
1.技術(shù)目標
與2.0不同,全范圍推薦過程不是3.0的目標。目標是:摘要在推薦過程中候選/對齊/訓練/反饋的一般方法。
推薦算法,需要建立推薦系統(tǒng)算法的角度數(shù)據(jù)問題,接近算法策略
2.建筑
如圖7所示,建議基于此開發(fā)2.0找到微博3.0體系結(jié)構(gòu),因為運行當前體系結(jié)構(gòu)系統(tǒng),我們維護了一個實際在框架2.0中使用的大型分層系統(tǒng)和工具。以下是一些要點:
兩個標準:應用層的一個總體輸出框架,所有這些都是在一個應用層中包含標準輸入和輸出參數(shù)的接口規(guī)范,與動態(tài)輸入精益相關并且離線計算,這可以確定我們的結(jié)構(gòu)因此,輸入層工具R9接口規(guī)范是相互依賴的***不需要為分割級別的標準設置設置線串,例如數(shù)據(jù)/記錄。
通過標準生成候選者的方法增加計算層:Artemis候選內(nèi)容模塊,項目候選用戶模塊,......應該只選擇此方法來生成項目開發(fā)的候選者。
添加了一個名為EROS的戰(zhàn)略平臺來解決算法模型的問題。 EROS的主要特點是1)訓練模型2)特征選擇3)在線比較測試。
R9界面層和生成在線和離線候選精益增長的數(shù)據(jù)推薦了產(chǎn)生結(jié)果的一般策略。
圖7微博推薦3.0的示意圖
3.特點
它主要解釋了它的優(yōu)點:
它繼承了原有的2.0特性并保持其優(yōu)點。深入理解這些建議,并結(jié)合推薦的候選/對齊/訓練算法的最重要解決方案
3.3結(jié)果
微博推薦3.0的誕生,結(jié)果如下:
微博推薦的核心業(yè)務逐步遷移到系統(tǒng),算法數(shù)據(jù)作為提高效率的驅(qū)動因素。
技術(shù)來自業(yè)務并改善業(yè)務發(fā)展。業(yè)務發(fā)展是技術(shù)發(fā)展和相互影響的關系背后的驅(qū)動力。隨著業(yè)務發(fā)展的技術(shù)還活著。
技術(shù)架構(gòu)選擇建議是目前找到最短路徑然后迭代優(yōu)化。將所有東西放在一起是不現(xiàn)實和不合理的。
推廣框架和工具的最佳方式不是行政命令或待遇,但每個人都是參與者。與開源項目一樣,每個人都是所有者,因此每個人都得到維護和使用。