資料分析實戰|人人都是產品經理網站(下篇):作者視角
本篇是《資料分析實戰|人人都是產品經理網站》系列的最後一個問題,將從作者關心的角度出發,通過詳細的資料比對,分析一篇文章發表後是否能夠變成爆款。
一、最後一個問題
本篇將解決《資料分析實戰|人人都是產品經理網站》系列的最後一個問題,將從作者關心的角度來分析,一篇文章發表後是否能夠變成爆款。
這是由之前的讀者變成作者後獲得的一些新體會。以前是讀者的時候只有看客心態,網路上的文章繁多,隨便看看就好。只有那些特別好的可能會轉發,可能會收藏,但看完後網頁一關就還是與我無關了。
現在作為一名業餘的內容創作者,每篇文章從構思準備到下筆完成可能要花半個月以上時間,期間會想象準備什麼樣的內容能夠得到使用者喜歡,反覆的思考和推敲總結,醞釀寫下來的文字否能將思想得到準確傳遞。
最後當稿子提交稽核的時候,將會有更多的牽掛。每天都會上客戶端看一看,今天新增了多少閱讀和收藏,是不是有讀者給我留言了,有沒有上熱門文章等等。
雖然會有一些困擾,但這種樂趣是和平時做產品、釋出產品的心情是一樣的。如何讓自己的心血能夠得到多一點點的回報將是每個作者的心願,而其中最直接和最具體的表現則是文章的 閱讀量 。
本篇為了能夠更快的得出結論,這裡再把本篇的問題和目標確定一下:
作為一名作者,投稿的文章是否會在人人都是產品經理網站(以下簡稱人人網)上成為爆款?
二、觀察和分析
1. 從閱讀量到爆款
其實作者關心的問題最初是有如下幾個選擇的:
- 如何提高文章的閱讀量?
- 投稿文章的閱讀量是多少?
- 文章是否會成為爆款?
第一種,討論 提高文章的閱讀量 。你需要將一篇文章用兩種不同的寫法、在同一個平臺、同一個時間分別投稿,也就是AB Test才能得到的結果。做產品可以這樣測試,但寫文章度不現實。而且討論起來將會是個相當複雜的過程,甚至可以開一個輔導班。
第二種,討論文章的閱讀是多少是一個迴歸問題,但對比於第三種來說意義略小,比如預測了一篇文章的閱讀量為10000,請問它在人人網上是多還是少?看過上篇的同學可以回答,10000閱讀量的文章在人人網上連文章的均值都不到。
第三種,有了以上簡單分析,根據前篇的資料分析,將閱讀量最多的10%文章定義為 爆款 即可。這也建立了從閱讀量到爆款之間的聯絡,即設定閱讀量在足夠多的情況下會成為爆款。
2. 影響閱讀量的主要因素
這裡根據我多年的網際網路經驗,在各種內容平臺上,有以下幾個因素會直接影響到一篇文章(內容)的閱讀量,當前排名不分先後:
- 文章出現的頻率(位置) 。出現的位置越多則頻率越高,舉個極端點的例子:如果大家進入到人人網站的時候,有個彈窗要求大家必須訪問某篇文章後,才能繼續瀏覽網站內容,請問這篇文章的閱讀量是否會爆增?雖然現實情況下一般不會發生,但文章出現頻率是可以受平臺控制的。無論是運營的置頂、新文章的首頁推薦、搜尋結果的返回順序等等,都會直接影響到文章的閱讀量。
- 文章的質量 。優質的文章本身並不能直接吸使用者來提高閱讀量,但質量將直接影響文章的二次傳播。比如微信中的爆款文章並不是因為大家都關注了釋出者的公眾號,而是因為爆款文章它的內容受到讀者的認可,被傳播得到處都是,讓吃瓜群眾不得不看。
- 文章對使用者的匹配程度 。僅從點選量來說,文章的介紹資訊將直接影響使用者是否點選檢視,介紹資訊包括但不限於標題,圖片,描述,文章來源等等。更進一步的說,隨著使用者數量的增加,每種型別的文章都有固定的觀看比例,比如求聘文章的標題10個人中就有8個人會點選檢視,而資料分析的文章可能10個人就只有4個,這就是匹配度的不同導致的點選量不同。
- 文章的釋出時長 。網際網路的長尾訪問特性,內容釋出得越早則次數越多,畢竟這是一個累加不可逆的過程。
3. 在人人網上的實際情況
剛剛討論的是普遍情況,這裡我們需要結合目標網站自身的實際情況做進一步分析。在人人上投稿幾次之後,綜合長時間在人人網的學習和觀察,大約一篇文章的閱讀量走勢會如下圖所示(其中色塊的劃分代表各因素在不同階段的影響力大小):
4. 心智模型的建立
現實世界非常複雜,影響一篇的文章閱讀量的因素,我們還可以有很多的猜想。但我們不是全知全能的神,對任何事物的認知總是有限的。
心智模型則是將這些認知串聯起來,以便我們在做判斷的時候可以的時候得出結論。越是經驗、學識豐富,就會離真相越近,相對的,則會顯得愚昧無知。而鬼這樣一個憑空出現的事物,則是幾千年以來,人類對未知事物感到恐懼所產生的一個集合。
本章節花大篇幅描寫的就是這樣一個心智模型的構建過程。
回到本文梳理之前的經驗與思路,可以建立一篇文章到是否能夠爆款的脈絡:
- 爆款≈閱讀量>90%文章爆款≈閱讀量>90%文章
- 閱讀量≈匹配度+頻率+內容質量+釋出時長+……
這是我目前能夠想到的有關因素。也許還不是很精準,甚至有可能錯誤,但資料分析就是一個不斷的假設、驗證、得出結論,再修正、再重複的過程。
這樣,我們的心智模型和對這個世界的認知才會越來越完善,得出結論和應對新事物時會更得心應手。
但如果大家要是覺得還有什麼關鍵影響因素的也可以在評論中留下自己的看法。
三、機器學習
機器學習是一種資料分析技術,讓計算機執行人和動物與生俱來的活動:從經驗中學習。
機器學習演算法使用計算方法直接從資料中“學習”資訊,而不依賴於預定方程模型。當可用於學習的樣本數量增加時,這些演算法可自適應提高效能。
當你遇到涉及大量資料和許多變數的複雜任務或問題,但沒有現成的處理公式或方程式時,可以考慮使用機器學習。
回到本文的討論,文章是否會成為爆款,這是一個比較典型的,分類監督學習,而最近正好也在研究XGBoost演算法,可以拿來練手。所以本章節將會按照應用機器學習的開發步驟展開:
第1步, 資料收集 。獲取對建立演算法和資料模型有關的資料;
第2步, 特徵選擇 。一般原始資料都會有大量的無關項,而篩選的標準則是有助於構建之前建立的 心智模型 ;
第3步, 特徵工程 。指的是將原始資料轉換為特徵向量,比如字串轉成數值、殘缺資料的補全等;
第4步, 訓練演算法 。選擇一部分資料,使用合適的機器學習演算法推匯出特徵之間的 權重 ;
第5步, 測試演算法 。之前沒有用於訓練的資料當做 測試資料 ,代入到推匯出來的演算法中,計算也 推導結果 ,由推導結果和實際結果進行對比,可以得到我們關係式預測的 正確率 。當正確率滿足要求可以進入到第6步,如果不滿足要求則需要進入到第7步;
第6步, 修正演算法 。一般初次結果的正確率都不會太好,可以經過各種優化,包括我們對前面心智模型的都可能會要做修改,修正後需要重新從第1步開始;
第7步, 使用演算法 。如果驗證的結果可以滿足要求,則可以對新發表的文章進行預測。
1. 資料收集
雖然我們有4萬多條原始資料,但不是所有的資料都有效的。而且為了能夠促進我們得到最後的演算法模型,也要做一些適當的取捨。這裡我做了兩個處理:
- 文章需要發表30天以上;
- 僅選擇閱讀量最高的10%和最低的10%;
文章發表30天以上,是為了保證資料選擇的 公平性 。我們的目標是將人人網上所有文章的閱讀量前10%設定為爆款,那麼對發表時間較短的文章肯定是不公平的,而且新發表的文章閱讀量會在短時間之內急劇增長。這一點我們之前也討論過了,具體的變化就如下圖所示:
不難發現文章的平均閱讀量大約在釋出20天之後的才開始趨於平穩,隨後還會有小幅度的上升。我們這裡錄入的資料都是所有的時間段的文章,所以為了公平和保險起見,只選擇文章發表30天以上的文章。
而下圖示識出了按以千為單位的閱讀量分佈,為了展示方便已將大於3萬閱讀量的做了歸併處理。可以發現從最低的幾千閱讀量到最高的幾萬閱讀量之間並沒有一條比較明顯界限。特別是從 10千
開始到 30千
這一段。
而我們將要處理的問題則是一個 分類問題 ,需要分類的結果有比較明顯的特徵,或者說要區分的物件差別越大越好。比如做影象識別時,識別照片是貓是狗的難度,就要比區分是飛機是狗的難度大很多。所以我們這裡為了減輕訓練難度,只取閱讀最高的10%和最低的10%,即保留了文章數量,也保證了兩者之間有足夠的區分度。
2. 特徵選擇
再把前文中的原始資料屬性搬出來,用於與前文分析的影響點選的認知模型關聯起來,如下表所示:
需要注意原始資料中是有圖片連結的,出於兩個理由沒有入選分析:
- 人人都是產品經理上的讀者和運營對比於其它網站,在圖片選擇上會比較理性與剋制,並沒有採用擦邊球的圖片來吸引讀者,而我也只會根據標題和內容來進行選擇閱讀;
- 圖片內容的識別成本還是比較高的,自己分析則需要前期做大量的圖片訓練,第三方服務則會有相當多的限制且貴;
所以原始資料中,可以使用的有以下幾個屬性:
- 釋出日期(date)
- 文章型別(category)
- 作者身份(authorRole)
- 標題(title)
- 閱讀量(view)
3. 特徵工程
有這麼一句話在業界廣泛流傳: 資料和特徵決定了機器學習的上限,而模型和演算法只是逼近這個上限而已。
那特徵工程到底是什麼呢?顧名思義,其本質是一項工程活動,目的是最大限度地從原始資料中提取特徵以供演算法和模型使用。
即使我們上面經過篩選,我們發現無論是日期,型別,身份,還是標題都是字串資料,而閱讀量量本身還需要轉化成是否是爆款。所以本文做了如下處理:
Y值(預測結果):
- 爆款文章的閱讀量設定為1,非爆款設定為0。
X值(預測變數):
- 釋出日期 :轉為文章釋出的年份數量,比如2018年發表記為0年,2014年發表記為4年;
- 文章型別 、 作者身份 都是幾類固定的字串,可以將各種分類轉化為相應的特徵屬性來使用;
- 標題 的處理則相對複雜得多,這裡藉助第三方的開放介面做了如下分析處理:
經過幾天的資料調整和解析,終於將所有的特徵資料化了。接下來則是準備開始訓練啦~
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
本文由 @ 核桃殼 原創釋出於人人都是產品經理。未經許可,禁止轉載
題圖來自網路