0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

成為一名推薦系統(tǒng)工程師的成長(zhǎng)路線圖

工程師人生 ? 來(lái)源:csdn ? 作者:陳開(kāi)江 ? 2020-10-09 12:16 ? 次閱讀

推薦系統(tǒng)工程師成長(zhǎng)路線圖

《Item-based collaborative filtering recommendation algorithms》這篇文章發(fā)表于2001年,在 Google 學(xué)術(shù)上顯示,其被引用次數(shù)已經(jīng)是6599了,可見(jiàn)其給推薦系統(tǒng)帶來(lái)的影響之大。經(jīng)過(guò)20多年的發(fā)展,item-based 已經(jīng)成為推薦系統(tǒng)的標(biāo)配,而推薦系統(tǒng)已經(jīng)成為互聯(lián)網(wǎng)產(chǎn)品的標(biāo)配。很多產(chǎn)品甚至在第一版就要被投資人或者創(chuàng)始人要求必須“個(gè)性化”,可見(jiàn),推薦系統(tǒng)已經(jīng)飛入尋常百姓家,作為推薦系統(tǒng)工程師的成長(zhǎng)也要比從前更容易,要知道我剛工作時(shí),即使跟同為研發(fā)工程師的其他人如 PHP 工程師(絕無(wú)黑的意思,是真的)說(shuō)“我是做推薦的”,他們也一臉茫然,不知道“推薦”為什么是一個(gè)工程師崗位。如今縱然“大數(shù)據(jù)”,“AI”,這些詞每天360度無(wú)死角轟炸我們,讓我們很容易浮躁異常焦慮不堪,但不得不承認(rèn),這是作為推薦系統(tǒng)工程師的一個(gè)好時(shí)代。

推薦系統(tǒng)工程師和正常碼農(nóng)們相比,無(wú)需把 PM 們?nèi)舆^(guò)來(lái)的需求給像素級(jí)實(shí)現(xiàn),從而堆碼成山;和機(jī)器學(xué)習(xí)研究員相比,又無(wú)需沉迷數(shù)學(xué)推導(dǎo),憋出一個(gè)漂亮自洽的模型,一統(tǒng)學(xué)術(shù)界的爭(zhēng)論;和數(shù)據(jù)分析師相比,也不需繪制漂亮的圖表,做出酷炫的 PPT 能給 CEO 匯報(bào),走上人生巔峰。那推薦系統(tǒng)工程師的定位是什么呢?為什么需要前面提到的那些技能呢?容我結(jié)合自身經(jīng)歷來(lái)一一解答。

我把推薦系統(tǒng)工程師的技能分為四個(gè)維度:

掌握核心原理的技能,是一種知其所以然的基礎(chǔ)技能;

動(dòng)手能力:實(shí)現(xiàn)系統(tǒng),檢驗(yàn)想法,都需要扎實(shí)的工程能力;

為效果負(fù)責(zé)的能力:這是推薦系統(tǒng)工程師和其他工種的最大區(qū)別;

軟技能:任何工程師都需要自我成長(zhǎng),需要團(tuán)隊(duì)協(xié)作。

英文閱讀:讀頂級(jí)會(huì)議的論文、一流公司和行業(yè)前輩的經(jīng)典論文和技術(shù)博客,在Quora 和 Stack Overflow 上和人交流探討;

代碼閱讀:能閱讀開(kāi)源代碼,從中學(xué)習(xí)優(yōu)秀項(xiàng)目對(duì)經(jīng)典算法的實(shí)現(xiàn);

溝通表達(dá):能夠和其他崗位的人員溝通交流,講明白所負(fù)責(zé)模塊的原理和方法,能聽(tīng)懂非技術(shù)人員的要求和思維,能分別真?zhèn)涡枨蟛⑶夷苓_(dá)成一致。

掌握最最基礎(chǔ)的原理

托開(kāi)源的福氣,現(xiàn)在有很多開(kāi)箱即用的工具讓我們很容易搭建起一個(gè)推薦系統(tǒng)。但是浮沙上面筑不起高塔,基礎(chǔ)知識(shí)必須要有,否則就會(huì)在行業(yè)里面,被一輪輪概念旋風(fēng)吹得找不著北。所有基礎(chǔ)里面,最最基礎(chǔ)的當(dāng)然就是數(shù)學(xué)了。

