質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.55%

記事を人気順で表示するときに使うスコアを計算するアルゴリズムについて

受付中

回答 2

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 961
退会済みユーザー

退会済みユーザー

記事にスコア付けをしてそれらを人気順で表示させるアルゴリズムを考えているのですが、なかなか良い方法が思いつかないのでアドバイスをいただきたいです。
スコアの指標となるもの
・はてなブックマーク数
・Facebookのいいね数
この2つの数をもとに各記事のスコアを計算したいと思っています。

現状での問題点
・はてぶ数1とFacebookいいね数1ではそもそもの価値が異なるので、比率をきめたりして揃える必要がある。
例)
はてぶ数:Facebookいいね数 = 6:4 
みたいな。比率に関してはそこまで正確に決める必要は別にない。さじ加減で。
もし、他に別の方法で良い案があれば、教えていただきたいです。

・記事の中にははてぶ数はそんなにないのに、Facebookいいね数だけやたら高かかったりするものがあるので、それが原因でスコアの評価が高くなるのを防ぐ。
あくまでもバランス良く、かつ双方の数がともに他の記事と相対的にみて高い記事を人気ランキング上位にしたい。

以上がアルゴリズムの仕様の説明になります。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

0

思いついたコメントだけですが…

・はてぶ数1とFacebookいいね数1ではそもそもの価値が異なるので~

重み付けでなんとかするのを良く見かけます。
はてぶは2point、FBイイネは1point、のように決めて、合計値から
ランキングを決めるといった方法です。

・記事の中にははてぶ数はそんなにないのに~

はてぶpointとFBイイネpointを比較した時の偏り具合を比率にして
合計値に掛け算するような方法になるんじゃないかと思います。

「他の記事と相対的にみて」という点に関しては、ランキングという
評価方式がそもそも相対評価なので、とりあえず気にしなくてもいい
のではないかと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 11:08

    回答ありがとうございます。 はてぶpointとFBイイネpointを比較した時の偏り具合を比率にする、具体的な計算方法も教えていただけるとありがたいです。

    キャンセル

  • 2016/05/11 11:52

    んー、おそらくですが…こういう偏りに対する比率をどのようにランキングに反映させるか
    ってのは決めの問題、どうやりたいか、の問題になってきます。

    例えば「イイネに対してはてぶが少ない場合、実は大したことない(ランクDown)」
    という方針にするのであれば、以下の計算ができるかもしれません。

     比率=はてぶpoint × 1/イイネpoint

    最終的に、どういうポイント関係であれば「人気」とするかによって計算は変わるのでは無いかと思います。
    (例えば、アクセス数が1000程度でも、全員がイイネ+はてブしたら、きっとそれはスゴイ記事です。)

    キャンセル

0

こんにちは。

・はてぶ数1とFacebookいいね数1ではそもそもの価値が異なるので、比率をきめたりして揃える必要がある。

これは、異なる単位の数値を「正規化」する問題と思います。

・記事の中にははてぶ数はそんなにないのに、Facebookいいね数だけやたら高かかったりするものがあるので、それが原因でスコアの評価が高くなるのを防ぐ。 

「Facebookいいね数だけやたら高い」ことも正当な評価と解釈するのであれば、「正規化」で良いように思います。
そうではなく、何らかの不正が行われていると判定しランキング候補から外すのであれば、フィルターの問題ですね。

「正規化」については、単純に全ての記事の評価値(はてぶ数やいいね数)の総和を求めて、各記事の評価値を割ることで正規化できると思います。その正規化された評価値は0~1の範囲に収まるので、単純に加えたり、かけたりする方法である程度うまくいくかも知れません。

フィルターについては、1つの記事の「はてぶ正規化数」と「いいね正規化数」の差異が大きい時は除外することが考えれます。
しかし、odakinさんのランキングがメジャーになって不正者が対策するとイタチごっこですが...

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/11 13:11 編集

    回答ありがとうございます。
    おっしゃる通り、「Facebookいいね数だけやたら高い」ことも正当に評価したいと考えているので正規化してやってみようと思います。
    私自身数学の知識がほとんどないので、正規化というのも漠然とした理解しかできないのですが、要するに評価値を0〜1の範囲に収めることで、正規化前の評価値の大きな差を、正規化することである程度小さくすることができるという解釈で良いでしょうか。
    また、正規化後の評価値を足したりかけたりするというのが良くわからないので、もう少し具体的に教えていただけるとありがたいです。正規化後の評価値をそのままランキングのスコアにしてはいけないのでしょうか。

    キャンセル

  • 2016/05/11 13:17

    その通りです。

    ↓も参考になると思います。
    https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%8C%96#.E6.95.B0.E9.87.8F

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.55%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる