ORES

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page ORES and the translation is 76% complete.
Outdated translations are marked like this.
Other languages:
English • ‎Esperanto • ‎Nederlands • ‎español • ‎français • ‎galego • ‎português do Brasil • ‎русский • ‎中文 • ‎日本語 • ‎한국어

ORES (/ɔɹz/)[1]評価プラットフォームチーム (Scoring Platform team) がウィキメディアのプロジェクト群の管理用に機械学習サービスの一環として提供する、ウェブサービスとAPIのことです。このシステムは重要なウィキ作業の自動化の補助を目指して設計され – 対象は不正行為の発見や除去などです。現状ではORESが生成する評価点は大まかに2種類あり、それぞれ「編集の質」と「記事の質」を示します。

ORESは裏方のサービスであり、評価点を直接利用する方法は提供しません。この評価点を利用するには、ORES評価点を用いるツールの一覧をご確認ください。また、ご利用のウィキがORESに対応していない場合は対応のご要望に関する指示をご覧ください。

ORESについてのご質問への回答をお探しですか?ORES よくある質問(英語)をご確認ください。

編集の質

ORESにおける編集の質の作業の流れの概念図。「インターネット」(図の左)からウィぺディア(同右)への編集の流れで、編集の質にラベルが付く。ORES処理前の灰色「不明」から、ORES導入後は緑の「よい」、黄色の「査読が必要」と赤の「有害」(good, needs review, damaging)に分かれる。

ウィキメディアがオープンなプロジェクトである以上、もっとも深刻な問題は有害かもしれない投稿(「編集」)の査読です。善良な投稿者(害を及ぼしたのは偶然)を特定してサポートを提供する必要もあります。これらのモデルには「特別:最近の更新」のフィードの絞り込み作業を楽にする目的があります。編集の質の予測モデルで提供するサポートには、「基本」と「高度」の2つのレベルが用意されています。

基本的なサポート

前提として、有害度が高い編集は差し戻しの対象であり、害がそれほど深刻でない編集はreverted対象ではないとすると、ウィキにおける編集履歴(および巻き戻しされた編集)の記録を利用できます。このモデルはセットアップは簡単でありながら、編集の巻き戻しの原因の多くが有害性や荒らし以外の要素である点に振り回されがちです。その点を補うため、有害な言葉に基づく見本を作成しています。

  • reverted – 特定の編集が差し戻されるかどうか予測。

高度なサポート

善悪を推定するよりも、編集者にORESを訓練してもらい、実際の編集内容に即して有害か(damaging)それとも善意によって保存されたか(goodfaith)示してもらうことにします。これはコミュニティのボランティアの皆さんに追加作業をお願いすることにより、編集の質に関して、より正確で微妙な予測が可能になります。ツールの多くは、対象となるウィキにおいて高度なサポートが利用できる場合にしか機能しないのです。

  • damaging – 編集が有害かどうか
  • goodfaith – 善意で保存されたかどうか


記事の質

英語版ウィキペディアの評価。英語版ウィキペディアを WP 1.0 ボットで評価した結果 (2014年12月時点) の一覧 (画面キャプチャ)。

ウィキペディアの記事の質はウィキペディア執筆者の中核的な関心事です。新しいページは査読をして管理し、スパムや荒らし、攻撃的な記事がウィキに載らないようにする必要があります。最初のキュレーションに合格した記事は、その後、定期的に一部のウィキペディアンによる質の評価を受け続けることになるものの、作業そのものに労力がかかるし、その後の編集によって評価はすぐに現状に合わなくなってしまいます。

キュレーションのサポート

問題のある草稿の削除は早いほどよいのです。ページとして公開されると、調整(キュレーション)に多くの作業を伴います。荒らしに対抗する編集者同様、キュレーターもコンピュータによる予測に助けられ、新しいページのうち最も問題の多いものに集中できます。ページを削除した管理者が残したコメントに基づいて(logging テーブル参照)、どのページを即時削除すべきかを予測するモデルを訓練できます。英語版ウィキペディアにおける即時削除の方針はen:WP:CSDを参照してください。英語版のモデルではG3「荒らし」およびG10「攻撃」G11「スパム」を採用しました。(訳注:日本語版の方針とやや異なります。)

  • draftquality – 即時削除の対象かどうか(スパム、荒らしや攻撃か、問題がないか)

評価指標のサポート

最初のキュレーションを通過した記事について、規模の大きなウィキペディアでは定期的な内容の評価に大まかに英語版ウィキペディア 1.0評価指標(「articlequality」)と対応する指標を用いています。評価の実施は進捗状況の目安となるほか、逃した機会(人気はあるが質の低い記事)を判別する役に立つことから重視されます。ところが評価を常に現状に即した状態に保つのは難しく、どうしてもムラが出てしまいます。articlequalityの機械学習モデルは、ここでこそ有効です。モデルを訓練して人間の手作業による記事の品質評価を複製させることにより、コンピュータによるすべての記事やその改訂版の自動評価が実現します。このモデルには、すでにウィキプロジェクト群の再評価作業を支援した実績があり、記事の品質改善を導く編集のダイナミズムの特定に使用されています。