能夠看懂一些經(jīng)典論文對(duì)于實(shí)現(xiàn)系統(tǒng)非常有幫助:從基本假設(shè)到形式化定義,從推導(dǎo)到算法流程,從實(shí)驗(yàn)設(shè)計(jì)到結(jié)果分析。這些要求我們對(duì)于微積分有基本的知識(shí),有了基本的微積分知識(shí)才能看懂梯度下降等基本的優(yōu)化方法。概率和統(tǒng)計(jì)知識(shí)給我們建立起一個(gè)推薦系統(tǒng)工程師最基本的三觀:不要以是非絕對(duì)的眼光看待事物,要有用不確定性思維去思考產(chǎn)品中的每一個(gè)事件,因?yàn)閷?shí)現(xiàn)推薦系統(tǒng),并不是像實(shí)現(xiàn)界面上一個(gè)按鈕的響應(yīng)事件那樣明確可檢驗(yàn)。

大數(shù)據(jù)構(gòu)建了一個(gè)高維的數(shù)據(jù)空間,從數(shù)據(jù)到推薦目標(biāo)基本上都可以用矩陣的角度去形式化,比如常見(jiàn)的推薦算法:協(xié)同過(guò)濾、矩陣分解。而機(jī)器學(xué)習(xí)算法,如果用矩陣運(yùn)算角度去看,會(huì)讓我們更加能夠理解“向量化計(jì)算”和傳統(tǒng)軟件工程里面的循環(huán)之間的巨大差異。高維向量之間的點(diǎn)積,矩陣之間的運(yùn)算,如果用向量化方式實(shí)現(xiàn)比用循環(huán)方式實(shí)現(xiàn),高效不少。建立這樣的思維模式,也需要學(xué)好線性代數(shù)。

學(xué)好基礎(chǔ)的數(shù)學(xué)知識(shí)之外,我們要稍微延伸學(xué)習(xí)一些信息科學(xué)的基礎(chǔ)學(xué)科,尤其是信息論。信息論是構(gòu)建在概率基礎(chǔ)上的,信息論給了很多計(jì)算機(jī)領(lǐng)域問(wèn)題一個(gè)基本的框架:把問(wèn)題看做是通信問(wèn)題。推薦系統(tǒng)要解決的問(wèn)題也是一個(gè)通信問(wèn)題:用戶(hù)在以很不明確的方式向我們的產(chǎn)品發(fā)報(bào),告訴我們他最喜歡/討厭的是什么,我們?cè)谑盏搅酥笠獯a,并且還要給他們回信,如果溝通不順暢,那用戶(hù)就會(huì)失聯(lián)。我的專(zhuān)業(yè)是信息與通信工程。讀研時(shí)從事過(guò) NLP 相關(guān)的課題研究,NLP 里面很多問(wèn)題和方法都用到了信息論知識(shí),這樣讓我深受信息論影響。有了這些基礎(chǔ)知識(shí),再去跟蹤不斷涌現(xiàn)的新算法新模型,就會(huì)容易得多。

推薦系統(tǒng)會(huì)用到很多傳統(tǒng)數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)方法。掌握經(jīng)典的機(jī)器學(xué)習(xí)算法是一個(gè)事半功倍的事情,比如邏輯回歸,是一個(gè)很簡(jiǎn)單的分類(lèi)算法,但它在推薦領(lǐng)域應(yīng)用之廣,其他算法無(wú)出其右。在吳恩達(dá)的深度學(xué)習(xí)課程里,從邏輯回歸入手逐漸講到多層神經(jīng)網(wǎng)絡(luò),講到更復(fù)雜的 RNN 等。應(yīng)該怎么掌握這些經(jīng)典的算法呢?最直接的辦法是:自己從0實(shí)現(xiàn)一遍。

推薦系統(tǒng)不只是模型,推薦系統(tǒng)是一整個(gè)數(shù)據(jù)處理流程,所以模型的上游,就是一些數(shù)據(jù)挖掘的知識(shí)也需要掌握,基本的分類(lèi)聚類(lèi)知識(shí),降維知識(shí),都要有所掌握。

鍛煉扎實(shí)的工程能力

前面強(qiáng)調(diào)自己實(shí)現(xiàn)算法對(duì)于掌握算法的必要性,但在實(shí)際開(kāi)發(fā)推薦系統(tǒng)的時(shí)候,如無(wú)必要,一定不要重復(fù)造輪子。推薦系統(tǒng)也是一個(gè)軟件系統(tǒng),當(dāng)然要穩(wěn)定要高效。開(kāi)源成熟的輪子當(dāng)然是首選。實(shí)現(xiàn)推薦系統(tǒng),有一些東西是 commonsense,有一些是好用的工具,都有必要列出來(lái)。

