數據分析實戰|人人都是產品經理網站(下篇):作者視角
本篇是《數據分析實戰|人人都是產品經理網站》系列的最后一個問題,將從作者關心的角度出發,通過詳細的數據比對,分析一篇文章發表后是否能夠變成爆款。
一、最后一個問題
本篇將解決《數據分析實戰|人人都是產品經理網站》系列的最后一個問題,將從作者關心的角度來分析,一篇文章發表后是否能夠變成爆款。
這是由之前的讀者變成作者后獲得的一些新體會。以前是讀者的時候只有看客心態,網絡上的文章繁多,隨便看看就好。只有那些特別好的可能會轉發,可能會收藏,但看完后網頁一關就還是與我無關了。
現在作為一名業余的內容創作者,每篇文章從構思準備到下筆完成可能要花半個月以上時間,期間會想象準備什么樣的內容能夠得到用戶喜歡,反復的思考和推敲總結,醞釀寫下來的文字否能將思想得到準確傳遞。
最后當稿子提交審核的時候,將會有更多的牽掛。每天都會上客戶端看一看,今天新增了多少閱讀和收藏,是不是有讀者給我留言了,有沒有上熱門文章等等。
雖然會有一些困擾,但這種樂趣是和平時做產品、發布產品的心情是一樣的。如何讓自己的心血能夠得到多一點點的回報將是每個作者的心愿,而其中最直接和最具體的表現則是文章的閱讀量。
本篇為了能夠更快的得出結論,這里再把本篇的問題和目標確定一下:
作為一名作者,投稿的文章是否會在人人都是產品經理網站(以下簡稱人人網)上成為爆款?
二、觀察和分析
1. 從閱讀量到爆款
其實作者關心的問題最初是有如下幾個選擇的:
- 如何提高文章的閱讀量?
- 投稿文章的閱讀量是多少?
- 文章是否會成為爆款?
第一種,討論提高文章的閱讀量。你需要將一篇文章用兩種不同的寫法、在同一個平臺、同一個時間分別投稿,也就是AB Test才能得到的結果。做產品可以這樣測試,但寫文章度不現實。而且討論起來將會是個相當復雜的過程,甚至可以開一個輔導班。
第二種,討論文章的閱讀是多少是一個回歸問題,但對比于第三種來說意義略小,比如預測了一篇文章的閱讀量為10000,請問它在人人網上是多還是少?看過上篇的同學可以回答,10000閱讀量的文章在人人網上連文章的均值都不到。
第三種,有了以上簡單分析,根據前篇的數據分析,將閱讀量最多的10%文章定義為爆款即可。這也建立了從閱讀量到爆款之間的聯系,即設定閱讀量在足夠多的情況下會成為爆款。
2. 影響閱讀量的主要因素
這里根據我多年的互聯網經驗,在各種內容平臺上,有以下幾個因素會直接影響到一篇文章(內容)的閱讀量,當前排名不分先后:
- 文章出現的頻率(位置)。出現的位置越多則頻率越高,舉個極端點的例子:如果大家進入到人人網站的時候,有個彈窗要求大家必須訪問某篇文章后,才能繼續瀏覽網站內容,請問這篇文章的閱讀量是否會爆增?雖然現實情況下一般不會發生,但文章出現頻率是可以受平臺控制的。無論是運營的置頂、新文章的首頁推薦、搜索結果的返回順序等等,都會直接影響到文章的閱讀量。
- 文章的質量。優質的文章本身并不能直接吸用戶來提高閱讀量,但質量將直接影響文章的二次傳播。比如微信中的爆款文章并不是因為大家都關注了發布者的公眾號,而是因為爆款文章它的內容受到讀者的認可,被傳播得到處都是,讓吃瓜群眾不得不看。
- 文章對用戶的匹配程度。僅從點擊量來說,文章的介紹信息將直接影響用戶是否點擊查看,介紹信息包括但不限于標題,圖片,描述,文章來源等等。更進一步的說,隨著用戶數量的增加,每種類型的文章都有固定的觀看比例,比如求聘文章的標題10個人中就有8個人會點擊查看,而數據分析的文章可能10個人就只有4個,這就是匹配度的不同導致的點擊量不同。
- 文章的發布時長。互聯網的長尾訪問特性,內容發布得越早則次數越多,畢竟這是一個累加不可逆的過程。
3. 在人人網上的實際情況
剛剛討論的是普遍情況,這里我們需要結合目標網站自身的實際情況做進一步分析。在人人上投稿幾次之后,綜合長時間在人人網的學習和觀察,大約一篇文章的閱讀量走勢會如下圖所示(其中色塊的劃分代表各因素在不同階段的影響力大?。?/p>
4. 心智模型的建立
現實世界非常復雜,影響一篇的文章閱讀量的因素,我們還可以有很多的猜想。但我們不是全知全能的神,對任何事物的認知總是有限的。
心智模型則是將這些認知串聯起來,以便我們在做判斷的時候可以的時候得出結論。越是經驗、學識豐富,就會離真相越近,相對的,則會顯得愚昧無知。而鬼這樣一個憑空出現的事物,則是幾千年以來,人類對未知事物感到恐懼所產生的一個集合。
本章節花大篇幅描寫的就是這樣一個心智模型的構建過程。
回到本文梳理之前的經驗與思路,可以建立一篇文章到是否能夠爆款的脈絡:
- 爆款≈閱讀量>90%文章爆款≈閱讀量>90%文章
- 閱讀量≈匹配度+頻率+內容質量+發布時長+……
這是我目前能夠想到的有關因素。也許還不是很精準,甚至有可能錯誤,但數據分析就是一個不斷的假設、驗證、得出結論,再修正、再重復的過程。
這樣,我們的心智模型和對這個世界的認知才會越來越完善,得出結論和應對新事物時會更得心應手。
但如果大家要是覺得還有什么關鍵影響因素的也可以在評論中留下自己的看法。
三、機器學習
機器學習是一種數據分析技術,讓計算機執行人和動物與生俱來的活動:從經驗中學習。
機器學習算法使用計算方法直接從數據中“學習”信息,而不依賴于預定方程模型。當可用于學習的樣本數量增加時,這些算法可自適應提高性能。
當你遇到涉及大量數據和許多變量的復雜任務或問題,但沒有現成的處理公式或方程式時,可以考慮使用機器學習。
回到本文的討論,文章是否會成為爆款,這是一個比較典型的,分類監督學習,而最近正好也在研究XGBoost算法,可以拿來練手。所以本章節將會按照應用機器學習的開發步驟展開:
第1步,數據收集。獲取對建立算法和數據模型有關的數據;
第2步,特征選擇。一般原始數據都會有大量的無關項,而篩選的標準則是有助于構建之前建立的心智模型;
第3步,特征工程。指的是將原始數據轉換為特征矢量,比如字符串轉成數值、殘缺數據的補全等;
第4步,訓練算法。選擇一部分數據,使用合適的機器學習算法推導出特征之間的權重;
第5步,測試算法。之前沒有用于訓練的數據當做測試數據,代入到推導出來的算法中,計算也推導結果,由推導結果和實際結果進行對比,可以得到我們關系式預測的正確率。當正確率滿足要求可以進入到第6步,如果不滿足要求則需要進入到第7步;
第6步,修正算法。一般初次結果的正確率都不會太好,可以經過各種優化,包括我們對前面心智模型的都可能會要做修改,修正后需要重新從第1步開始;
第7步,使用算法。如果驗證的結果可以滿足要求,則可以對新發表的文章進行預測。
1. 數據收集
雖然我們有4萬多條原始數據,但不是所有的數據都有效的。而且為了能夠促進我們得到最后的算法模型,也要做一些適當的取舍。這里我做了兩個處理:
- 文章需要發表30天以上;
- 僅選擇閱讀量最高的10%和最低的10%;
文章發表30天以上,是為了保證數據選擇的公平性。我們的目標是將人人網上所有文章的閱讀量前10%設定為爆款,那么對發表時間較短的文章肯定是不公平的,而且新發表的文章閱讀量會在短時間之內急劇增長。這一點我們之前也討論過了,具體的變化就如下圖所示:
不難發現文章的平均閱讀量大約在發布20天之后的才開始趨于平穩,隨后還會有小幅度的上升。我們這里錄入的數據都是所有的時間段的文章,所以為了公平和保險起見,只選擇文章發表30天以上的文章。
而下圖標識出了按以千為單位的閱讀量分布,為了展示方便已將大于3萬閱讀量的做了歸并處理??梢园l現從最低的幾千閱讀量到最高的幾萬閱讀量之間并沒有一條比較明顯界限。特別是從10千
開始到30千
這一段。
而我們將要處理的問題則是一個分類問題,需要分類的結果有比較明顯的特征,或者說要區分的對象差別越大越好。比如做圖像識別時,識別照片是貓是狗的難度,就要比區分是飛機是狗的難度大很多。所以我們這里為了減輕訓練難度,只取閱讀最高的10%和最低的10%,即保留了文章數量,也保證了兩者之間有足夠的區分度。
2. 特征選擇
再把前文中的原始數據屬性搬出來,用于與前文分析的影響點擊的認知模型關聯起來,如下表所示:
需要注意原始數據中是有圖片鏈接的,出于兩個理由沒有入選分析:
- 人人都是產品經理上的讀者和運營對比于其它網站,在圖片選擇上會比較理性與克制,并沒有采用擦邊球的圖片來吸引讀者,而我也只會根據標題和內容來進行選擇閱讀;
- 圖片內容的識別成本還是比較高的,自己分析則需要前期做大量的圖片訓練,第三方服務則會有相當多的限制且貴;
所以原始數據中,可以使用的有以下幾個屬性:
- 發布日期(date)
- 文章類型(category)
- 作者身份(authorRole)
- 標題(title)
- 閱讀量(view)
3. 特征工程
有這么一句話在業界廣泛流傳:數據和特征決定了機器學習的上限,而模型和算法只是逼近這個上限而已。
那特征工程到底是什么呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始數據中提取特征以供算法和模型使用。
即使我們上面經過篩選,我們發現無論是日期,類型,身份,還是標題都是字符串數據,而閱讀量量本身還需要轉化成是否是爆款。所以本文做了如下處理:
Y值(預測結果):
- 爆款文章的閱讀量設置為1,非爆款設置為0。
X值(預測變量):
- 發布日期:轉為文章發布的年份數量,比如2018年發表記為0年,2014年發表記為4年;
- 文章類型、作者身份都是幾類固定的字符串,可以將各種分類轉化為相應的特征屬性來使用;
- 標題的處理則相對復雜得多,這里借助第三方的開放接口做了如下分析處理:
- 情感分析,使用騰訊文智判斷標題是正面、負面還是中性情感,(0,0.3]=負面,(0.3,0.7]=中性,(0.7,1]=正面。
- 詞性特征,使用騰訊AI開放平臺的基礎文本分析的詞性接口,現代漢語的詞可以分為兩類14種詞性(詞類),但在網絡內容發展如此復雜的今天,相應的分類已經遠超過這些,所以特別選擇第三方服務來解決。
- 語義依存分析。語義依存分析目標是跨越句子表層句法結構的束縛,直接獲取深層的語義信息。語義依存分析不受句法結構的影響,將具有直接語義關聯的語言單元直接連接依存弧并標記上相應的語義關系。本篇使用的是哈工大LTP云API解析出特征。
經過幾天的數據調整和解析,終于將所有的特征數據化了。接下來則是準備開始訓練啦~
4. 訓練算法&測試算法
XGBoost訓練算法
XGBoost的全稱是eXtreme Gradient Boosting。作為一個非常有效的機器學習方法,Boosting Tree是數據挖掘和機器學習中最常用的算法之一。
因為它效果好,對于輸入要求不敏感,自動進行特征選擇,模型可解釋性較好。往往是從統計學家到數據科學家必備的工具之一,它同時也是kaggle比賽冠軍選手最常用的工具。
在我們前面做了大量的準備工作后,真正調用算法來訓練的代碼其實是很少的。作為產品經理,我覺得大家還是應該都懂一些技術或者會一門編程語言,很多問題在網上搜索一下相關的教程都可以自己解決,而不用在遇到問題的時候等開發來解決。這里推薦學習Python3,上手難度低,適用于任何平臺,編譯速度也足夠快等優點。
所以在文章本身這一塊兒就不詳細展開寫了,如果需要查看本次整個數據分析的代碼,點擊查看,部分內容已經添加注釋。
測試算法
訓練好的模型在使用之前需要測試,來決定接下來的步驟是修正算法還是使用算法。根據配置xgboost參數,對一篇文章進行分析時會返回兩個概率,爆款的概率P1,不會成為爆款的概率P2。
所以在驗證的時候分別做了兩種驗證:
第一種, 當P1(爆款)& P2(非爆款)的概率時,預測這篇文章為爆款。但這里會有個問題是當P(會火)=0.51,P(不火)=0.49時,是一個很模糊的結果;
第二種, 當P1(爆款) & 0.8時,預測這篇文章為爆款。
以上兩種同樣對1771條測試數據進行測試時,分別有97.91%和94.64%的正確率,對于我來說,這個結果已經足夠滿足本文的分析目的。所以就不再進一步的優化了。
本文如此之高的預測正確率也是經過多次的模型修正和數據修整之后所得,記得第一次訓練的結果正確率為5%,第二次修正后結果為1%。這個過程也不算是本文的重點就不再贅述。
5. 使用算法
如果是繼續使用算法,我們可以拿新寫的文章標題來做預測。而如果是寫文章做分析,我們則可以分析相應的特征重要性,給出的投稿建議。
返回的數據模型中,有128個有效特征,不好做可視化展示,所以當前分析只截取前20的重要特征,如下圖所示:
排名前20中,大量的特征都是跟標題直接相關的詞性特征和語義依存特征。
詞性特征好好查看,我們根據之前的的分類結果,把爆款文章的標題按詞頻統計,這樣在未來取標題的時候可以做個參考,適當的添加一些點綴,比如:需求、報告、總結、管理等。
本次分析結果中的語義依存特征相當的樸實,排名靠前的都是用來豐富標題內容,增加標題閱讀性的特征。
對比于常見的營銷號標題黨則是兩個方向,標題黨會有更豐富的主觀情感特征,比如:果然,果真,橫豎,究竟,勢必,早晚,終歸,終究,終于;有表示反常的:反,偏,倒,豈,竟,不料,倒是,反倒,反而,竟然,居然,難道等。
不難發現,前二十中,僅有r_平臺運營
和c_業界動態
與標題沒有直接關系,那是不是只有標題最重要呢?上圖只是為了大家觀看方便做的節選,從下圖就可以看到各組的特征前三:
從上圖中可以做出如下分析:
- 4年前發布的文章能夠以微弱的優勢跑過5年前發布的文章,說明也不是發布的越久越有優勢,而是文章有可能隨著時間被埋沒,另一個解釋是4年前是網站流量的頂峰導致;
- 業界動態對比其它的文章更容易爆款,這倒也不難理解,畢竟從受眾角度來說是最廣的,而且容易追熱點;
- 平臺運營對比于其它角色的用戶更容易出現爆款,除了一定的“特權”,更主要的是他們的文章是以轉載為主,轉載的內容是其它平臺上的優質內容,自然更有吸引力。但比較意外的是專欄作家的身份對于文章爆款的加成作用并不如普通用戶;
- 最后則是標題的情感平淡最好,典型的負面語氣則就是疑問、質問、消極觀點,還有不文明用語。
四、投稿建議
作為產品經理,每個同學都可以嘗試著寫篇文章投稿,這也算是你的一個個人獨立的小產品了。
- 認真考慮文章內容類型,從最高的業界動態(448)、產品經理(233)、產品運營(223),到最低的區塊鏈(24)、營銷推廣(18)、新零售(6),雖然對比其它因素影響不算大,但組內得分的差距更印證了前中篇讀者關注點的數據分析;
- 無論文章的內容如何,取一個好的標題是相當重要的事情。可以看到如果不算文章分類是內容的話,當前的這些因素就能夠占到一篇文章是否爆款的九成因素以上(94%的預測正確率);
- 文章標題必須有明確的主題和關鍵字,關鍵字最好是名詞;其次標題的內容盡量豐富,能夠體現文章內容,提高標題的閱讀性;
- 標題黨在人人網的優勢不明顯;
- 專欄作家的身份對于投稿沒有加成作用,還是靠自己。
雖然本篇最后應該沒有給出一個讓人驚喜和意外的答案,但我想怎么通過數據分析來尋找一個答案的過程應該是說清楚了。
五、全篇總結
《數據分析實戰|人人都是產品經理網站》三篇就到止為止了。簡單回顧一下:
- 上篇從網站運營的角度來分析,各種文章對網站的收益,各種作者給網站帶來的價值;
- 中篇討論了以讀者的視角來看人人網上的高價值文章和作者有哪些可以推薦,推薦的算法;
- 下篇則是以投稿人的視角來挖掘如何提升一篇文章的閱讀量。
優化
最后這里再補充幾個本篇中沒有處理好的點,避免誤人子弟。希望大家能在工作中更加嚴謹一些。
- 文章的熱度可以按時期、階段、類型進一步分組處理;
- 部分特征的選擇和數據處理會比較主觀判斷,僅憑經驗和觀察得出,而不是相應的計算;
- 標題內容可以處理得更細致,包括一些熱門詞匯專有名詞的提取;
- 有些代碼還寫得不夠規范,而且在寫作過程中也出過多次的Bug和數據使用錯誤,需要注意;
- 最后的計算模型返回來實際上有128個特征,可以把一些得分過低的特征去掉后再計算。
相關閱讀
作者:核桃殼,微信walnutshell911
本文由 @?核桃殼 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自網絡
這網站的閱讀量應該有摻水吧,只是訂閱量和打賞我可以確定是機器人。。。所
呃,打賞真有錢入帳,雖然很少。而且我也打賞過別人。閱讀量反正我拿幾臺手機點一下就是一下,只是近期確實有過數據混亂的情況存在過。
仔細觀察粉絲訂閱量,名字頭像一看就是爬蟲啊。。。。
其實這個還好啦,本文主要是在討論數據分析的思考過程。畢竟是別人的數據。當然確實像你說的這個數據真實性問題我倒是一開始沒考慮過。
本系列的相關代碼可以在http://walnut-shell.com/ipython-notebook/ 中找到