DUICUO

GitHub スターの価値はいくらですか?

みなさんこんにちは。Casonです。

オープンソースプロジェクトを見るとき、私たちはほぼ必ずと言っていいほど、そのプロジェクトにいくつのスターがあるのか​​を確認します。GitHubのスターは虚栄心の指標となることもありますが、実際には以下のような実用的な意味合いも持っています。

  • 多くの開発者は GitHub スターの増加傾向に注目しており、スターの数が増えるほど注目度が高まります。
  • 星の数は、テクノロジーの選択基準となることがよくあります。たとえチームが最終的に星の数が多いライブラリを使用しなかったとしても、星の数が少ないライブラリも通常は使用しません。

別の視点から見ると、GitHub Starsの価値がより明確になるかもしれません。「オープンソースソフトウェア」だからといって、利益が出ないわけではありません。単に製品開発戦略の一つに過ぎません。星の数は、ある程度、この戦略の成功を反映しています。

戦略がうまく実行されるかどうかは、投資家の投資決定や、チームが優秀な開発者をより低コスト(あるいは無料で)で採用できるかどうかに影響します。

利益を追求するのであれば、指標の誇張や不正行為が横行する。Weiboの偽フォロワーでさえ広告主の支出決定に影響を与える可能性があるため、GitHubの偽スターの存在も当然考えられる。

では、GitHub スターの価値はどれくらいでしょうか?

スターの価格

GitHub24やBaddhi Shop[1]など、Github Starsを購入するための公開オンラインチャネルはすでに存在します(このウェブサイトでは、お金を使ってさまざまなウェブサイトの行動データを強化し、IMDbの映画評価を強化することもできます)。

Star 製品の価格は大きく異なります。例:

  • 64 ドルで、履歴も公式登録も公式承認もない 1000 個の Star アカウントを購入できます。
  • アクティブなアクティビティのあるアカウントから 100 個のスターを購入する場合、85 ドルかかる可能性があります。

スターを高める活動を特定する方法

両者の間に大きな違いが生じる理由は、識別の難しさの違いにあります。

このzadahmed/music_recommender [2]リポジトリでは、投稿に「いいね!」した人のアカウントの一部が同じ日に登録されていたことが明らかです。

詳しく調べてみると、投稿に「いいね!」したアカウントには、次のような多くの共通点があることがわかります。

  • フォロワー数 < 1。
  • 以下 < 1.
  • 個人公共倉庫の数が4未満です。
  • 多くの個人情報(電子メール アドレスやプロフィールなど)が空白です。

これらの共通点により、偽アカウントは簡単に識別でき、GitHubは定期的に削除しています。そのため、1000個のスターを獲得するために料金を支払った場合、1ヶ月以内にすべて消えてしまう可能性があります。

公式の GitHub ツール以外にも、偽のアカウントを識別できる次のようなツールがあります。

  • 天文学者[3]
  • 偽の星探知機[4]

プロジェクトがようやく認知度を高めたと思ったら、過去に投票操作を行っていたことが暴露されたら、どれほど恥ずかしい思いをするか想像してみてください。

高級偽造品の見分け方

しかし、これらの検出メカニズムは、スターの数を人為的に増やしたアカウントに対しては効果が低くなります。これは、これらのアカウントが正当な開発者の行動を模倣しているため、行動データのみに基づいて通常の開発者と区別することが困難になるためです。

ここで、オープンソースのオーケストレーションプラットフォームであるdagster[5]は、教師なしクラスタリングと呼ばれる機械学習技術を用いた検出アプローチを提供しています。簡単に言えば、一連の行動特徴を用いてGitHubアカウントを記述することができます。例えば、

  • コードを送信してください。
  • 他の倉庫に PR を送信します。
  • プロジェクトにスターを付けます。
  • 個人プロフィールを編集します。

これにより、GitHubアカウントを高次元ベクトル空間内の点として表現できるようになります。ベクトル空間内の類似点に対応するGitHubアカウントは、類似アカウントとして分類できます。

上記の原則に基づいて、dagster のメンバーは新しいリポジトリを作成し、高額を費やしてスターを生成しました。

この目的は、投稿にスタ​​ーを付けたGitHubアカウントに対してクラスタ分析を行い、クラスターを特定することです。クラスタリングが完了した後、特定のGitHubアカウントがこのクラスターに属していることが判明した場合、そのアカウントも偽アカウントである疑いがあります。

では、なぜ偽アカウントが密集するのでしょうか?これは、これらのアカウントが正規の開発者を模倣している一方で、以下のような多くの類似した行動を共有しているためです。

  • それらのアクションはすべて同じスクリプトによって実行される可能性があるため、動作ロジックと実行時間の点で類似しています。
  • 彼らは皆、同じ倉庫群(サービスの購入者)に星を付けます。

たとえば、2 つの GitHub アカウントに相互作用がない場合 (リポジトリで異なるプログラミング言語が使用されている、開発者の国が異なるなど) でも、特定の日に両方が同じこと (リポジトリの閲覧、コメントの投稿、最後にリポジトリへのスター付けなど) を実行すると、同じ種類のアカウントとして分類されます。

仲間内に偽アカウントが確認された場合は、そのアカウントも偽アカウントである可能性が高いです。

以下のグラフは、前述のリポジトリで「スター」をクリックした GitHub アカウントの行動を測定しています (スターの 100% は操作によって生成されました)。

  • 横軸は日付の範囲を表します。
  • 縦軸は、アカウントがやり取りした倉庫の合計数を表します。
  • 青いセクションはすべてのユーザーを表します。
  • 赤い部分は明らかに偽の GitHub アカウントです。
  • 黄色のセクションは、クラスタリングに基づいて偽のアカウントの疑いがあることを表します。

このリポジトリ内のスターはすべて偽物であることがわかっているため、黄色のセクションにあるアカウントも偽物です。これらはクラスタリングによって明確に識別されました(赤色のセクションにあるアカウントと同一です)。

星を増やす活動がないプロジェクト(dagster[6]を例に挙げると)では、星をクリックするというユーザーの行動は、基本的に偽アカウントと交差することはありません。

星評価が生成され、実際の参加者もいるプロジェクトの場合、分析結果は次の図に示されます。

要約

星の数は虚栄心の指標ではあるものの、多くの決定の参考となるため、「星のブースト」の需要が生まれています。

例えば、okcash[7]は578個のスターを持つオープンソースの暗号通貨です。

しかし、前述のDagster法を用いたテストの結果、OKCashのスターを生成したアカウントのうち、97%が不正なスター生成の疑いがあることが判明しました。この結果は、この暗号通貨に対する市場の信頼に一定の影響を与えると予想されます。

dagsterを使って他のオープンソースライブラリも検出したい場合は、こちら[8]を参照してください。

参考文献

[1]Baddhiショップ:https://baddhi.shop/shop/。

[2]zadahmed/music_recommender: https://github.com/zadahmed/music_recommender/stargazers.

[3] 天文学者: https://github.com/Ullaakut/astronomer.

[4]偽の星検出装置: 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.