目錄 1 易建聯脫鞋事件2 傳說中的網路水軍 2.1 網路水軍是什麼? 2.2 網路水軍發現技術3 基於同貼率的網路水軍發現4 基於情感分析的網路水軍發現5 總結 1 易建聯脫鞋事件 (圖片來自網路,侵刪) 2016年11月2日,剛剛從NBA回歸的易建聯沒想到搞了個大新聞!過去4年來,李寧公司作為C ...
目錄
1 易建聯脫鞋事件
2 傳說中的網路水軍
2.1 網路水軍是什麼?
2.2 網路水軍發現技術
3 基於同貼率的網路水軍發現
4 基於情感分析的網路水軍發現
5 總結
1 易建聯脫鞋事件
(圖片來自網路,侵刪)
2016年11月2日,剛剛從NBA回歸的易建聯沒想到搞了個大新聞!過去4年來,李寧公司作為CBA聯賽贊助商總是有些尷尬:其與籃協簽訂的合約中明確要求比賽中所有球員不得穿戴競爭對手的運動鞋服(包括襪子),可是外籍球員與一些國手仍獲得了“特例”。今年是5年20億合約的最後一年,李寧“突然”要求籃協嚴格執行合約,不著贊助商裝備的球員將面臨警告甚至禁賽的處罰。11月2日,易建聯重新回到CBA的第一場比賽,由於事先的申請沒有獲得批准,作為中國籃球第一人的易建聯一登場卻讓廣大的吃瓜群眾“失望”了。他似乎是妥協了,穿著的是李寧的閃擊3代球鞋進行了熱身,並開始了比賽。可是,比賽進行到第2節,在沒有暫停的情況下,易建聯在場上脫下了球鞋,並留在了場上。之後,其穿上其代言的耐克球鞋,欲再次上場,卻沒有獲得裁判的批准。此前,同樣作為耐克代言人的新疆隊的周琦,也因同樣的情況被禁止出場。可能是迫於現場觀眾的壓力,易建聯在第3節比賽中獲得再次上場的機會,這時其已穿著自身代言的耐克球鞋。
一時間,微博、虎撲論壇炸開了鍋。目前主要有3種觀點:
- 易建聯是反抗強權的英雄!李寧與籃協狼狽為姦對球員進行了剝削。該種觀點在微博上尤其多,並有網友發起了#脫鞋聲援易建聯的話題。
- 籃協是罪魁禍首,其僵化、貪婪等導致了中國籃球職業化的進程變慢,在財務上過度依賴贊助商只是其造成的惡果之一。
- 這僅僅是商業競爭。即使球鞋再不合適,易建聯也缺乏職業素養,其被耐克利用了來搞這出戲,耐克很噁心。李寧背了個大鍋,不管怎樣,似乎都留下了產品被職業運動員“嫌棄”的印象(實際上,李寧和耐克這兩雙鞋都不同程度上被炒熱了,淘寶第二日便出現了易建聯同款)。
但是,在虎撲裝備論壇,卻還有一種聲音:李寧公司的水軍又來洗白了!註意,這裡用到了“又”字,可見這種聲音已經不是第一次在該論壇中出現了。每隔一段時間,虎撲裝備論壇中總有會起一些爭執,有部分網友認為李寧公司請了水軍在論壇中興風作浪,這些水軍或誇張地宣傳李寧的商品好,或惡意地詆毀競爭對手的產品,或者容不得其他網友說李寧的不好。有網友甚至信誓旦旦地說,水軍是肯定存在的,在某年某月他曾經見識過他們的厲害,就是固定的一群人。但是,終究沒有人給出切實的證據來證明虎撲裝備論壇存在李寧的水軍,李寧水軍成為了論壇中的一個傳說!
於是,我想了想,決定藉此機會獻個醜,利用數據挖掘技術來會會這個傳說。網路水軍發現我也是第一次做,並不是說要提出一種更優的網路水軍發現技術,而是利用現在比較成熟的工具來做這樣一個實踐工作。所以這篇文章與之前相比,會更“娛樂”一些,相應也會更不嚴謹一些。
2 傳說中的網路水軍
2.1 網路水軍是什麼?
要研究網路水軍發現,我們首先得知道什麼是網路水軍,以下是節選自百度百科和維基百科的網路水軍定義:
百度百科:
網路水軍即受雇於網路公關公司,為他人發帖回帖造勢的網路人員,以註水發帖來獲取報酬,有時候也可以指在網上通過大量水貼來製造娛樂搞笑氣氛的網友;網路水軍有專職和兼職之分;網路水軍的存在是網路營銷的進階,但是網路水軍是雙刃劍,需要各個網路公司把握好應用角度。
維基百科:
On the Internet in the People's Republic of China, an Internet Water Army or Wangluo shuijun (simplified Chinese: 網路水軍; traditional Chinese: 網路水軍; pinyin: Wǎngluò shuǐjūn; Wade–Giles: Wang-luo shui-chün) is a group of Internet ghostwriters paid to post online comments with particular content.
通過這兩個定義,我們不難網路水軍發現有這樣一些特點:
- 目的性:網路水軍的發言通常是有目的性的,或直接“攻擊”對手,或間接“分散”雇主遭受的攻擊,高級的網路水軍甚至可以“引導”輿論。採取不同的手段都是為了達成雇主給定的目標。
- 組織性:顧名思義,網路水軍必須具有一定的規模。通常來說,水軍的規模相比言論的質量,與攻擊效果更直接相關。但是,從成本上考慮,具有一定規模的網路水軍,其發言的時機和內容具有相似性。也就是說,水軍通常是在同一個時間段里(更普遍的情況是在同樣的微博、話題、論壇板塊或帖子中)進行集中攻擊,並且發言的內容由模板生成。當然,更高級的網路水軍可以“各說各話”,其隱蔽性非常高。
論壇中的網路水軍相比社交網路中的水軍,其還有一些更特別的地方。論壇中基於關註的社交關係是意義不大的,社交網路中水軍關註水軍的現象在論壇中可能並不存在。所以,怎麼建立用戶關係網路是論壇網路水軍發現工作的一個痛點。另外,論壇相對社交網路更加簡單,管理維護工作也相對容易,發佈相似內容的水軍很容易被刪貼,所以,論壇中可能存在高級水軍。
2.2 網路水軍發現技術
基於其組織性,網路水軍整體可看做網路中的社區,所以水軍發現可藉由網路社區發現技術實現。在對網路的抽象中,用戶是網路中的節點,邊被描述為用戶之間的關係,而邊的權值可描述為用戶關係的緊密程度。簡單來說,社區發現,就是在網路中對用戶進行聚類,在一個類的內部,用戶的關係是很緊密的,而在類與類之間,用戶的關係是稀疏的。所以,最直觀的社區發現演算法就是最小割演算法了。
同樣採用分裂的思想,改進的GN演算法是社區發現技術中的最經典技術,其核心思想在於利用邊介數來描述邊的重要度。邊介數是一個很好理解的概念,從網路中的任意節點最快地去往任意另一個節點,邊被走過的數量則稱為邊介數。被走過次數越多的邊對整個圖來說越重要,如果切斷這條邊,就會導致越多的點要繞遠路才能到達另一個點,甚至不能達到另一個點了。試想一下,網路中有兩個社區,社區之間只有一條邊,那麼這條邊的邊介數是相當高的,如果切斷這條邊,那麼剩下的就是我們要找出的這兩個社區了。
改進的GN演算法的原理是直觀的,而關鍵在於如何構建網路。在我們要探索的問題中,核心工作就是為虎撲裝備論壇建立用戶網路:用戶之間有怎樣的關係以及關係的強弱如何?接下來我將以虎撲裝備區9月至今的貼子作為數據,來抽取用戶關係,建立用戶網路。
3 基於同貼率的網路水軍發現
之前也說道,論壇不同於社交網路,基於關註的用戶關係意義不大。論壇,顧名思義是提供網友議論交流的網路場所,所以對同一個帖子進行過發帖回帖的網友是有關係的。所以,基於同貼率來構建用戶網路是一種看似不錯的思路。而網路水軍作為一個社區,其成員很有可能彼此之間的同貼率很高!首先定義用戶i和用戶j的同貼率如下:
其中SPC[i,j]表示用戶i和用戶j共同所屬的帖子數量,APC[i,j]表示用戶i或用戶j所屬的帖子數量。在我們的數據中,共有19648名用戶發生過發帖或回帖行為,若視同貼率大於0的用戶為有關係的用戶,則網路結構無比複雜,GN演算法不知道要算到何年何月。所以,我武斷地認為同貼率超過0.3的用戶是有關係的,這樣構成的網路僅剩了30條邊,邊的權值自然為同貼率。我們來看看GN演算法的運算結果:
我們可以看到,在網路中,紅色框中的為具有一定規模(其實規模也不大)的社區。這個社區成員經常在同樣的帖子中出現,高度可疑。放大後如下:
那這個社區到底是不是水軍呢?暫時是無法判斷的,所以對該社區中同貼率比較高的用戶進行分析如下:
用戶A和用戶B,同貼率=0.8750:
用戶A | 帖子編號 | 用戶B | ||
關鍵字 | 支持度 | 支持度 | 關鍵字 | |
09,好看,後 | 0.5 | 17541856 | 0.5 | 2009,Jam”,“Space,VS.,... |
0.5 | 17298969 | 0.5 | 狗,風 | |
好,不,Retro,哥們,完 | 0.5 | 17581318 | 0.5 | 碉堡,鞋盒,真,設計 |
...,吃,土,配色 | 0.5 | 17359112 | 0.5 | 耐克,節日,懂,不,墨西哥 |
0.5 | 17348202 | 0.5 | 最,代,1,喜歡,4 | |
兩,症,不錯,困難,雙 | 0.5 | 17411787 | 0.5 | 大街,最,爛,控,迷彩 |
yeezy,好像,真,350 | 0.5 | 17220239 | 0.5 | Explosive,Crazy,低,剁手,出 |
雙,NMD,XR1,好,adidas | 0.5 | 17320017 | 0.5 | 估計,血雨,腥風,...,一陣 |
帥,一個,配色,科蜜,氣 | 0.5 | 17456982 | 0.5 | 毒液,腳,不,還行,感 |
塑料,滿滿,感 | 0.5 | 17442233 | 0.5 | 醜,jing,adidas,圈,.... |
31,“Shattered,Backboard”,Jordan,系列 | 0.5 | 17418490 | 0.5 | |
...,買不起,帥,原價,是帥 | 0.5 | 17418554 | 0.5 | 灰色,兩,舊,個色,買 |
無,黑色,都,感,藍色 | 0.5 | 17395707 | 0.5 | 發,不,才,國內,正事 |
騷,喜歡,肯定,韋,太, | 0.5 | 17576317 | 0.5 | 買,過年,不錯,雙,穿, |
明覺,概率,厲,渠道,炒作, | 0.5 | 17251614 | 0.5 | 很,牛,帝,渠道,X, |
月,10,號,OVO,改, | 0.5 | 17372607 | 0.5 | 好好,放個,人,假,不, |
表中支持度表示對李寧公司及其產品的支持度,1為非常支持,0為非常反對,0.5為中立,該結果由情感分析生成,後文再提。由此可見,雖然這兩個用戶經常在同樣的帖子出沒,但是兩者都是李寧中立的。實際上,這兩個用戶基本就沒談論過李寧。為什麼這兩個人同貼率這麼高呢?不妨來看看這兩個用戶的頭像吧:
用戶A | 用戶B |
這位便是你女朋友也會認識的艾弗森科比了!!!所以,用戶A和用戶B都是科比的球迷,對耐克的鞋,對科比的鞋都很感興趣,所以才會經常出現在同樣的帖子中。當然還有一種可能性,一個是大號,另一個是小號。
對其他同貼率較高的用戶進行分析,大同小異,都沒有對李寧表示出明顯的傾向。所以,我們不能認為這個社區是李寧的水軍。那這群人到底是何方神聖?我們暫且認為他們是“興趣小組”吧,哈哈哈。是不是現在可以說虎撲論壇裝備區沒有李寧水軍了呢?同樣,我們暫時還不能這麼說。考慮到可能有一種高級水軍,他們只是在同一個時期(並不限定於在同一個帖子中)發表支持李寧的意見,基於同貼率的水軍發現技術就搞不定了。
4 基於情感分析的網路水軍發現
根據上面的分析,我們知道要找出“高級”水軍,關鍵在於判斷帖子中用戶發佈的內容是否是支持李寧的,這便涉及到情感分析相關技術。在此,我使用了一個開源的自然語言工具SnowNLP。首先我們要計算出用戶的每一條發帖或回帖對李寧的支持度,發帖和回帖對李寧的支持度由單句對李寧的平均支持度計算得出,而某個時期內用戶對李寧的支持度由其發帖或回帖平均支持度計算得出。
計算出支持度之後,我們便可以構建用戶網路了。用戶之間的關係定義為:用戶在同一時間段內發帖或回帖,且都較支持李寧。那麼網路中邊的權值也相應定義為用戶共同對李寧的支持度。同樣通過改進的GN演算法,可得結果如下:
上圖對社區顯示不友好,實際上有6個用戶組成了一個社區,但是在這個社區內用戶與用戶邊的權值較低,約0.14,且用戶對李寧的支持度都在0.5左右。在該網路中,仍然沒有出現總是同時發帖或回帖支持李寧的社區,即“高級”網路水軍。
這時,我們稍微有一點點底氣可以說,虎撲論壇裝備區是不存在李寧水軍的。那麼某些用戶信誓旦旦說的李寧水軍是什麼呢?有種可能是李寧雇佣的網路寫手或內部員工,獨立作戰;還有種可能是李寧的腦殘粉,就像耐克的腦殘粉一樣。要如何區別兩者呢?這涉及到更複雜的技術,以後再慢慢談吧。
5 總結
依著好奇心,斗膽聊了一回水軍發現,忐忑得很。實際上,這篇得出來的結論:虎撲論壇裝備區不存在李寧水軍,還是有不小的局限性的。首先,數據量是不夠的,才兩個月的帖子數據。其次,虎撲論壇管理員刪除或隱藏了一些帖子或回帖,這些有可能是水軍的作為。第三,本文所使用的自然語言庫的情感分析技術是基於詞庫的,訓練數據來自於網路購物,並且沒有使用語義信息,所以情感分析的結果存在一定的誤差。
好歹算一次實踐吧。自從走進數據科學,大部分時候都是刷刷比賽,看看論文,久而久之思維反而固化了。解決實際問題,特別是自己感興趣的問題,即使在一個陌生的學術分支上,從頭到位做完還是感覺挺過癮的。所以,我時常在想,數據挖掘技術不僅僅是互聯網獨享的,從發現真相的角度來說,用數據分析做新聞或許會衍生出一個新的傳媒分支出來,比如有名的知乎專欄數據冰山正在做一些與我們生活息息相關的數據分析工作。但是,目前大部分的數據分析報告並沒有使用較高級的數據挖掘技術,所以這方面的精彩是值得期待的。