TechFeedスコアとは?
TechFeedスコアとは、「技術情報の面白さ」を表す指標 を目標に開発したスコアです。
TechFeed 2023(2023年4月リリース)から、デザイン上大きく表示されるようになった以下のスコアです。
これまでもTechFeedは様々なアルゴリズムを用いて技術記事を評価してきました。
TechFeedスコアはそうしたノウハウを凝縮しつつ、アルゴリズムとともに公開する初めてのバージョンとなります。
Googleの検索アルゴリズムが年々変化していくのと同様、TechFeedスコアもまだまだ発展途上ではありますが、開発元としては多少の自信を持って世に送り出せるものができたと感じたため、今回の公開に至りました。
TechFeedスコアの用途
TechFeed 2023から、TechFeedは全体的にTechFeedスコアを使用して情報を選別するように大きく書き換えられています。
このスコアを用いている、最もわかりやすい機能が 「ホットエントリー」 です。
ホットエントリーは、インターネットでエンジニアに広く読まれている記事を厳選し、 「技術トレンドはこれさえ見ていればOK」と言う体験を提供する ものです。
これは具体的に、TechFeedスコアが100以上の記事が集められています。(100以上がホットエントリー、500以上は「殿堂入り」)
それ以外の「おすすめ欄」「新着エントリー」においても、TechFeedスコアは「面白さ」を表す指標として活用されています。
PR: Macbook Air M2が当たる!TechFeed 2023正式リリースキャンペーン開催!
と、本文中にすいません!現在キャンペーン中につき、PRです。
現在、TechFeed 2023の正式リリースを記念したキャンペーンを実施中!応募方法はツイート&フォローするだけ!
奮ってのご応募をお待ちしています。
- 期間: 2023/4/11(火) 〜 2023/4/18(火)
- 当選発表期間: 2023/4/19(水) 〜 2023/4/28(金)
- 当選者の発表はDMの送信をもって代えさせていただきます。
- 応募方法:
- TechFeedにログイン→以下の画像のバナーが表示
- 「ツイートして参加する」ボタンをクリック→ツイート(※1)
- 「@techfeedappをフォロー」ボタンから、TechFeed公式 Twitterアカウントをフォロー(※2)
※1 ツイートの文面は変更して構いませんが、「#TechFeed2023リリース」というハッシュタグと、https://techfeed.io#campaign というURLを必ず含めてください。
※2 当選結果をDMで送信しますので、必ずフォローしてください。
TechFeedスコアの設計思想
ここからは、TechFeedスコアが実際どのように作られているかを解説していきます。
前述の通りTechFeedスコアは、「技術記事の面白さ」を表すことを目標に、以下のような設計思想を掲げて開発されました。
人間が読むのを前提にすること
TechFeedスコアは、「100を超えていればホットエントリー」というわかりやすさが大きな特徴です。このわかりやすさは、 最初から「人間が読む」のを前提として設計した ことによるものです。
エンジニア向け記事は専門性が高く、タイトルを一読しただけではその価値がわかりにくいことも多いです。ましてや自分の専門外の情報に関しては、「タイトルを見てもサッパリ」ということもあります。せっかくの面白い記事を読まずにスルーしてしまうことも多々あります。
こうした問題を解決するため、TechFeedスコアは、エンジニアが「読むべきか」を探るためのヒントとして使えるようデザインしました。
信頼のおけるものであること
TechFeedスコアは、「スコアが高いほど面白い(可能性が高い)」という指標として、ユーザーの皆様に信頼されなくてはなりません。
そのために重要視したのは 「中立性」と 「オープンネス」 です。
後述するように、TechFeedスコアは、 TechFeed以外のサービスから取得した数値も加味して算出されます。
こうした中立性により、 「TechFeed村」に閉じた指標ではなく、中立に記事の価値を判断できるものを目指しています。TechFeed以外の指標も用いることで、ハックされにくくなるのも重要です。
そして、こうしてスコアの詳細をオープンにし、様々なフィードバックや批判を受けつつ進化させていくことで、スコアの信頼性を継続的に高めたいと考えています。
TechFeedスコアの算出方法(2023/3/3現在)
では、具体的な算出方法について説明します。
現バージョンでのTechFeedスコアの算出方法は、様々なソーシャルスコアとTechFeed上でのビュー数を合成することで算出しています。
この際、各スコアに重みを持たせ、「エンジニアが面白いと感じる感覚」になるべく近づけていくことが重要です。
TechFeedスコアの算出手順は以下のとおりです。
- 材料となるスコアを集める
- それらのスコアの加重平均により、単一のスコアを算出
- 人間がその数値を読みやすいよう、スケールを調整
- 記事の専門性を表す別のスコア(テクニカルスコア)を用いてフィルタリング
1. 材料となるスコアを集める
まず、TechFeedスコアの材料となるスコアを集めます。現時点で、TechFeedスコアの構成要素として使用しているスコアは「ツイート数」「Facebookのいいね!数」「Pocketブックマーク数」「はてなブックマーク数」「TechFeed上での既読数」です(※)。
TechFeed既読数以外は外部サービスから取得する必要がある数値ですので、間隔を置きながら定期的に収集します。
数値の変動がなくなったと判断すると収集を打ち切りますので、必ずしも正確な最終スコアではありません。
※将来的には、「Qiitaのいいね!数」などの「サイトローカルなスコア」や、「誰がいいね!したのか」などの「ユーザーによる重み」を利用する可能性があります。
2. 加重平均により単一のスコアを算出
1で集めたスコアを元に、TechFeedスコアは常に再計算されます。
計算においては、各スコアを加重平均した値が使用されています(カッコ内が加重平均の重み)。
スコア | 重み |
---|---|
ツイート数 | 0.1 |
Facebookのいいね!数 | 0.1 |
Pocketブックマーク数 | 4 |
はてなブックマーク数 | 4 |
TechFeed上での既読数 | 4 |
重みの値を見ておわかりの通り、TwitterやFacebookよりも、Pocketやはてなブックマーク、そしてTechFeedのほうが重みが高くなっています。これは、一般の方もよく利用するサービスより、エンジニアによる利用率が高いサービスほど重んじられることを表しています。
この重みを算出するためのデータとして、「TechFeedでの見出しクリック率(CTR)」を用いました。
(その理由は、TechFeedが最も利用者の中のエンジニア割合が高いのはほぼ間違いないことと、CTRはTechFeed内のデータとして正確に測定できるため)
具体的には、CTRのランキングと、スコアの加重平均のランキングの相関係数が最大化する(スピアマンの順位相関係数を使用)ように重みを調整しました。
3. 人間が読みやすいようスコアを調整
こうして求められた値は、以下のような値です。
このスコアをそのまま用いても、人間にとっては非常に理解しづらいため、以下の2点を念頭に置いて、スケールを調整(定数を乗じる)します。
- 「100以上がホットエントリー」というわかりやすさ
- ホットエントリー入りする記事数(多すぎず、少なすぎず)
これにより、ホットエントリー入りする記事は1日15件以内(TechFeedが収集している記事のうち上位3%)、殿堂入りする記事は1日3件以内(同0.5-0.6%)に収まるようになっています。
4. 専門性の低い記事をフィルタリング
ここまでで、スコアの算出については完了ですが、ユーザーの皆様に記事を表示する前に、TechFeedはもう一段階フィルタリングを行っています。
スコアの重み付けにより、 エンジニア寄りの嗜好を反映した数値にはなっていますが、完璧ではありません。
TwitterやFacebookでバズって数値が跳ね上がるなど、「一般的な人気はすごいが、エンジニア向け記事としては微妙」という記事もまだまだ紛れ込んできます。(例えばApple製品に関する記事などは、いつも人気が高いがエンジニア向けではない)
これらをフィルタリングするために、「記事の専門性」を表す別のスコア(テクニカルスコアと呼んでいます)を用いています。
記事の「専門性」を測る方法は一概には言えないのですが、例えばマスメディアに掲載された記事(ChatGPTなどは、マスメディアでもよく取り上げられます)は専門性が低いと判断されたり、逆にQiitaやZennに掲載された記事は専門性が高いなどの判定が行われます。
テクニカルスコアが低い記事は、TechFeedスコアが高かったとしてもTechFeed上には表示されません。
結果
こうしたアルゴリズムにより、どのような結果がもたらされるのでしょうか。
実際に同じ記事集合に対し、TechFeedスコアによるランキングと、単なるソーシャルスコアによるランキングを比較したのが以下の表です。
ソーシャルスコアを単純合計した値によるランキングは以下のようになります。
それなりに「テック寄り」な記事が集まってはいますが、「エンジニア向け」かどうかというと微妙とも思える記事が多いです。
順位 | タイトル | ソーシャルスコア | TechFeedスコア |
---|---|---|---|
1 | 世界初「ポータブル量子コンピュータ」が発売。2量子ビットで118万8,000円より | 3141 | 855 |
2 | UIから「白」が消える日 | 2279 | 2124 |
3 | すかいらーくは3000台のネコ型配膳ロボットをどうやって導入しきったのか。 | 2201 | 1470 |
4 | 2022年も新しいフリーフォントがたくさんリリースされました! 2022年、日本語の新作フリーフォントのまとめ | 2026 | 911 |
5 | サイバー犯罪に関する白浜シンポジウム | 1938 | 53 |
6 | IoT向けボードコンピュータ「SPRESENSE™」と LTE-M拡張ボードのキットをSORACOM IoTストアで提供開始 | 1854 | 50 |
7 | 「Twitterの無駄機能を全部殺せる」 ブラウザ拡張「Tweak New Twitter」が話題 フォローのツイートだけ表示など | 1664 | 1071 |
8 | 非エンジニアが難関国家資格『プロジェクトマネージャ試験』に2週間(20時間)の勉強で一発合格した方法 | 1658 | 2067 |
9 | 「Microsoft 365」サービスに障害発生 ~TeamsやOutlookなどにアクセス不可に/ | 1648 | 283 |
10 | 中学1年生が開発した「カラスからゴミを守るシステム」の成果 Python、TensorFlowLite、Raspberry Piなどを活用 | 1646 | 1371 |
特に、ソーシャルスコアに比べてTechFeedスコアが低い5, 6, 9あたりの記事は、「エンジニア向け記事」を期待している方からすると、「なくてもいい」と感じられるかもしれません。
一方、TechFeedスコアを元にしたランキングは以下のとおりです。
順位 | タイトル | ソーシャルスコア | TechFeedスコア |
---|---|---|---|
1 | UIから「白」が消える日 | 2279 | 2124 |
2 | 非エンジニアが難関国家資格『プロジェクトマネージャ試験』に2週間(20時間)の勉強で一発合格した方法 | 1658 | 2067 |
3 | 「プロジェクトマネジメントの基本が全部わかる本」は序盤から『交渉』について書いてるところが良いと思った | 1583 | 1927 |
4 | Linuxコンテナの「次」としてのWebAssembly、の解説 | 1388 | 1646 |
5 | ローカル環境を汚さずDockerコンテナのオーバーヘッドもなく、開発環境を自在に構築できる「Devbox 0.2.0」登場 | 995 | 1447 |
6 | 5年間は生き続ける考え方が凝縮された良書「AWSで実現するモダンアプリケーション入門」 | 1177 | 1432 |
7 | VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう | 1436 | 1401 |
8 | 中学1年生が開発した「カラスからゴミを守るシステム」の成果 Python、TensorFlowLite、Raspberry Piなどを活用 | 1646 | 1371 |
9 | ソフトウェアアーキテクトに必要なシステム設計知識を学んだ17冊 | 1030 | 1330 |
10 | 「一線」を越えた自宅サーバー管理者のあなたへ。よく使うルーターやサーバーを集めたダッシュボードを「Dashy」で作る【イニシャルB】 | 1283 | 1290 |
こちらは、「エンジニア向け記事」の割合が大きく向上している…というのは、多くの方に感じていただけるのではないでしょうか。ソーシャルスコアのランキングと重なっている記事は1, 2, 8のみというのも、TechFeedスコアが「エンジニア向け記事」にチューニングされていることを表していると言ってよいかと思います。
以上で、TechFeedスコアに関する説明は終わりです。
TechFeedスコアはまだまだ発展途上の機能です。ご質問やフィードバックがございましたら、Twitterの[@techfeedapp]アカウントまでお気軽にメンション頂くか、この記事にコメントをいただけると嬉しいです!
どうぞ、よろしくお願いします。
An article worth experiencing. All are researched and written by engineers Head Soccer