ランキングのアルゴリズムは調整できますか?


ユーザーがある検索キーワードで検索を行った際に、検索結果にコンテンツがどのような順序で表示されるかを決定付けるアルゴリズムのことを「ランキング アルゴリズム」と言い、インターネット検索においては、ある時期において、そのサービスの優劣を決定付けた非常に重要なポイントでした。

エンタープライズサーチにおいては、以下のポイントからランキング アルゴリズムの重要性は、インターネット検索のそれを上回ります。ランキングのアルゴリズムが調整できなければ、エンタープライズサーチじゃない。

  • ユーザーが期待している順序にできる限り近く表示できることで、ページを捲る作業が少なく、つまり、クリック数が少なく、ページ毎に表示されている検索結果に対する検討時間を少なくし、エンタープライズサーチの ROI を飛躍的に高めることに繋がります。
  • エンタープライズサーチでは、検索対象のコンテンツの種類や登録方法によってランニング アルゴリズムが変更できることが非常に重要なポイントです。例えば、CMS (コンテンツ管理システム) にコンテンツを登録するときのファイルの命名規則や資料の分類を示すプロパティへの情報追加の仕組みがある場合とない場合で、ユーザーが検索キーワードで検索した際のファイル名やプロパティの重要度が違います。

SharePoint 2013 では、後述する「ランク付けモデル」と呼ばれるランキング アルゴリズムの利用は勿論のこと、それ以外にも検索結果に対する検討時間を少なくするために、クエリ ルールによってユーザーが期待していると思われる検索結果を管理者や他のユーザーの行為によって差し込んだり、絞り込みによって検索結果の件数を減らす (参考) といったことが可能です。

標準で利用可能なランク付けモデル

SharePoint 2013 では、標準で、エンタープライズサーチで通常利用されるであろうランク付けモデルを以下表の通り用意しています。個々のランク付けモデルの詳細は TechNet ライブラリ (英語) を参照してください。
基本的には、このいずれかを選択することで目的は達せられるはずです。

分類

ランク付けモデル名

一般用

既定の検索モデル

 

O14 既定の検索モデル

 

Minspan を高く設定した検索モデル

 

Minspan なしの検索モデル

ひと検索用

ひとの検索アプリケーションのランク付けモデル

 

ひとの検索に適用する専門分野ランク付けモデル

 

ひとの専門分野の検索 (社会的距離に基づくランク付けモデル)

 

ひとの名前の検索に適用するランク付けモデル

 

ひとの名前の検索 (社会的距離に基づくランク付けモデル)

 

ひとの検索の社会的距離モデル

特別な目的用

カタログのランク付けモデル

 

人気のランク付けモデル

 

推薦者のランク付けモデル

 

サイト候補のランク付けモデル

主要な検索結果 Web パーツによるランク付けモデルの指定

主要な検索結果 Web パーツの [検索条件] – [クエリの変更] から [クエリの作成] ウィンドウを開き、[並べ替え] タブを選択し、[並べ替え] に「Rank」を選択することで、[ランク付けモデル] を一覧から選択することが可能です。

image

検索アプリケーション構築時のランク付けモデルの利用方法

REST API を利用した検索アプリケーション作成時には、パラメータ「rankingmodelid​」を利用して、ランク付けモデルを指定した検索を実現します。例えば、以下のような GET リクエストで実行します。

http://xxx/sites/search/_api/search/query?querytext=’*’&rankingmodelid​=’8f6fd0bc-06f9-43cf-bbab-08c377e083f4′

rankingmodelid​ パラメータの値は、次のように Windows PowerShell コマンドレットを実行すると取得可能です。

PS C:\> $ssa = Get-SPEnterpriseSearchServiceApplication
PS C:\> $owner = Get-SPEnterpriseSearchOwner -Level ssa
PS C:\> Get-SPEnterpriseSearchRankingModel -SearchApplication $ssa -Owner $owner