首當(dāng)其沖的常識(shí)就是 Linux 操作系統(tǒng)。由于 Windows 在 PC 的市場(chǎng)占率的壟斷地位,導(dǎo)致很多軟件工程師只會(huì)在 Windows 下開(kāi)發(fā),這是一個(gè)非常普遍、嚴(yán)重、又容易被忽視的短板。

我自己深有體會(huì),一定要熟練地在 Linux 下的用命令行編程,如果你的個(gè)人電腦是 Mac,會(huì)好很多,因?yàn)?macOS 底層是 Unix 操作系統(tǒng),和 Linux 是近親,用 Mac 的終端基本上類(lèi)似在 Linux 下的命令行,如果不是則一定要有自己的 Linux 環(huán)境供自己平時(shí)練習(xí),買(mǎi)一臺(tái)常備的云服務(wù)器是一個(gè)不錯(cuò)的選擇。這里有兩個(gè)關(guān)鍵點(diǎn):

用 Linux 操作系統(tǒng);

多用命令行而少用 IDE( Eclipse、VS等)。

為什么呢?有以下三點(diǎn)原因:

幾乎所有推薦系統(tǒng)要用到的開(kāi)源工具都是首先在 Linux 下開(kāi)發(fā)測(cè)試完成的,最后再考慮移植到 Windows 平臺(tái)上(測(cè)試不充分或者根本不移植);

鍵盤(pán)比鼠標(biāo)快,用命令行編程會(huì)多用鍵盤(pán),少用鼠標(biāo),熟悉之后效率大大提升。而且Linux 下的命令非常豐富,處理的也都是標(biāo)準(zhǔn)文本,掌握之后很多時(shí)候根本不用寫(xiě)程序就能做很多數(shù)據(jù)處理工作。

幾乎 Linux 是互聯(lián)網(wǎng)公司的服務(wù)器操作系統(tǒng)標(biāo)配,不會(huì) Linux 下的開(kāi)發(fā),就找不著工作,就問(wèn)你怕不怕?

常常有人問(wèn)我,實(shí)現(xiàn)推薦系統(tǒng)用什么編程語(yǔ)言比較好。標(biāo)準(zhǔn)的官方回答是:用你擅長(zhǎng)的語(yǔ)言。但我深知這個(gè)回答不會(huì)解決提問(wèn)者的疑問(wèn)。實(shí)際上我的建議是:你需要掌握一門(mén)編譯型語(yǔ)言:C++ 或者 Java,然后掌握一門(mén)解釋型語(yǔ)言,推薦 Python 或者 R。原因如下:

推薦系統(tǒng)的開(kāi)源項(xiàng)目中以這幾種語(yǔ)言最常見(jiàn);

快速的數(shù)據(jù)分析和處理、模型調(diào)試、結(jié)果可視化、系統(tǒng)原型實(shí)現(xiàn)等,Python 和 R 是不錯(cuò)的選擇,尤其是 Python;

當(dāng)Python在一些地方有效率瓶頸時(shí),通常是用C++實(shí)現(xiàn),再用Python調(diào)用;

Java在構(gòu)建后臺(tái)服務(wù)時(shí)很有優(yōu)勢(shì),一些大數(shù)據(jù)開(kāi)源項(xiàng)目也多用Java來(lái)實(shí)現(xiàn);

如果時(shí)間有限,只想掌握一門(mén)語(yǔ)言的話,推薦 Python。從模型到后端服務(wù)到 web 端,都可以用 Python,毋庸置疑,Python 是 AI 時(shí)代第一編程語(yǔ)言。

推薦系統(tǒng)是一個(gè)線上的產(chǎn)品,無(wú)論離線時(shí)的模型跑得多么爽,可視化多么酷炫,最終一定要做成在線服務(wù)才完整。這就涉及到兩方面的工作:1.系統(tǒng)原型;2.算法服務(wù)化。這涉及到:

