當我們看一個開源項目時,基本都會看下他有多少star
。雖然Github Star
是一個虛榮指標,但卻有實際意義,比如:
-
很多開發者會關注
Github Star
增長趨勢,更多的star
會獲得更多關注 -
star
數量往往是技術選型的一個依據。即使你的團隊最終沒有使用一個star
很多的開源庫,但通常也不會使用一個star
很少的庫
換個思路來看也許更能體現Github Star
的價值 —— 「軟件開源」并不意味著不賺錢,這只是一種產品開發策略。star
數一定程度上反映了這種策略執行的是否成功。
而「策略執行是否成功」又會影響投資人的投資決策,以及團隊能否以更低成本(甚至白嫖)招募優秀的開發人員。
有利益驅動就會有刷量、造假行為出現。既然微博僵尸粉都能影響廣告主的投放決策,那Github Star
造假就不足為奇了。
那么,一個Github Star
值多少錢?
Star的售價
網上已經有公開渠道購買Github Star
,比如:GitHub24
或Baddhi Shop[1](在這個網站,你能花錢刷各種網站的行為數據,甚至能刷IMDb
電影評分)。
Star
的售價差異很大,比如:
-
64刀可以買到1000個三無賬號的
star
-
要買到100顆有活躍行為賬號的
star
,可能得85刀
如何識別刷Star
之所以兩者差異巨大,是因為鑒別難度不同。
對于這個zadahmed/music_recommender[2]倉庫,可以明顯看到有部分點贊者的賬號是同一天注冊的:
再深究的話,會發現這些點贊賬號還有很多共性,比如:
-
Followers < 1
-
Following < 1
-
個人公開倉庫數量 < 4
-
很多個人信息(比如郵箱、簡介)為空
這類共性讓這些假賬號很容易被識別,Github
官方會定期清理這些賬號。所以,如果你花錢刷了1000star
,可能過一個月就都消失了。
除了Github
官方以外,還有些工具可以識別假賬號,比如:
-
astronomer[3]
-
fake-star-detector[4]
想想,如果自己的項目好不容易做出點名氣,但被人扒出曾經刷star
,那就尷尬了。
識別高端造假
但對于那些高價刷的star
,這類檢測機制就不太好用了。因為這類賬號會模仿正常開發者的行為,光從行為數據上,很難將他們和正常開發者區分。
這里開源編排平臺dagster[5]提供了一個檢測思路 —— 他們使用一種被稱為unsupervised clustering
(無監督聚類)的機器學習技術。簡單來講,我們可以用一組行為特征來描述一個Github
賬號,比如:
-
提交代碼
-
給其他倉庫提
PR
-
star
某個項目 -
修改個人簡介
這樣就能將這個Github
賬號表示為高維向量空間中的一個點。那些向量空間中相近的點對應的Github
賬號,可以被歸類為同類賬號。
基于以上原理,dagster
成員新建了個倉庫,并高價刷了star
:
這么做的目的是用那些點star
的Github
賬號做聚類分析,標記出一個類。當完成聚類后,如果發現某個Github
賬號也屬于這個類,那就可以懷疑這個賬號也是假賬號。
那么,為什么假賬號能夠聚類呢?這是因為這些賬號雖然在模仿正常開發者,但他們之間也有很多類似行為,比如:
-
他們的行為可能都是同一個腳本在操作,那么在行為邏輯、行為執行的時間上比較類似
-
他們都會給同一批倉庫(服務的買主)點
star
舉個例子,有兩個Github
賬號,雖然他們之間并無交集(倉庫的編程語言不同、開發者國籍不同...),但他們都在某幾天做著同類的事(比如先瀏覽一些倉庫,再發表評論,最后給某個倉庫star
),那么他們會被劃分為同類。
如果他們的同類中有實錘的假賬號,那么他們大概率也是假賬號。
在下面的圖表中,衡量了上述刷star
的倉庫(100% star
都是刷的)中,點了star
的那些Github
賬號的行為,其中:
-
橫軸是日期跨度
-
縱軸是賬號交互的倉庫總數
-
藍色部分是所有用戶
-
紅色部分是明確的假
Github
賬號 -
黃色部分是根據聚類,被懷疑的假賬號
由于已知這個倉庫的所有star
都是刷的,所以其實黃色部分的賬號也都是假賬號,通過聚類的方式他們被很好的識別出來了(和紅色部分同類)。
而對于完全沒有刷star
的項目(這里以dagster[6]為例),點star
的用戶行為基本不會與假賬號有交集:
對于一個刷了star
,同時又有實際參與者的項目,分析結果如下圖:
總結
雖然star
數是虛榮指標,但由于他是很多決策的參考依據,這就誕生了「刷star」的需求。
比如,okcash[7]是一款開源的加密貨幣,有578star
。
但是,經過上述dagster
的方式檢測后會發現,所有為okcash
點star
的賬號中,疑似虛假刷star
的賬號占比達到97% 。相信這一結果會對這款加密貨幣的市場信心造成一定影響。
如果你也想用dagster
的方式檢測其他開源庫,可以參考這里[8]。
參考資料
[2]zadahmed/music_recommender:https://github.com/zadahmed/music_recommender/stargazers
[3]astronomer:https://github.com/Ullaakut/astronomer
[4]fake-star-detector:https://github.com/dagster-io/fake-star-detector/blob/mAIn/fake_star_detector/assets/simpler_model.py
[5]dagster:https://dagster.io/blog/fake-stars#lets-go-star-shopping
[6]dagster:https://github.com/dagster-io/dagster
[7]okcash:https://github.com/okcashpro/okcash
[8]這里:https://github.com/dagster-io/fake-star-detector/blob/main/fake_star_detector/assets/complex_model.py