Discovery Premiumやってみた　〜Curations編〜

Watson DiscoveryのPremiumプランで提供されている機能を使ってみました。
今回はCurationsというβ機能（as of 2021/06/10）です。

#Curationsとは
マニュアルの記述によると
https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-train#curations
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148302/8999fb90-d668-779d-040a-792a2c8cf25b.png)

- この照会には必ずこの文書をトップに返す
- なので、確信度を表す **confidence_score**は**1.0**
- ただし、APIでしか設定できない

所感：Discoveryが元々持っている**Relevancy Training**のさらに強化版っぽい。

（補足）
Relevancy Trainingとは、照会に対して関連性のある（正解に近い）文書＆関連性がない文書を人が教えることでDiscoveryが学習し、次回同じ照会が実行された時に関連性の高い文書を上位に返すという機能。
https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-train

#やってみた
###0. 前提
DiscoveryのDocument Retrievalというタイプのプロジェクトを作り、便利上以下のRedbookのPDFをページ単位に分割して投入済み（古い記事です）。
**Building 360-Degree Information Applications**
http://www.redbooks.ibm.com/abstracts/sg248133.html?Open

###1. まずは素の状態で検索
検索窓に「Watson explorer architecture」と入力して検索します。
すると、ピンポイントで正解が含まれている文書が上から４番目に出てきました。
「Watson explorer architecture」と検索したときに、"0035_Redbook"から始まる文書を上位に出したいので、Curationsを使ってやってみます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148302/b0273775-6294-7de4-e736-12e638d8de60.png)

###2. Curationsの設定
APIで必要となる項目は以下なので正解文書の属性を確認します。
> collection_id
> document_id

正解文書の下にある <font color="Blue">View passage in document</font> というのをクリックしてJSON形式の出力結果を確認すると必要な情報が見れます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148302/3e1aa383-0f40-4a67-09fa-ba711f4d45cd.png)

APIを実行してみます。

```
curl -X POST -u “apikey:LnjJ***qq” -d @curation.json -H “Content-Type: application/json”   "https://api.jp-tok.discovery.watson.cloud.ibm.com/instances/ad9***49/v2/projects/286***c3d/curations?version=2019-11-29"
```

出力結果はこんな感じ。

```
{
  "curation_id":"8488e9c70872bf9e6c156a985bfd4db89118492f",
  "natural_language_query":"watson explorer architecture",
  "curated_results":[{
      "collection_id":"5803a2fc-7eed-2807-0000-0179122cc245",
      "document_id":"557f1316-2803-465a-b5ac-4b4fd2fb02ca"}]
}	
```

API実行時に指定した **curation.json** の中身は以下です。

```
$ cat curation.json	
	{
	 "natural_language_query" : "watson explorer architecture",
	 "curated_results" : [
	  {
	   "document_id" : "557f1316-2803-465a-b5ac-4b4fd2fb02ca",
	   "collection_id" : "5803a2fc-7eed-2807-0000-0179122cc245"
	  }
	 ]
	}
```
> natural_language_query：照会文
> document_id：正解の文書ID
> collection_id：正解文書が投入されているコレクションID

###3. 結果確認
先ほどと同じように検索窓に「Watson explorer architecture」と入力して検索します。
なぜか、前回出ていたテキストが出てこなくなってしまいましたが、正解がトップに来るようになりました！
<font color="gray">テキストが出てこないのはβ機能だから仕方ないかな。。。</font>
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/148302/14e11ed2-f0cb-502c-e46c-d78345210686.png)

##感想
*あくまで個人の感想です。*
Relevancy Trainingはそもそも照会に対してヒットした文章に対して評価することしかできませんが\*、Curationsはとにかく「この照会に対してはこの回答」と固定することができるので活用できる場面はありそうです。

\* 照会に対してヒットするということは照会のキーワードが文章に含まれていることが前提となります。また、Relevancy Trainingできる文章は上[位100位以内](https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-relevancy-tips#interpret-confidence)に入る文章です。

|| Relevancy Training|Curations|
|:-:|:-:|:-:|
|ロジック| 機械学習  | ルール  |
|検索結果| 関連する文書群が上位に来る<br>（ただし、学習次第）  | 必ずトップに来る  |
|照会文：関連文書| 1:N<br>1つの照会文に対して関連文書が複数  | 1:1<br>1つの照会文に対して関連文書は1つ |
|利用形態| 正式な機能のため、本番業務で利用可能  | β機能のため本番では使うべできではない  |

##お断り
このサイトの掲載内容は私自身の見解であり、必ずしも所属会社の立場、戦略、意見を代表するものではありません。 記事は執筆時点の情報を元に書いているため、必ずしも最新情報であるとはかぎりません。 記事の内容の正確性には責任を負いません。自己責任で実行してください。