數(shù)據(jù)存儲(chǔ)。包括存儲(chǔ)模型用于在線實(shí)時(shí)計(jì)算,存儲(chǔ)離線計(jì)算好的推薦結(jié)果。除了傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù) MySQL 之外,還需要掌握非關(guān)系型數(shù)據(jù)庫(kù),如 KV 數(shù)據(jù)庫(kù) Redis,列式數(shù)據(jù)庫(kù) Cassandra 和 HBase 常常用來(lái)存儲(chǔ)推薦結(jié)果或模型參數(shù)。推薦的候選 Item 也可能存在 MongoDB 中。

RPC 和 web。需要將自己的算法計(jì)算模塊以服務(wù)的形式提供給別人跨進(jìn)程跨服務(wù)器調(diào)用,因此 RPC 框架就很重要,最流行如 thrift 或者 dubbo。在 RPC 服務(wù)之上,再做原型還需要會(huì)一點(diǎn)基本的 web 開(kāi)發(fā)知識(shí),Python、PHP、Java 都有相應(yīng)的 web 框架來(lái)迅速的完成最基本的推薦結(jié)果展示。

當(dāng)然,最核心的是算法實(shí)現(xiàn)。以機(jī)器學(xué)習(xí)算法為主。下面詳細(xì)列舉一下常見(jiàn)的機(jī)器學(xué)習(xí)/深度學(xué)習(xí)工具:

Spark MLib:大概是使用最廣的機(jī)器學(xué)習(xí)工具了,因?yàn)?Spark 普及很廣,帶動(dòng)了一個(gè)并非其最核心功能的 MLib,MLib 實(shí)現(xiàn)了常見(jiàn)的線性模型、樹(shù)模型和矩陣分解模型等。提供 Scala、Java 和 Python 接口,提供了很多例子,學(xué)習(xí) Spark MLib 很值得自己運(yùn)行它提供的例子,結(jié)合文檔和源代碼學(xué)習(xí)接口的使用,模型的序列化和反序列化。

GraphLab/GraphCHI:GraphCHI 是開(kāi)源的單機(jī)版,GraphLab 是分布式的,但并不開(kāi)源。所以建議推薦系統(tǒng)工程師重點(diǎn)學(xué)習(xí)一下 GraphCHI,它有 Java 和 C++兩個(gè)版本,實(shí)現(xiàn)了常見(jiàn)的推薦算法,并在單機(jī)上能跑出很高的結(jié)果。有一個(gè)不得不承認(rèn)的事實(shí)是:GraphCHI 和 GraphLab 在業(yè)界應(yīng)用得并不廣泛。

Angel:騰訊在2017年開(kāi)源的分布式機(jī)器學(xué)習(xí)平臺(tái),Java 和 Scala 開(kāi)發(fā)而成,已經(jīng)在騰訊的10億維度下有工業(yè)級(jí)別的應(yīng)用,最終的是填補(bǔ)了專(zhuān)注傳統(tǒng)機(jī)器學(xué)習(xí)(相對(duì)于深度學(xué)習(xí))分布式計(jì)算的空白,值得去學(xué)習(xí)一下;由于開(kāi)發(fā)團(tuán)隊(duì)是中國(guó)人,所以文檔以中文為主,學(xué)習(xí)的時(shí)候多多和開(kāi)發(fā)團(tuán)隊(duì)交流會(huì)受益良多,進(jìn)步神速。

VW:這是 Yahoo 開(kāi)源的一個(gè)分布式機(jī)器學(xué)工具,也支持單機(jī),分布式需要借助Hadoop 實(shí)現(xiàn)。由于主要開(kāi)發(fā)者后來(lái)跳槽去了微軟,所以還支持 Windows 平臺(tái)。閱讀這個(gè)工具的源碼,非常有助于理解邏輯回歸的訓(xùn)練,微博推薦團(tuán)隊(duì)和廣告團(tuán)隊(duì)第一版模型訓(xùn)練都采用了 VW,其開(kāi)發(fā)者在 Yahoo Group 中回答問(wèn)題很積極,使用期間,我在這個(gè)group 里面提了大大小小十幾個(gè)問(wèn)題,基本上都得到解答,這是一個(gè)學(xué)習(xí)成長(zhǎng)方法,建議新學(xué)者常常在郵件組或者討論組里提問(wèn)題,不要在乎問(wèn)題是否愚蠢,不要在意別人的取笑。

