Categories
程式開發

萬字長文淺談微視推薦系統中的特徵工程

導語 |在推薦系統中,特徵工程扮演著重要的角色。俗話說數據和特徵決定了機器學習算法的上限,而模型、算法的選擇和優化只是在不斷逼近這個上限。特徵工程的前提是收集足夠多的數據,使用數據學習知識,從大量的原始數據中提取關鍵信息並表示為模型所需要的形式。本文主要說明微視,這種富媒體形態的短視頻平台,是如何通過視頻內容特徵以及用戶屬性和行為數據,來精準預測用戶對短視頻的喜好的。

引言

本文主要是跟各位讀者分享特徵工程領域的一些通用方法和技巧,以及微視在特徵工程上的相關實踐經驗。微視作為一個短視頻平台,存在其獨有的業務特點,這也給特徵構造帶來了一定的難度。比如熱目類目在播放時長、互動率等指標上表現出天然的優勢,長視頻相比於時長較短的視頻在播放完成度、完播率等指標上存在明顯的劣勢,如何消除這些bias的影響都是特徵構造時需要特別注意的地方,而對於我們線上的多目標排序模型來說,不同單目標對應的最優特徵組合也不盡相同,這些不僅需要較強的專業領域知識,更重要的是對自身業務場景的深刻認知以及大量線上實驗的探索嘗試與驗證。

一、特徵提取

微視作為一個短視頻平台,存在其獨有的業務特點,這也給特徵構造帶來了一定的難度。比如熱目類目在播放時長、互動率等指標上表現出天然的優勢,長視頻相比於時長較短的視頻在播放完成度、完播率等指標上存在明顯的劣勢,如何消除這些bias的影響都是特徵構造時需要特別注意的地方,而對於我們線上的多目標排序模型來說,不同單目標對應的最優特徵組合也不盡相同,這些不僅需要較強的專業領域知識,更重要的是對自身業務場景的深刻認知以及大量線上實驗的探索嘗試與驗證。

特徵工程就是將原始數據空間映射到新的特徵向量空間,使得在新的特徵空間中,模型能夠更好地學習數據中的規律。因此,特徵提取就是對原始數據進行處理與變換的過程。常見的原始數據類型有數值型、離散型,還有文本、圖像、視頻等。如果將這些數據作為一個整體來看待的話,把用戶、視頻、作者看作節點,用戶與視頻、作者的交互看作邊構建出的複雜網絡也是我們的原始數據。

事實上,如果特徵工程做的足夠好,即使是簡單的模型,也能表現出非常好的效果。而復雜的模型可以在一定程度上減少特徵工程的工作量。例如,對於線性模型,我們需要將類別變量進行獨熱編碼等處理,但對於復雜一些的模型如樹模型,則可以直接處理類別變量。像推薦系統中常用的LR模型,需要手工構造組合特徵,而FM模型可以解決特徵組合的問題,直接輸入原始特徵。而更複雜的DNN模型,可以自動學習特徵的表示。

在微視場景下,視頻的播放時長、播放完整度、點贊、轉發、分享、評論等多種互動行為都是推薦模型的訓練目標,根據模型所要學習的目標和業務邏輯,我們需要考慮數據中有哪些可能相關的信息,從現有數據中挖掘出對模型預測有用的特徵。比如在微視排序中,用戶的興趣,在App上的播放、互動等行為以及視頻的類別、標籤、熱度等都是強相關的因素。在確定了哪些因素可能與預測目標相關後,我們需要將此信息抽取成特徵,下面會對不同特徵的處理方式做具體介紹。

萬字長文淺談微視推薦系統中的特徵工程 1

1.數值特徵

Categories
程式開發

Spark誕生頭十年:Hadoop由盛轉衰,統一數據分析大行其道

2009年,Spark誕生於計算機系統的學術聖地加州大學伯克利分校的AMP Lab,最初是一個研究項目,後來於2010年正式開源,並在2013年貢獻給Apache基金會,翌年即畢業成為Apache基金會頂級項目。對於一個具有相當技術門檻與復雜度的平台,Spark從誕生到正式版本成熟,整個過程僅僅花了五年時間。誕生之初,Spark就致力於提供基於RDD/DataFrame的一體化解決方案,將批處理、流處理、SQL、機器學習、圖處理等模型統一到一個平台下,並以一致的API公開,使得Spark在誕生後的十年間得以應用於更加廣泛的工程領域,快速成長為大數據處理引擎中的佼佼者。

2019年是Spark誕生的第十個年頭,Spark引擎自身以及它孵化出來的Spark生態都在不斷迭代和演進。近日,InfoQ記者在AICon全球人工智能與機器學習大會 北京 2019 現場採訪了Databricks軟件工程師李元健,他與我們分享了根植於Spark各個發展階段的統一數據分析理念、Spark社區接下來工作的重點,以及大數據領域需要關注的變化和趨勢,以下為採訪問答實錄。

