技術驅動婚戀,百合網的混合雲 大資料與機器學習實踐

2021-08-19 12:26:47 字數 3461 閱讀 4733

百合網是一家實名認證的婚戀**,創立至今十年,目前註冊使用者9500萬。擔任百合網cto的楊溢欣,負責百合網的線上技術,以及部分專案的產品、運營等工作,下轄團隊成員100多人,包括客戶端、服務端的研發工程師,演算法研究員,測試、運維團隊,產品、運營團隊等。

目前,百合網在探索如何將品牌擴充套件到整個婚戀生態圈,除了婚紗照、婚禮、情感諮詢、婚介等,甚至還有金融、理財、婚禮成本相關的規劃。

業務的快速擴張也意味著技術部門的新挑戰。楊溢欣認為,對於百合網,基於良好的技術視野設計架構、採用敏捷開發控制進度、優化團隊間溝通等方面都很重要。基於公司億級的使用者群和婚戀產業鏈領導者的定位,百合網技術部門強調資料驅動,要求團隊勇於創新:

用快速、敏捷的方式完成產品需求,並注意各種技術積累,以讓各功能、演算法和模組在不同的專案裡可以復用,提公升開發效率;

通過技術驅動的方式,嘗試在婚戀、情感這種領域,用網際網路、機器學習、多**的技術去創新。

目標的實現並不容易。具體而言,挑戰主要來自以下幾個方面:

使用者量大、活躍度高引起的各種伺服器的效能和穩定性問題,尤其是雙11、情人節這樣的時間節點;

作為嚴肅交友應用,使用者畫像、匹配度和雙向選擇相關的演算法問題;

產品需求的快速迭代問題。

問題的最終解決,也意味著雲計算和大資料技術從開始探索到成熟應用。楊溢欣將百合網解決問題的技術架構分三個階段:

業務決定技術的架構,業務變更頻繁,技術與業務的耦合度很高,但是很少的人就可以維護乙個大型業務;

分層分平台的架構,將共性功能抽象成元件,多個元件組成平台,與業務層分離,這樣前端業務開發更靈活,後端管理也集中,可以做到服務治理,業務負載隨時可擴容;

大資料及虛擬化的架構,資料體量促使架構必須公升級,基於大資料的計算融匯到各個業務中,系統部署的複雜度增大,所以採用虛擬化技術,實現程式構建,打包,發布,部署,容錯自動化,基礎層引入雲,實現彈性部署。

在楊溢欣看來,雲計算在最近兩三年已經進入成熟期,現在的雲計算可以成為開展新業務的很好的技術平台,成為百合網婚戀生態圈的乙個基石。

百合網各種業務的發展非常快,對快速部署、對可擴充套件性的要求非常高。雲計算支援極快地完成從開發到部署的工作,能聚焦到真正的演算法、架構上,不用太操心底層的東西。

雲計算提供一種很靈活地分配資源的方式,特別是新的業務開始的時候,可以先分配一些比較小的資源,隨著業務的擴張,可以迅速擴充套件到很大的服務容量,既可以優化成本結構,又無需擔心突發的高併發流量導致業務中斷。

雲計算可以說是成長型公司業務發展的乙個基石,會為運維和各種演算法、技術上的實現提供很紮實的基礎,在未來的三到五年之內,絕大部分的網際網路應用且使用雲計算。

當然,由於具體業務的差異性,上雲的挑戰不可避免,這就需要雲服務團隊專業的技術支援。楊溢欣介紹了兩個例子。

對於企業如何選擇雲計算技術,楊溢欣認為,最好的辦法是參考各種網際網路公司公開的架構,仔細思考這些架構設計的原理。因為雲計算的架構跟傳統的架構是不太一樣的,一般傳統的書或者是講座會稍微偏落後一些,一定要看一下最新的公司,特別是創業公司,因為創業公司是最早擁抱雲計算的公司,在

一、兩年之內快速地起來,他們的架構實現對創業公司很有幫助的。

而對於雲計算技能的提公升以及雲計算問題的解決,楊溢欣表示,可以去參加雲計算服務商的開發者大會,會有很多過來人分享在雲計算使用過程的架構,以及實施中遇到的很多問題,這對於技術選型和問題解決來說都會有啟發。

大資料對於百合網的作用,楊溢欣用ios之於蘋果的重要性來模擬。百合網提出的心靈匹配演算法(可以看到兩個人心靈的契合程度),不僅僅是乙個心理學模型,更是乙個演算法模型。然而,婚戀不同於電商,要求你情我願,雙向匹配的實現難度更高。

「心靈匹配演算法」是基於百合網與北師大心理學院、中科院心理所、北京大學人格與社會心理學研究所多年的研究成果,集合機器智慧型學習理論,基於中國使用者的心理特徵、興趣愛好以及海量行為資料,採用聚類演算法結合協同過濾演算法搭建的心靈匹配智慧型推薦引擎。

楊溢欣認為,婚戀匹配的難度是電商推薦難度的平方:如果電商基於user、item推薦成功的概率是p,則雙向匹配成功的概率則是p*p。此外,電商推薦的item是嚴重冷熱不均的,而百合需要保證item的被推薦次數處於冷熱合理的區間。