Xgboost:這個(gè)號(hào)稱(chēng) kaggle 神器的機(jī)器學(xué)習(xí)工具,非常值得學(xué)習(xí)和使用,尤其是對(duì)于理解 Boosting 和樹(shù)模型很有幫助。網(wǎng)上有很多教程,主要開(kāi)發(fā)者陳天奇也是中國(guó)人,所以遇到問(wèn)題是非常容易找到交流的人的。

libxxx:這里的xxx是一個(gè)通配符,包括以 lib 開(kāi)頭的各種機(jī)器學(xué)習(xí)工具,如liblinear、libsvm、libfm、libmf。都是單機(jī)版的工具,雖然是單機(jī)版,但足夠解決很多中小型數(shù)據(jù)集的推薦問(wèn)題了,著名的 scikit-learn 中的一些分類(lèi)算法就是封裝的libsvm 等工具。另外,libsvm 不但是一個(gè)機(jī)器學(xué)習(xí)工具,而且它還定義了一種應(yīng)用廣泛,成為事實(shí)標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)訓(xùn)練數(shù)據(jù)格式:libsvm。

MXNet,TensorFlow,Caffe:深度學(xué)習(xí)大行其道,并且在識(shí)別問(wèn)題上取到了驚人的效果,自然也間接推動(dòng)了推薦系統(tǒng)的算法升級(jí),因此,掌握深度學(xué)習(xí)工具的就很必要,其中尤其以 TensorFlow 為主,它不但有深度學(xué)習(xí)模型的實(shí)現(xiàn),還有傳統(tǒng)機(jī)器學(xué)習(xí)模型的實(shí)現(xiàn),Python 接口,對(duì)于掌握 Python 的人來(lái)說(shuō)學(xué)習(xí)門(mén)檻很低。深度學(xué)習(xí)工具仍然建議去跑幾個(gè)例子,玩一些有趣的東西會(huì)快速入門(mén),如給照片換風(fēng)格,或者訓(xùn)練一個(gè)動(dòng)物/人臉識(shí)別器,可以有一些粗淺的認(rèn)識(shí)。再系統(tǒng)地學(xué)習(xí)一下吳恩達(dá)的在線課程,他的課程對(duì)TensorFlow 的使用也有講解,課后編程作業(yè)設(shè)計(jì)得也很好。

為最終效果負(fù)責(zé)的能力

推薦系統(tǒng)最終要為產(chǎn)品效果負(fù)責(zé)。衡量推薦系統(tǒng)效果,分為離線和在線兩個(gè)階段。

離線階段。跑出一些模型,會(huì)有定義清晰的指標(biāo)去衡量模型本身對(duì)假設(shè)的驗(yàn)證情況,如準(zhǔn)確率、召回率、AUC 等。這個(gè)階段的效果好,只能說(shuō)明符合預(yù)期假設(shè),但不能保證符合產(chǎn)品最終效果,因此還要有線上實(shí)際的檢驗(yàn)。

在線階段:除了有一些相對(duì)通用的指標(biāo),如用戶(hù)留存率、使用時(shí)長(zhǎng)、點(diǎn)擊率等,更多的是和產(chǎn)品本身的定位息息相關(guān),如短視頻推薦關(guān)注 vv,新聞推薦關(guān)注 CTR 等,這些和商業(yè)利益結(jié)合更緊密的指標(biāo)才是最終檢驗(yàn)推薦系統(tǒng)效果的指標(biāo),推薦系統(tǒng)工程師要為這個(gè)負(fù)責(zé),而不能僅僅盯著離線部分和技術(shù)層面的效果。

了解不同產(chǎn)品的展現(xiàn)形式對(duì)推薦系統(tǒng)實(shí)現(xiàn)的要求,feed 流、相關(guān)推薦、猜你喜歡等不同產(chǎn)品背后技術(shù)要求不同,效果考核不同,多觀察、多使用、多思考。

最后,要學(xué)會(huì)用產(chǎn)品語(yǔ)言理解產(chǎn)品本身,將技術(shù)能力作為一種服務(wù)輸出給團(tuán)隊(duì)其他成員是一項(xiàng)軟技能。

推薦系統(tǒng)領(lǐng)域現(xiàn)狀