Name                 ID                                   IsDefault
—-                 —                                   ———
既定の検索モデル     8f6fd0bc-06f9-43cf-bbab-08c377e083f4 True
カタログのランク…  ca2a10ff-6f63-4913-a125-34b5894495f4 False

独自のランク付けモデルを作成する

各自のエンタープライズサーチの仕組みに合わせて、ランク付けモデルを作成することも可能です。

ランク付けモデルは、1 つ以上の「ランク ステージ」で構成されており、ランク ステージは、1 つ以上の「ランク機能 (rank feature)」が含まれています。
ランク ステージが複数ある場合の計算方法は MSDN  ライブラリに任せるとして、ランク ステージが 1 つだけだとするならば、ランキング アルゴリズムとは、それぞれのランク機能をどの程度の強弱で反映させるかを決定している定義を意味します

ここでは、ランク機能の要素にどのようなものがあり、これをどのように設定するかを示します。まずは、ランク機能に関してです。

ランク機能

解説

BM25 次のような計算式の情報検索で利用されるアルゴリズム。BM25 アルゴリズム内で、どの管理プロパティに対して重要度や文字列長の補正を行うかの指定が可能です。
Static 数値型の管理プロパティの数値を利用してランク付けを行うためのランク機能。
Bucketed static ファイルの種類や言語のような管理プロパティに対して、指定されている値に応じてランク付けするためのランク機能。例えば、ファイルの種類が PPT なら高いランクにしましょう、のようなイメージ。
Proximity 近傍性を示すためのランク要素。例えば、ユーザーが 2 つの検索キーワードを指定した場合に、両者が同じ管理プロパティ内に現れるか、その距離がどの程度離れているか、といった条件でランキングを決定付けるランク機能。
Dynamic ユーザーが指定した検索キーワードがどの管理プロパティに含まれているかでランキングを決定付けるランク機能です。
Freshness 最終更新日時が格納されている管理プロパティ (通常は LastModifiedTime 管理プロパティ) が過去または未来の際にどのようにランキングを決定するかを決めるランク機能です。

ランキング付けモデルの作成は、ゼロ ベースで行うのは、かなりハードです。既存のランキング付けモデルの内容を取得し、内容を編集した上で登録して利用するのがいいでしょう。また、いきなり大きくランク付けモデルを変更すると結果が良くない場合の後戻りが大きいため、少しずつ変更して確認する、と繰り返すことをお勧めします

  1. 既存のランキング付けモデルの内容を取得する。以下の Windows PowerShell コマンドレットを取得すると、「既定の検索モデル」のランク付けモデルを DefaultRankingmodel.xml ファイルとして取得します。

    $ssa = Get-SPEnterpriseSearchServiceApplication
    $owner = Get-SPenterpriseSearchOwner -Level ssa
    $rankingModel = Get-SPEnterpriseSearchRankingModel -Identity -SearchApplication $ssa -Owner $owner
    $rankingModel.RankingModelXML > DefaultRankingmodel.xml

  2. DefaultRankingmodel.xml ファイルの内容を編集し、NewRankingModel.xml ファイルとして保存します。
  3. 新しいランキング付けモデルを登録する。以下の Windows PowerShell コマンドレットを実行します。

    $myRankingModel = Get-Content .\NewRankingModel.xml
    $myRankingModel = [String]$myRankingModel
    $owner = Get-SPenterpriseSearchOwner -Level ssa
    $newrm = New-SPEnterpriseSearchRankingModel -SearchApplication $ssa -Owner $owner -RankingModelXML $myRankingModel

  4. 新しく作成したランク付けモデルが利用できるようになっているので、Web パーツや検索アプリケーションで指定してください。

Overview of search result ranking in SharePoint Server 2013
http://technet.microsoft.com/en-us/library/dn169065.aspx

Customizing ranking models to improve relevance in SharePoint 2013
http://msdn.microsoft.com/en-us/library/c166ecdd-7f93-4bbb-b543-2687992dd2bc.aspx

広告