對百合網來說,對使用者匹配的難度和技術含量相當高。所以我們採用了一些很大量的大資料的資料探勘和機器學習的手段,比如說我們的使用者屬性,直接提供的使用者屬性共有160多項,加上使用者行為分析得出來的資料,可能是1000項左右的數,每個使用者有這樣的屬性,包括有大量的使用者行為。我們嘗試這些使用者行為和屬性,為使用者尋找到最匹配的另一半。

百合網的演算法需要考慮基本的使用者畫像、單向推薦模型(即經典的user/item推薦,基於使用者屬性和使用者行為),使用者的活躍、溝通方式模型(基於使用者行為),雙方成功建立聯絡的模型(基於行為與一部分屬性),以及使用者對收發信的偏好模型等等因素。其中一部分環節可以參考標準、流行的模型,比如「單向推薦」模型結合了協同過濾、決策樹等。有一部分技術是獨特的,百合網正在申請專利。

談及資料的預處理的挑戰和處理,楊溢欣介紹:一來百合一直在做新功能和產品體驗的改進,導致不同時期,使用者的特徵和行為會有天然的區別;二來百合有將近一億使用者,使用者的性別、年齡段、職業和受教育程度等都決定了有不同的使用者訴求和使用習慣。所以在處理的時候要採用一些分類器和離群點檢測的方法,結合資訊熵,針對性的調整資料、取樣方式和模型。

在深度學習方面,百合網也嘗試了一些應用,目前主要是在影象領域,人臉識別、匹配等等,這是dl非常擅長的領域,他認為這些對婚戀應用來講也很重要。百合網嘗試了人臉識別和人臉打分,供擇偶參考,同時還有美顏的嘗試(取代ps),不過需要保證讓網友可控,並保證不會太失真。

另外,百合網也正在設計將深度學習應用於自然語言文字方面的一些工作。楊溢欣介紹,婚戀匹配方面,深度學習處於原理論證階段,因為涉及到的特徵比較具體,並且需要考慮社會學、心理學和產品體驗的一些問題。

大資料架構,百合網基於開源的hadoop體系,包括hdfs、yarn、mapreduce、hbase、hive、pig等,實時處理的部分用spark,這和流行的框架基本一致。

事實上,百合網使用的大部分基礎設施都來自開源專案,也都是業界流行的,從lvs、haproxy、mongodb、redis、kafka、zookeeper、spark、mahout到hadoop等等一套東西。除了正在引入docker,百合網最近還關注在深度學習中使用google新開源的tensorflow。

此外,百合網也在探索公有雲上的大資料。楊溢欣認為,公有雲上的大資料分析系統是非常有前途的,因為理論上講它可以讓計算和負載均勻很多,並採用專用硬體,形成較大的成本優勢,還能通過彈性服務提供更快的速度和擴充套件性。

不過雲上的大資料系統需要更加成熟——百合網在試用中發現包括aws的emr在內,穩定性、特別是使用較長時間之後的效能都有進步空間。

2023年初,百合網還投資了一家叫做蘭亭數字的vr公司,希望讓vr技術在婚戀行業之中得到應用。百合網認為,vr技術在婚戀體驗上有更深一層的效果,例如婚禮全景記錄,會很好的乙個效果。這同樣對基礎it提出更多的需求。

百合網現在的發展目標是做好婚戀全產業鏈,從戀愛到婚姻,有非常多的線上線下使用者需求,需要圍繞大資料,提供敏捷、高彈性的技術架構。既有效能、資料量、計算量方面的要求,又需要保證研發速度。既需要控制成本,又需要高可擴充套件性。這其實是雲計算比較擅長的事情。

python爬蟲 爬取百合網的女人們和男人們

學python也有段時間了,目前學到了python的類。個人感覺python的類不應稱之為類,而應稱之為資料型別,只是資料型別而已!只是資料型別而已!只是資料型別而已!重要的事情說三篇。據書上說乙個.py 常量 全域性變數 函式 資料型別 檔案為乙個模組,那麼就有了一種感覺 常量 全域性變數 函式 ...

Python爬蟲 爬取百合網的女人們和男人們

學python也有段時間了,目前學到了python的類。個人感覺python的類不應稱之為類,而應稱之為資料型別,只是資料型別而已!只是資料型別而已!只是資料型別而已!重要的事情說三篇。據書上說乙個.py 常量 全域性變數 函式 資料型別 檔案為乙個模組,那麼就有了一種感覺 常量 全域性變數 函式 ...

心田上的百合花 林清玄

在乙個偏僻 遙遠的山谷,有乙個高達數千尺的斷崖。不知道什麼時候,斷崖邊上長出了一株小小的百合。百合剛剛誕生的時候,長得和雜草一模一樣。但是,它心裡知道自己並不是一株野草。它的內心深處,有乙個純潔的念頭 我是一株百合,不是一株野草。唯一能證明我是百合的方法,就是開出美麗的花朵。有了這個念頭,百合努力地...