InfoQ:李元健老師您好,非常高興這次能夠在AICon現場採訪到您。您這次準備的演講主題是《Databricks在構建統一數據分析平台上的新一輪實踐》,能否先跟我們解釋一下,何為“統一數據分析平台”?其中的“統一”包含哪幾個層面的含義?

李元健:統一的數據分析平台其實是各大互聯網公司和軟件公司始終奉行的一套設計準則,不僅植根於Databricks,我們期望用統一的一套平台解決方案來滿足多種場景需求甚至跨場景需求。這個“統一”不僅僅是技術層面的API、底層抽象的統一,更是某種程度上的上層使用者協作方式的統一。 …

Categories
程式開發

基於 TensorFlow 2.0 的長短期記憶網絡進行多類文本分類

文本分類是指將給定文本按照其內容判別到一個或多個預先確定的文本類別中的過程。文本分類是一種典型的有知道的學習過程,根據已經被標記的文本集合,通過學習,得到一個文本特徵和文本類別之間的關係模型,然後利用這個關係模型對新文本進行類別判斷。文本分類計數用於識別文檔主題,並將之歸類到預先定義的主題或主題集合中。

需要注意的是,多類文本分類與多標籤分類並不同,其中多類分類區別於二分類問題,即在$n (n2)$ 個類別中互斥地選取一個作為輸出;而多標籤分類,是在n 個標籤中非互斥地選取$m (m

對自然語言處理(Natural Language Processing,NLP)領域來說,很多創新之處都是關於如何在詞向量中加入上下文。常用的方法之一就是使用遞歸神經網絡(Recurrent …

Categories
程式開發

WICG引入了展現鎖定,實現更快的Web渲染

Web孵化社區群組(Web Incubator Community Group,WICG)最近引入了展現鎖定(Display Locking)提案,該提案可以輕鬆提高瀏覽器頁面內容量並對渲染進行控制。

該提案適應多種使用場景,包括快速展現非常大的HTML文檔,滾動顯示大量內容,異步預渲染不可見的內容供後續展現,以及更快速地度量佈局。該提案試圖在不破壞Web特性和佈局計算的情況下避免加載和渲染不可見的內容,並且為開發人員提供一種靈活性,使其能夠在不向終端用戶屏幕展現的情況下將內容預先渲染出來。

目前,DOM是原子渲染的,隨著站點和應用規模的增長,渲染也會耗費越來越長的時間。現在,我們所採用的技術包括隱藏不可見的內容或虛擬化,但是這些方式有一些限制,並且有可靠性方面的潛在問題。

展現鎖定提案引入了三個新特性:…

Categories
程式開發

Q資訊:小米集團股價漲超7%逼近10港元;趣頭條回應做空指控:報告有嚴重錯誤;蘋果iPhone已正式支持中國聯…

華為成立新公司“華為雲計算技術有限公司”;趣頭條回應做空指控:報告有嚴重錯誤;蘋果發布iOS 13.3正式版:修復錯誤,增加家長控制;小米集團股價漲超7%逼近10港元;蘋果iPhone已正式支持中國聯通VoLTE。

Q資訊:小米集團股價漲超7%逼近10港元;趣頭條回應做空指控:報告有嚴重錯誤;蘋果iPhone已正式支持中國聯... 27

科技公司

華為成立新公司“華為雲計算技術有限公司”

12月11日消息,據天眼查數據顯示,12月6日,華為雲計算技術有限公司成立,註冊資本為5000萬人民幣,法定代表人為華為公司副總裁、華為雲業務總裁鄭葉來,公司由華為的運營主體華為投資控股有限公司全資控股。公司疑似實際控制人為華為投資控股有限公司工會委員會,持股比例為98.99%。

趣頭條回應做空指控:報告有嚴重錯誤

12月11日消息,市場研究機構WolfpackResearch發布長達56頁的做空報告,

Categories
程式開發

一時減半一時爽:比特幣價格至少飆升120倍

一時減半一時爽:比特幣價格至少飆升120倍 28

現如今每 10 分鐘產出的比特幣產量每四年將會減少一半。

這就是我們所說的比特幣減半。下一次比特幣減半將是比特幣歷史上的第三次減半,將會發生於 2020 年 5 月。當前每 …

Categories
程式開發

如何利用BLoC在Flutter和AngularDart中共享代碼?

2018年DartConf,谷歌推出了“業務邏輯組件”,即BLoC的開發模式。它的理念是在盡可能將業務邏輯隔離在純Dart代碼中,這樣就能打造在移動和Web平台之間共享的代碼庫。通過本文作者的介紹,你會發現,如果能正確實現,BLoC會大大縮短創建移動/Web應用所需的時間。

去年年中,我想把一個Android應用移植到iOS和Web上。我打算在移動平台上用Flutter,Web端該選擇什麼沒有想好。

雖說我對Flutter是一見鍾情,但也還是對它有些看法:Flutter的InheritedWidget或Redux(及其所有變體)在小部件樹上傳播狀態時的確做的不錯;但是對於Flutter這樣的新框架來說,你會期望視圖層的響應性能更多一些——比如,希望小部件本身是無狀態的,並根據從外部反饋的狀態來更改,但實際上並非如此。另外,Flutter彼時只支持Android和iOS,但我還想發佈到Web上。我的應用中已經有大量的業務邏輯了,我想盡可能地複用它,可是更改一次業務邏輯卻至少要更改兩個位置的代碼實在讓人無法接受。

我開始研究該如何解決這個問題,然後就遇到了BLoC。作為快速了解,建議你在有空的時候觀看“Flutter/AngularDart——代碼共享,一起用更好(DartConf 2018)”這個視頻。

BLoC模式

如何利用BLoC在Flutter和AngularDart中共享代碼? 34

BLoC是谷歌發明的一個花哨的名詞,意為“業務(b

Categories
程式開發

日活2000萬的Microsoft Teams,現在出了Linux版

日活2000萬的Microsoft Teams,現在出了Linux版 37

12月10日,微軟發布Microsoft Teams for Linux公共預覽版

據悉,Microsoft Teams是這家公司移植到Linux平台上的第一個Office應用。用戶可以從…

Categories
程式開發

如何在 Kubernetes 上運行數據庫服務?

導讀: Kubernetes 已經成為了集群調度領域最炙手可熱的開源項目之一。用Kubernetes 來部署和管理Web 應用、移動後端和API 服務等相對容易,因為這些應用通常都是無狀態應用,通過基本的Kubernetes API 就能運行,可以在沒有其他知識的情況下進行擴展並從故障中恢復。但要是用 Kubernetes 來運行有狀態應用呢?比如數據庫、緩存和監控系統。這就為我們帶來了不小的挑戰。因為這些系統需要應用領域的知識才能正確擴展、升級和重新配置,從而防止數據丟失或不可用。

Categories
程式開發

比BERT提升近10个点!百度预训练模型ERNIE登顶GLUE榜单

北京时间12月10日,百度预训练模型界ERNIE在自然语言处理领域权威数据集GLUE中登上榜首,并以9个任务平均得分首次突破90大关刷新该榜单历史,其超越微软MTDNN-SMART, 谷歌T5、ALBERT等一众国际顶级预训练模型的表现。

比BERT提升近10个点!百度预训练模型ERNIE登顶GLUE榜单 39

众所周知,通用语言理解评估基准GLUE是自然语言处理领域最权威的排行榜之一,由纽约大学、华盛顿大学、谷歌DeepMind等机构联合推出,以其涵盖大量不同类型的NLP任务,包括自然语言推断、语义相似度、问答匹配、情感分析等9大任务,成为衡量自然语言处理研究进展的行业标准。因此,吸引了谷歌、Facebook、微软等国际顶尖公司以及斯坦福大学、卡耐基·梅隆大学等顶尖大学参加。GLUE排行榜的效果,在一定程度上成为了衡量各机构自然语言处理预训练技术水平最重要的指标之一。此次能够超越国际顶尖公司及高校荣登榜首,背后是百度NLP技术的长足积累。

2018年底以来,以BERT为代表的预训练模型大幅提升了自然语言处理任务的基准效果,取得了显著技术突破,基于大规模数据的预训练技术在自然语言处理领域变得至关重要。众AI公司纷纷发力预训练领域,相继发布了XLNet、RoBERTa、ALBERT、T5等预训练模型。百度也先后发布了ERNIE 1.0、ERNIE 2.0,在16个中英数据集上取得了当时的SOTA。

从GLUE排行榜上来看,BERT使用预训练加微调的方式,相对过往的基线成绩大幅提升各任务的效果,首次突破了80大关。XLNet、RoBERTa、T5、MT-DNN-SMART等模型则分布在88-89分范围,人类水平则是87.1。

百度ERNIE此次登顶,成为首个突破90大关的模型,并在CoLA、SST-2、QQP、WNLI等数据集上达到SOTA。相对BERT的80.5的成绩,提升近10个点,取得了显著的效果突破。

比BERT提升近10个点!百度预训练模型ERNIE登顶GLUE榜单 40

百度ERNIE 2.0原理示意图…