如何评价一个开源项目——价值流网络
本文由X-lab開放實驗室博士生趙生宇原創出品
該篇博客繼續之前關于活躍度和協作影響力的介紹繼續展開,希望可以在解決協作影響力無法容納更多數據,從而可以更全面衡量開源生態的同時,也引入一種高可擴展的數學模型,可以在任意時間快速容納更多元的數據,而不會導致模型的大幅改動。也希望可以有更多對社區度量感興趣的朋友參與到討論之中,本人的聯系方式見關于頁。
(http://blog.frankzhao.cn/about)
(該圖為可探索的完整開源星系)
01
背景
之前的兩篇博客介紹了一種基于開發者行為加權統計的活躍度指標計算方法,以及基于活躍度的開源協作網絡下的項目協作影響力指標計算方法。其中活躍度主要解決指標多元導致的認識困難,同時通過不同的行為權重使這個指標對開發者的行為可以起到正向的激勵作用。而協作活躍度則是從整個開源技術生態的角度出發,在考慮項目間的協作關聯的同時,某種程度上解決了活躍度可能出現的惡意刷分的問題和人為給定權重導致的排序不穩定的問題。
然而僅僅是上述兩個指標,除了存在一些固有度量準確度的問題外,還存在著一個重要的缺陷,那就是在引入新的生態數據后模型需要再次修正,而開源軟件生態的數據要遠遠超出 GitHub 全域行為數據的范疇,所以我們更加需要一個高度可擴展的數學模型,可以在有更多的開放數據時隨時融入進來。
02
價值流網絡
就像 Nadia Eghbal 的新書「Working in Public」中表述的:“消費代碼的目的不是為了簡單地閱讀和研究它,而是為了使用它,開放源代碼的價值不是來自于它的靜態品質。”、“是,基于依賴關系來衡量代碼的價值,只能給我們提供等式的一部分。誰在使用開放源代碼很重要,但誰開發了這些代碼不也很重要嗎?”。這兩句話很好的表明的我們對開源軟件度量應該遵循的最基本的底層邏輯。
即開源軟件或開源數字制品是否有價值最重要的兩個需要衡量的點分別在生產側和消費側。從生產側而言,即便兩個開發者具有相同的活躍度,但優秀的開發者的行為所產生的價值與剛入門的開發者所產生的價值是完全不同的。而從消費側而言,如果一個開源軟件在持續開發、但從未被人使用過,和一個可能已經長期不活躍、但卻被成百上千的人所使用的的項目的價值也是不同的。
所以價值流網絡本質上是希望從開源軟件產生的社會價值的角度來進行分析,產生一個從生產端到消費端的模型,可以直接衡量出每個軟件的社會價值,同時也可以反向推演出每個開發者的價值。這對于構建完整的開源經濟生態體系是基礎性的工作。03
從協作影響力開始說起
回頭先來看一下上一篇的協作影響力模型。
其實在原始的網頁排名算法中,是從一個概率模型出發的,即當一個互聯網用戶瀏覽到某一網頁時,接下來他可能去哪些網頁?有較大概率他會在當前頁面的外鏈中隨機尋找一個鏈接繼續訪問一下,也有可能就關掉網頁以后在所有的網頁中隨機打開一個。最終網頁的排名就是可能被訪問到概率較大的網頁排在靠前的位置。
但同時這個模型也可以從價值流的角度來看,也就是每個網頁會向其外鏈的網頁傳遞一部分自己的價值,而從鏈入它的網頁獲取一部分價值,同時所有網頁還都具有一個基礎價值。那么當在整個網絡結構的價值流穩定后,每個網頁的價值也就被完全確定一下來,那么價值最大的網頁就會排名靠前一些。
而從上一篇的開源協作網絡中,也可以認為是每個項目都有一個基礎價值,同時根據開發者協作導致的項目之間的關聯會帶來項目之間的價值流動和傳遞,直到整個網絡穩定時,所有項目的協作影響力也就是被確定了下來。
04
一個簡單的示例
從上面的角度來看,事實上我們是可以給出一種更加泛化的方法來進行價值網絡的構造和計算的。下面給出一個最簡單的例子,在考慮到開發者貢獻活躍度的同時加入更多的數據關系,尤其是在生產側和消費側的數據。
如上圖所示,在這個簡單的價值網絡中,包含了開發者和項目兩種節點,開發者和項目具有各自的價值,且開發者之間具有關注關系,類似 GitHub 上的 Follow 關系。而項目之間具有依賴關系,即上下游的使用關系。同時除了開發者對項目的活躍度以外,我們還加入了關注度的概念,也就是那些由開發者對項目發起的單向的行為,例如 star、watch、fork、clone 等表示了對項目的關注,但沒有實際反饋到項目中的行為。這個網絡中的價值流動可以在下表中展示,每個單元格中的表示從行節點到列節點的價值傳遞:
| 項目 | 開發者 | |
| 項目 | 依賴 | 活躍度、關注度 |
| 開發者 | 活躍度 | 關注 |
在這樣一個模型下,對全域開源項目和開發者的價值流網絡中,每個開發者的價值會通過其活躍度、項目關注度和對其他開發者關注關系向外流動;而每個項目的價值會通過活躍度和依賴關系向外流動。即我個人所創造的價值大部分會通過我的具體貢獻行為流動到我貢獻的項目中,另外有一部分會流動到我關注但沒有貢獻的項目中,還有一部分會流動到我關注那些開發者身上。而項目的價值一部分會通過貢獻關系回歸到開發者那里,還有一部分會通過依賴關系流動到給它提供服務的上游項目中。
而由于項目和開發者還會保留自己的一部分價值,那么我們可以將一些不在網絡中的固有屬性加入到他們的初始價值中,例如開源 KOL 的初始價值更高,那么這部分初始價值事實上會因為具有一定比例的保留持有而持續產生影響。
這個模型是否可以最終收斂并得到穩定解,是一個比較復雜的數學問題,有興趣的同學可以參考附錄部分的內容。
05
開源生態價值流網絡
上面是一個可以快速實現并驗證的數學模型,并且具有很好的可擴展性,但事實上整個開源生態的價值網絡要遠比上面的網絡更加復雜。從生產側到消費側所包含的數據是遠遠超過這個范疇的,事實上尤其在消費端,被其他項目依賴并不是開源項目最終被消費的方式。事實上所有軟件最終被消費的方式都是通過變成服務而滿足某種現實用戶的需求,事實上應該是指其最終的社會效用,而不是是否被集成做二次開發。如果二次開發后的項目同樣沒有被任何用戶使用,沒有解決任何現實需求,或換句話說沒有產生任何社會效用的話,那其價值就是有限的。
這里可以給出一個更加復雜,但在當下可能還不具備可行性的價值網絡供大家參考:
在上圖表示的復雜網絡結構中,其價值流動可以從下表中觀察:
| 項目 | 軟件 | 開發者 | 公司 | 基金會 | 投資機構 | 用戶 | |
| 項目 | 依賴、使用 | 使用 | 活躍度、關注度 | 擁有 | 擁有 | 投資 | - |
| 軟件 | 使用 | - | - | - | - | - | 使用 |
| 開發者 | 活躍度 | -? | 關注 | 雇傭 | 成員 | - | - |
| 公司 | 擁有 | - | 雇傭 | 子公司 | 贊助 | 投資 | - |
| 基金會 | 擁有 | - | 成員 | 贊助 | - | - | - |
| 投資機構 | 投資 | - | - | 投資 | - | - | - |
| 用戶 | 活躍度 | - | 關注 | 雇傭 | 成員 | - | - |
而上述提到的項目之間除了依賴關系,還有軟件和項目之間使用關系。事實上傳統的項目依賴關系主要是指二次開發,通常以特定語言制品包的方式引入。而軟件的使用則是指在最終像用戶提供服務時,一定不是單獨項目提供服務,還包括該軟件運行的底層操作系統、數據庫、虛擬機、其開發語言、通過 RPC 交互的其他服務等,都屬于軟件使用范疇。
在這個網絡模型下,如果我們可以很好的量化每一部分的具體價值和流動機制,最終不僅可以很好的評估所有實體的價值,而且在數據不斷完善的情況下,這個價值會逐漸趨近于其所對應的真實社會效用。這才是最終的目標所在。而事實上這種方法也經常用于復雜系統的求解,且其解通常就是該復雜系統的穩態解,揭示了該復雜系統應該具有的運行模型。
當然這也不是一個最終的模型,例如對于安全風險的引入,那些長期從事網絡安全漏洞監控與分析的開發者或公司同樣為開源生態帶來了巨大的價值。但外延繼續延伸會導致這個網絡迅速膨脹,所以這里就不再擴展了。
06
思考
價值流網絡模型事實上是希望盡可能把開源生態中所包含的數據都囊括其中,更重要的是提供一種上層的模型可以兼容更多的數據。
價值流網絡模型通過對數學模型和業務模型的解耦,使得上層的開源生態描述幾乎可以在不關心底層數學模型的情況下進行,例如上述較復雜的網絡結構,并沒有涉及到任何數學模型。
價值流網絡模型是否可以得到穩態解,與其底層的數學約束息息相關,感興趣的同學可以參考附錄部分。但業務模型確定后可以由具有底層知識的同學協作調整使其可收斂即可。
價值流網絡模型最終希望解決的是整個開源生態的經濟體系構建的問題,關于這個問題,將在下一篇文章中展開。
07
問題
該模型雖然解耦的數學模型和業務模型,而且具有較好的可擴展性,但如果設計業務模型的人不熟悉底層的數學邏輯,很可能會設計出無法得出穩定解的業務模型,所以對業務模型設計人員有較高的要求。
該模型想要準確的衡量整個開源數字生態的經濟體系,需要大量的數據,而其中大部分數據是難以獲取和難以關聯的,這部分將是一個非常長期,而且是需要大規模協同的工作,也將是我們后續會引出的一部分工作。
08
附錄
PageRank 的收斂性一般是在其等價的馬爾科夫過程視角下,利用隨機過程的理論進行證明。其對應的轉移矩陣需要滿足兩個條件:
滿足隨機過程的要求,即轉移矩陣為一個隨機矩陣。
轉移矩陣需為素矩陣或本原矩陣(primitive matrix),此時該矩陣可以滿足不可約(irreducible)和非周期(aperiodic),則根據 Perron-Frobenius 定理,該隨機過程一定收斂。
那么在高維的異質信息網絡中,類似的隨機過程也需要滿足上述兩個條件,即可滿足其收斂性要求。更詳細的信息請自行查閱相關內容。
對于后續其他指標的介紹,請繼續關注該系列文章。如需轉載請與原文作者聯系。
X-lab開放實驗室
??????????技術傳播文明
??????????踐行同步世界
??????????開源點亮未來
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的如何评价一个开源项目——价值流网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 让 AI 为你写代码 - 体验 Gith
- 下一篇: 微软 Ignite 大会 PowerBI