協(xié)同過(guò)濾提出于90年代,至今二十幾年,推薦系統(tǒng)技術(shù)上先后采用過(guò)近鄰?fù)扑]、基于內(nèi)容的推薦,以矩陣分解為代表的機(jī)器學(xué)習(xí)方法推薦,最近幾年深度學(xué)習(xí)的火熱自然也給推薦系統(tǒng)帶來(lái)了明顯的提升。推薦系統(tǒng)的作用無(wú)人質(zhì)疑,簡(jiǎn)單舉幾個(gè)例子,80%的 Netflix 電影都是經(jīng)由推薦系統(tǒng)被觀眾觀看的,YouTube 上60%的點(diǎn)擊事件是由推薦系統(tǒng)貢獻(xiàn)的。

推薦系統(tǒng)領(lǐng)域現(xiàn)狀是怎么樣的呢?這里分別從技術(shù)上和產(chǎn)品上來(lái)看一看。先看技術(shù)上,推薦系統(tǒng)所依賴(lài)的技術(shù)分為三類(lèi):傳統(tǒng)的推薦技術(shù)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)。

首先,傳統(tǒng)的推薦技術(shù)仍然非常有效。構(gòu)建第一版推薦系統(tǒng)仍然需要這些傳統(tǒng)推薦系統(tǒng)技術(shù),這包括:User-based 和 Item-based 近鄰方法,以文本為主要特征來(lái)源的基于內(nèi)容推薦,以矩陣分解為代表的傳統(tǒng)機(jī)器學(xué)習(xí)算法。當(dāng)一個(gè)互聯(lián)網(wǎng)產(chǎn)品的用戶(hù)行為數(shù)據(jù)積累到一定程度,我們用這些傳統(tǒng)推薦算法來(lái)構(gòu)建第一版推薦系統(tǒng),大概率上會(huì)取得不俗的成績(jī),實(shí)現(xiàn)0的突破。這類(lèi)傳統(tǒng)的推薦算法已經(jīng)積累了足夠多的實(shí)踐經(jīng)驗(yàn)和開(kāi)源實(shí)現(xiàn)。由于對(duì)推薦系統(tǒng)的需求比以往更廣泛,并且這些技術(shù)足夠成熟,所以這類(lèi)技術(shù)有 SaaS 化的趨勢(shì),逐漸交給專(zhuān)門(mén)的第三方公司來(lái)做,中小型、垂直公司不會(huì)自建團(tuán)隊(duì)來(lái)完成。

深度學(xué)習(xí)在識(shí)別問(wèn)題上取得了不俗的成績(jī),自然就被推薦系統(tǒng)工程師們盯上了,已經(jīng)結(jié)合到推薦系統(tǒng)中,比如 YouTube 用 DNN 構(gòu)建了他們的視頻推薦系統(tǒng),Google 在Google Play 中使用 Wide & Deep 模型,結(jié)合了淺層的 logisticregression 模型和深層模型進(jìn)行 CTR 預(yù)估,取得了比單用淺層模型或者單獨(dú)的深層模型更好的效果,Wide & Deep 模型也以開(kāi)源的方式集成在了 TensorFlow 中,如今很多互聯(lián)網(wǎng)公司,都在廣泛使用這一深度學(xué)習(xí)和淺層模型結(jié)合的模型。在2014年,Spotify 就嘗試了 RNN 在序列推薦上,后來(lái) RNN 又被 Yahoo News 的推薦系統(tǒng)。傳統(tǒng)推薦算法中有一個(gè)經(jīng)典的算法叫做 FM,常用于做 CTR 預(yù)估,算是一種淺層模型,最近也有人嘗試了結(jié)合深度學(xué)習(xí),提出 DeepFM 模型用于 CTR 預(yù)估。

AlphaGo、AlphaMaster、AlphaZero一個(gè)比一個(gè)厲害,其開(kāi)掛的對(duì)弈能力,讓強(qiáng)化學(xué)習(xí)進(jìn)入大眾視線。強(qiáng)化學(xué)習(xí)用于推薦系統(tǒng)是一件很自然的事情,把用戶(hù)看做變化的環(huán)境,而推薦系統(tǒng)是 Agent,在和用戶(hù)的不斷交互之間,推薦系統(tǒng)就從一臉懵逼到逐漸“找到北”,迎合了用戶(hù)興趣。業(yè)界已有應(yīng)用案例,阿里的研究員仁基就公開(kāi)分享過(guò)淘寶把強(qiáng)化學(xué)習(xí)應(yīng)用在搜索推薦上的效果。強(qiáng)化學(xué)習(xí)還以 bandit 算法這種相對(duì)簡(jiǎn)單的形式應(yīng)用在推薦系統(tǒng)很多地方,解決新用戶(hù)和新物品的冷啟動(dòng),以及取代 ABTest 成為另一種在線實(shí)驗(yàn)的框架。

