去年夏天,我在簡書寫下第一篇文章棠耕。
去年夏天余佛,我在一家互聯(lián)網(wǎng)公司成為一名數(shù)據(jù)挖掘工程師。
我喜歡看書寫字窍荧,也喜歡分析數(shù)據(jù)辉巡。
夜晚,突然假想蕊退,如果我是簡書數(shù)據(jù)挖掘工程師郊楣,我會怎么做?
采用自上而下瓤荔,目標先行的思考策略净蚤。我分析數(shù)據(jù)的最終目的是什么?是增加網(wǎng)站和app的訪問量输硝,提高用戶的滿意度今瀑。
怎么增加訪問量?一方面可以加大宣傳力度,另一方面可以改進算法橘荠,引導用戶發(fā)掘更多有意思的文章屿附。怎么提高用戶的滿意度?對于讀者來說哥童,是看到的文章符合自己的口味挺份。對于筆者來說,是盡可能公平地推送文章贮懈。
可以改進的點有哪些匀泊?至少有三大模塊可以優(yōu)化:首頁個性化推薦,專題內(nèi)部排序朵你,定向搜索各聘。
1、首頁個性化推薦
目前首頁可以看成是3大模塊撬呢,包括上方占屏面積最大的宣傳欄伦吠,下方的推薦列表,手機中間或電腦左邊的7日熱門魂拦、30熱門、新上榜搁嗓。簡書從多種角度給文章排序芯勘,以不同的方式呈現(xiàn)給用戶。這既是其優(yōu)勢腺逛,也是其劣勢荷愕。簡書把選擇權(quán)交給用戶,用戶自行選擇感興趣的模塊棍矛,靈活度較大安疗。但是用戶需要瀏覽的文章數(shù)目增多,篩選的成本增大够委。簡書不僅意味著極簡寫作荐类,也應(yīng)該爭取做到極簡閱讀。在國內(nèi)茁帽,簡書確實是我見過的最好的寫作平臺玉罐,但未見得是最好的閱讀平臺。
對于首頁推薦潘拨,我建議分兩次升級吊输。第一步可以將看過的文章權(quán)重降低。進一步改動是多特征融合铁追,用整體排序代替分組排序季蚂。
為什么要進行第一次升級?因為我發(fā)現(xiàn)讀者明明已經(jīng)看過了某些文章,簡書還一個勁地給他們推送同一篇文章扭屁,這就會降低用戶體驗算谈。就像亞馬遜一般不會給用戶推薦買過的書,而是推薦相似的書疯搅,同一個道理濒生。
為什么要進行第二次升級?追求極簡的閱讀幔欧,讓用戶不用費心選擇罪治,不會被信息潮海所淹沒,使得簡書推薦的東西正好是他們想要的礁蔗。這對數(shù)據(jù)挖掘工程師的要求比較高觉义,短期內(nèi)難以得到完美解決。需要采取迭代的方式浴井,一步一步優(yōu)化模型晒骇。
比如先構(gòu)建一個簡單的模型,設(shè)立基線磺浙。
目標:單個用戶對單篇文章的滿意度洪囤。
原始數(shù)據(jù):文章的屬性,筆者和讀者的信息撕氧,筆者和讀者在簡書上的行為瘤缩。
基本特征:文章粒度的的喜歡數(shù)和評論數(shù),筆者自帶的關(guān)注數(shù)和喜歡數(shù)伦泥,文章的類別和用戶偏好的相似度剥啤,讀者對文章的顯示評價和隱式評價。
應(yīng)用比較廣泛的模型:邏輯斯特回歸和gbdt不脯。
后續(xù)迭代優(yōu)化也可以從目標府怯、數(shù)據(jù)、特征防楷、模型四個方面入手牺丙。
目標:可以設(shè)立多個評價指標,用不同的模型分別優(yōu)化各項指標域帐,最后再進行模型融合赘被,給出一個總分。
數(shù)據(jù):可以采集更多的數(shù)據(jù)肖揣,也可以進行數(shù)據(jù)預(yù)處理(例如數(shù)據(jù)清洗和數(shù)據(jù)轉(zhuǎn)換)民假。前者擴大了數(shù)據(jù)的量,后者提高了數(shù)據(jù)的質(zhì)龙优。
特征:特征選擇和特征提取羊异。前者是從一大堆候選特征中篩選出較優(yōu)的特征集合(降維)事秀,后者是對原有特征進行重新組合。
模型:針對不同的評價指標野舶,建立適合的模型易迹。分析數(shù)據(jù),調(diào)研模型類型和模型參數(shù)平道。
2睹欲、專題內(nèi)部排序
專題內(nèi)部排序分為三個模塊,分別是最新收入一屋,最新評論窘疮,熱門。目前這三塊的排序算法非常簡單粗暴冀墨,有很大的提升空間闸衫。
對于最新收入?yún)^(qū),一般是評審通過了诽嘉,就立馬在這個模塊出現(xiàn)蔚出。這樣,一篇文章的瀏覽量就會受到發(fā)布時間段和同時期其他作品數(shù)量的影響虫腋〗拘铮可以改進的措施是,將新收錄的作品放到一個隊列中悦冀,每隔一段時間放出一個作品酥筝,利用不同時間段的流量監(jiān)控,使得每個作品在這個區(qū)的曝光率盡可能相等雏门。
對于評論區(qū),只要文章有新的評論掸掏,該文章在收錄的所有專題中的排名就立馬靠前茁影。這不是很合理,推薦兩種改進策略丧凤。第一募闲,產(chǎn)生新評論時,在各個專題的排名不要同時上升愿待,中間最好有個隨機時間差浩螺。第二,目前文章在評論區(qū)的曝光機會約等于評論次數(shù)仍侥,這樣加劇了兩極分化要出,建議重新構(gòu)建模型,例如曝光機會=In(a+評論次數(shù))+b农渊,初期可以人工設(shè)置參數(shù)患蹂,后期可以通過模型訓練獲取參數(shù)。
對于熱門區(qū),目前采取的是策略是按喜歡數(shù)排序传于。我覺得在這一塊至少要加上時間衰減策略囱挑,最好再聯(lián)合其他特征,給每篇文章一個更合理的分數(shù)沼溜。
3平挑、定向搜索
簡書在定向搜索這塊做得比較差,很難滿足用戶需求系草,還好用戶使用搜索的次數(shù)不是很多通熄,基本上都是推送什么看什么。
如果我來做定向搜索這一塊悄但,我會分三步走棠隐。
第一步,構(gòu)建基線模型檐嚣,采用BM25算法助泽,即直接計算搜索關(guān)鍵詞與文章內(nèi)容的相關(guān)性。
第二步嚎京,聯(lián)合多個特征嗡贺,用機器學習算法對前n名的結(jié)果進行重新排序。特征可能是文章的質(zhì)量鞍帝,文章發(fā)布的時間诫睬,喜歡和評論數(shù)目等等。
第三步帕涌,個性化調(diào)整排序結(jié)果摄凡。一般用戶去簡書搜索文章,很有可能是之前瀏覽過的文章或者關(guān)注的專題和筆者的文章蚓曼。簡書可以在定向搜索模塊也加入個性化推薦策略亲澡,而不僅僅是在推送時才進行個性化定制。
假如我是簡書數(shù)據(jù)挖掘工程師纫版,我會從以上內(nèi)容中選擇一個點進行優(yōu)化床绪。一個人的精力有限,一個人的力量也遠不如一支團隊的力量其弊。簡書想要打造極簡的閱讀和寫作平臺癞己,需要的不是一個數(shù)據(jù)挖掘工程師,而是一支優(yōu)秀的數(shù)據(jù)挖掘團隊梭伐。