プログラミング
 Computer >> コンピューター >  >> プログラミング >> プログラミング

MBR(記憶ベース推論)の構成要素とは?4つの選択ポイントを解説

MBR(Memory-Based Reasoning:記憶ベース推論)は、いくつかの重要な構成要素から成り立っています。ここでは、それぞれの要素と選択のポイントを詳しく見ていきましょう。

訓練セットの選択

訓練セットには、この目的のためにニュース検索サービスから提供された49,652件のニュース記事が使用されました。これらの記事は約3か月分のニュースから収集され、ほぼ100の多様な情報源に由来しています。

各記事は平均2,700語で構成され、8つの分類コードが割り当てられていました。訓練セットは特別に調整されたものではなかったため、コードの出現頻度には大きなばらつきがあり、実際のニュース記事全体におけるコードの頻度分布を忠実に反映していました。

距離関数の選択

次の段階は、距離関数の選択です。この手法では、「関連性フィードバック(relevance feedback)」と呼ばれる概念に基づいた距離関数が採用されました。これは、2つの文書に含まれる単語に基づいて類似度を計算するものです。

関連性フィードバックは、本来、検索結果を絞り込む手段として、与えられた文書に類似した文書を返すために設計されました。そして、この方法で得られた類似文書こそが、MBRにおける「近傍」として利用されるのです。

結合関数の選択

次に決定すべきは、結合関数です。ニュース記事に分類コードを割り当てる作業は、典型的な分類問題とは異なる特徴を持っています。多くの分類問題では単一の最良解を求めますが、ニュース記事は同じ要素からであっても複数のコードを持つことが可能です。MBRをこのような問題に柔軟に適応させられる点は、同手法の大きな強みといえます。

結合関数には、重み付き総和のアプローチが用いられました。最大距離が1に設定されていたため、重みは「1から距離を引いた値」として簡単に算出できます。これにより、距離が近い近傍には大きな重みが、距離が遠い近傍には小さな重みが割り当てられます。

近傍数の選択

実験では、最近傍の数を1から11の範囲で変化させて検証が行われました。その結果、より多くの近傍を使用した場合に最良の成果が得られることが判明しました。

ただし、このケーススタディは1つの記事に複数のカテゴリを割り当てるものであり、一般的なMBRの応用例とは異なります。通常、1つの記事に単一のカテゴリやコードのみを割り当てる問題では、より少ない近傍数でも十分に良好な結果が期待できます。

精度の評価結果

MBRによるコーディングの有効性を検証するため、ニュースサービスでは編集者による審査委員会を設け、人間の編集者またはMBRによって200件の記事に割り振られたコードをレビューしました。委員会の過半数が合意したコードは「正しい」とみなされています。

この「正しい」コードと、人間の編集者が最初に作成したコードを比較した結果は興味深いものでした。記事に最初に割り当てられたコード(人間によるもの)の88%が正解でしたが、同時に人間の編集者にも誤りが存在していたことが明らかになったのです。

  1. C言語でキューに要素を挿入する方法を徹底解説!基本概念からサンプルコードまで

    データ構造とは、データを体系的かつ効率的に整理・格納するための仕組みです。データ構造は、その構成方法によって大きく以下の2種類に分類できます。線形データ構造 − データが一直線上に順序立てて配置される構造です。例として、配列、構造体、スタック、キュー、連結リストなどが挙げられます。非線形データ構造 − データが階層的・網目的に配置される構造です。例として、木(ツリー)、グラフ、集合、テーブルなどが挙げられます。キュー(Queue)とはキューは線形データ構造の一つで、後端(リア/rear)から要素を挿入し、前端(フロント/front)から要素を削除するという特徴を持っています。キューにおけるデー

  2. C#のコメントとは?複数行・単一行コメントの書き方を解説

    コメントは、コードの内容や意図を説明するために記述する注釈です。コンパイラはコメント部分を完全に無視するため、プログラムの動作には一切影響しません。C#では、複数行にわたるコメントは「/*」で始まり、「*/」で終わります。 複数行コメント /* 以下はC#における 複数行コメントの例です */ 「/* ... */」で囲まれた範囲はすべてコンパイラによって無視されます。処理の概要や注意点など、複数行にわたる説明を残したい場合に使用します。 単一行コメント // 変数の宣言 int a = 10; 単一行コメントは「//」から行末までがコメントとして扱われます。変数の意味や処理の意図を手軽にメモ