除了技術(shù)上推薦系統(tǒng)有不同側(cè)重,產(chǎn)品形式上也有不同的呈現(xiàn)。最初的推薦系統(tǒng)產(chǎn)品總是存活在產(chǎn)品的邊角上,如相關(guān)推薦,這種產(chǎn)品形式只能算是“錦上添花”,如果推薦系統(tǒng)不小心開(kāi)了天窗,也不是性命攸關(guān)的問(wèn)題。如今推薦產(chǎn)品已經(jīng)演化成互聯(lián)網(wǎng)產(chǎn)品的主要承載形式:信息流。從最早的社交網(wǎng)站動(dòng)態(tài),到圖文信息流,到如今的短視頻。信息流是一種推薦系統(tǒng)產(chǎn)品形式,和相關(guān)推薦形式比起來(lái),不再是錦上添花,而是注意力收割利器。

推薦系統(tǒng)產(chǎn)品形式的演進(jìn),背景是互聯(lián)網(wǎng)從 PC 到移動(dòng)的演進(jìn),PC 上是搜索為王,移動(dòng)下是推薦為王,自然越來(lái)越重要。隨著各種可穿戴設(shè)備的豐富,越來(lái)越多的推薦產(chǎn)品還會(huì)涌現(xiàn)出來(lái)。產(chǎn)品和技術(shù)相互協(xié)同發(fā)展,未來(lái)會(huì)有更多有意思的推薦算法和產(chǎn)品形式問(wèn)世,成為一名推薦系統(tǒng)工程師永遠(yuǎn)都不晚。

文 / 陳開(kāi)江

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 工程師
    +關(guān)注

    關(guān)注

    59

    文章

    1561

    瀏覽量

    68313
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5422

    瀏覽量

    120593
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式軟件工程師如何提升自己?

    相關(guān)的實(shí)驗(yàn)室項(xiàng)目或參加開(kāi)源項(xiàng)目以積累寶貴的項(xiàng)目經(jīng)驗(yàn)。 4.不斷學(xué)習(xí)與成長(zhǎng) 嵌入式軟件領(lǐng)域的技術(shù)更新速度非???,因此,作為一名嵌入式軟件工程師,需要不斷學(xué)習(xí)與成長(zhǎng),保持對(duì)新技術(shù)的敏感性和
    發(fā)表于 06-12 11:20

    英飛凌為AI數(shù)據(jù)中心提供先進(jìn)的高能效電源裝置產(chǎn)品路線圖

    英飛凌科技股份公司已翻開(kāi)AI系統(tǒng)能源供應(yīng)領(lǐng)域的新篇章,發(fā)布了電源裝置(PSU)產(chǎn)品路線圖。該路線圖在優(yōu)先考慮能源效率前提下,專(zhuān)為滿(mǎn)足AI數(shù)據(jù)中心當(dāng)前和未來(lái)的能源需求而設(shè)計(jì)。
    發(fā)表于 06-03 18:24 ?384次閱讀
    英飛凌為AI數(shù)據(jù)中心提供先進(jìn)的高能效電源裝置產(chǎn)品<b class='flag-5'>路線圖</b>

    事關(guān)衛(wèi)星物聯(lián)網(wǎng)!LoRaWAN 2027 發(fā)展路線圖重磅公布

    4月16日,LoRa聯(lián)盟(LoRaAlliance)發(fā)布了LoRaWAN開(kāi)發(fā)路線圖,以引導(dǎo)該標(biāo)準(zhǔn)未來(lái)演進(jìn)的方向。LoRaWAN開(kāi)發(fā)路線圖LoRa作為低功耗廣域網(wǎng)通信領(lǐng)域的“明星”之
    的頭像 發(fā)表于 04-26 08:06 ?531次閱讀
    事關(guān)衛(wèi)星物聯(lián)網(wǎng)!LoRaWAN 2027 發(fā)展<b class='flag-5'>路線圖</b>重磅公布

    個(gè)電源工程師成長(zhǎng)路徑

    即將走馬上任電源工程師這個(gè)崗位,請(qǐng)問(wèn)各位大佬,這個(gè)崗位的職業(yè)路徑般是怎樣的?
    發(fā)表于 04-08 14:19

    如何成為一名嵌入式C語(yǔ)言高手?

    如何成為一名嵌入式C語(yǔ)言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語(yǔ)言則是嵌入式系統(tǒng)開(kāi)發(fā)中最常用的編程語(yǔ)言之。
    發(fā)表于 04-07 16:03

    美國(guó)公布3D半導(dǎo)體路線圖

    的約300個(gè)人共同努力制定。 MAPT路線圖定義了關(guān)鍵的研究重點(diǎn)和必須解決的技術(shù)挑戰(zhàn),以支持2021年1月發(fā)布的“半導(dǎo)體十年計(jì)劃”中概述的重大轉(zhuǎn)變。MAPT路線圖可在https
    的頭像 發(fā)表于 03-25 17:32 ?516次閱讀

    如何成為一名嵌入式C語(yǔ)言高手?

    如何成為一名嵌入式C語(yǔ)言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語(yǔ)言則是嵌入式系統(tǒng)開(kāi)發(fā)中最常用的編程語(yǔ)言之。
    發(fā)表于 03-25 14:12

    單片機(jī)如何通過(guò)代碼控制硬件:一名工程師的分享

    今天跟大家聊聊單片機(jī)是怎樣通過(guò)代碼來(lái)操控硬件的。作為一名單片機(jī)工程師,我們平時(shí)的工作就像是給單片機(jī)編寫(xiě)“指令集”,讓它按照我們的意圖去驅(qū)動(dòng)各種硬件設(shè)備。
    的頭像 發(fā)表于 03-06 14:46 ?1093次閱讀
    單片機(jī)如何通過(guò)代碼控制硬件:<b class='flag-5'>一名</b><b class='flag-5'>工程師</b>的分享

    為何大廠急招鴻蒙開(kāi)發(fā)工程師?別有洞天

    正確看待鴻蒙不再兼容安卓版本,而大廠急招鴻蒙工程師舉動(dòng)已經(jīng)是預(yù)料之中的。我們步步來(lái)看鴻蒙是怎么發(fā)展過(guò)程的。為什么互聯(lián)網(wǎng)大廠急招鴻蒙開(kāi)發(fā)崗位? 鴻蒙的發(fā)展歷程 華為歷經(jīng)4年,從2019年開(kāi)始
    發(fā)表于 01-08 19:59

    優(yōu)秀電源工程師的必備技能大揭秘!

    就帶大家細(xì)數(shù)下優(yōu)秀電源工程師具備的那些技能。新手必備課程成為一名電源高手需要扎實(shí)的理論基礎(chǔ),涉及電路原理、語(yǔ)言編程和控制理論等多個(gè)學(xué)科領(lǐng)域。為了幫助大家更好地掌握
    的頭像 發(fā)表于 12-19 08:23 ?1477次閱讀
    優(yōu)秀電源<b class='flag-5'>工程師</b>的必備技能大揭秘!

    #人工智能 #FPGA 怎么成為個(gè)合格的FPGA工程師?

    fpga工程師
    明德?lián)P助教小易老師
    發(fā)布于 :2023年12月18日 21:19:01

    如何成為一名優(yōu)秀的嵌入式工程師

    如何成為一名優(yōu)秀的嵌入式工程師?嵌入式學(xué)習(xí)的第步,首先是C語(yǔ)言。 1.理解內(nèi)存管理:C語(yǔ)言不同于高級(jí)語(yǔ)言,它不會(huì)自動(dòng)管理內(nèi)存。因此,你需要理解并掌握如何使用malloc()、fre
    發(fā)表于 11-07 15:36

    ?硬件工程師就業(yè)前景和未來(lái)發(fā)展方向

    大家好,我是硬件花園,一名樂(lè)于分享的硬件工程師。關(guān)注我,了解更多精彩內(nèi)容! 硬件工程師的就業(yè)前景和發(fā)展方向有很多,以下是我整理出來(lái)的些常見(jiàn)的發(fā)展方向: 1. 技術(shù)層面 硬件
    的頭像 發(fā)表于 10-20 08:43 ?3205次閱讀

    嵌入式Linux_Android的學(xué)習(xí)路線圖

    嵌入式Linux_Android學(xué)習(xí)路線圖
    發(fā)表于 09-27 06:09

    #FPGA 本科生也能成為FPGA研發(fā)工程師

    fpga工程師
    明德?lián)P助教小易老師
    發(fā)布于 :2023年09月23日 08:05:36