このarticlequalityモデルでは、記事の構造的な特徴に基づいて予測しています。たとえば検討するポイントは、節の数、情報ボックス(infobox)の有無、出典の件数や出典テンプレート{{cite}}の利用などです。articlequalityモデルでは、文章としての質や語調の問題は判別できません(強引な展開等)。しかしながら記事の構造的な特徴に注目すると、良質な文章や語調と強い相関関係がみられるものが多く、このモデルは実地にたいへん有効です。

  • articlequality – 記事もしくは草稿の評価クラスを予測(ウィキペディア1.0に類似)

サポートの一覧表

下記の一覧表にウィキごとにモデルの有無ならびにORES サポートの進捗状況をまとめてあります。もしご利用のウィキが未掲載の場合、あるいはモデルのサポートが見当たらない場合はサポートを申請してください。

API の使用

ORESにはページの更新に対して動的に評価情報を収集するAPIサービスRESTがあります。APIの使用法の詳細はhttps://ores.wikimedia.orgで説明します。

多数の更新がある記事に対してこのサービスでクエリを実行しようとする場合には、更新50件ごとに区切って処理することを推奨します。その方法は以下に解説してあり、また、並行処理は4件以下であれば受け付けます。さらに大量のクエリを実行するには、ORESをローカルで走らせてください。

クエリの例: http://ores.wmflabs.org/v3/scores/enwiki/?models=draftquality|wp10&revids=34854345|485104318

Result 
{
  "enwiki": {
    "models": {
      "draftquality": {
        "version": "0.0.1"
      },
      "wp10": {
        "version": "0.5.0"
      }
    },
    "scores": {
      "34854345": {
        "draftquality": {
          "score": {
            "prediction": "OK",
            "probability": {
              "OK": 0.7013632376824356,
              "attack": 0.0033607229172158775,
              "spam": 0.2176404529599271,
              "vandalism": 0.07763558644042126
            }
          }
        },
        "wp10": {
          "score": {
            "prediction": "FA",
            "probability": {
              "B": 0.22222314275400137,
              "C": 0.028102719464462304,
              "FA": 0.7214649122864883,
              "GA": 0.008833476344463836,
              "Start": 0.017699431000825352,
              "Stub": 0.0016763181497590444
            }
          }
        }
      },
      "485104318": {
        "draftquality": {
          "score": {
            "prediction": "OK",
            "probability": {
              "OK": 0.9870402772858909,
              "attack": 0.0006854267347843173,
              "spam": 0.010405615745053554,
              "vandalism": 0.0018686802342713132
            }
          }
        },
        "wp10": {
          "score": {
            "prediction": "Stub",
            "probability": {
              "B": 0.02035853144725939,
              "C": 0.021257471714087376,
              "FA": 0.0018133076388221472,
              "GA": 0.003447287158958823,
              "Start": 0.1470443252839051,
              "Stub": 0.8060790767569672
            }
          }
        }
      }
    }
  }
}


クエリの例: https://ores.wikimedia.org/v3/scores/wikidatawiki/421063984/damaging

Result 
{
  "wikidatawiki": {
    "models": {
      "damaging": {
        "version": "0.3.0"
      }
    },
    "scores": {
      "421063984": {
        "damaging": {
          "score": {
            "prediction": false,
            "probability": {
              "false": 0.9947809563336424,
              "true": 0.005219043666357669
            }
          }
        }
      }
    }
  }
}


Local usage

To run ORES locally you can install ORES by:

pip install ores # needs to be python3, incompatible with python2

Then you should be able to run it through :

echo -e '{"rev_id": 456789}\n{"rev_id": 3242342}' | ores score_revisions https://ores.wikimedia.org enwiki damaging

You should see output of

Result 
017-11-22 16:23:53,000 INFO:ores.utilities.score_revisions -- Reading input from <stdin>
2017-11-22 16:23:53,000 INFO:ores.utilities.score_revisions -- Writing output to from <stdout>
{"score": {"damaging": {"score": {"prediction": false, "probability": {"false": 0.9889349126544834, "true": 0.011065087345516589}}}}, "rev_id": 456789}
{"score": {"damaging": {"score": {"prediction": false, "probability": {"false": 0.9830812038318183, "true": 0.016918796168181708}}}}, "rev_id": 3242342}


Footnotes

  1. 本来の長い名称Objective Revision Evaluation Service の代わりに略語を使うことになりました。