Watson Discoveryの概要まとめてみた

## はじめに
言語翻訳サービスをはじめ、スマートスピーカーやAIアシスタント、チャットボットなど、今や「自然言語処理」を用いた製品・サービスが広く普及する時代となりました。それはビジネス界のみに留まらず、音声操作のできる家電が販売されているように、各家庭の生活にも及んでいます。

ここでの「自然言語処理」とは、日本語や英語のように人間が話す言葉「自然言語」をコンピュータで処理する技術の総称です。（[参考[1]](https://qiita.com/riina_hoiz/items/24674c216b0fe92577d4#%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AA%E3%81%A9)）
「自然言語」の対比として、コンピュータで用いられる「コンピュータ言語」がありますが、本記事では解説を割愛します。

機械の音声操作が可能になると、エアコンのリモコンを取るために手元の作業を中断したり、細かな移動を繰り返したりする必要がなくなり、簡単に言ってしまえば「便利」になっているわけです。

### テキストデータ活用の現状
自然言語処理サービスが普及していく一方で、企業ではテキストデータをまだまだ活用しきれていない現状があります。

総務省が公表している2020年3月発行の調査報告書（[参考[2]](https://qiita.com/riina_hoiz/items/24674c216b0fe92577d4#%E5%8F%82%E8%80%83%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AA%E3%81%A9)）によると、電子メールの活用率は30%ほど、音声データ・テキストの活用率は20%弱に留まっています。低活用率の背景として推測できるのは、「テキストデータをどう活用したら良いかわからない」「扱えるデータの形になっていない」などが挙げられます。（そのほか、「必要なデータが収集できていない」「どのデータが必要なのか分からない」など）一言で"活用率が低い"といっても、そこには様々な課題を抱えています。

## Watson Discoveryでできること
本記事で取り上げる「Watson Discovery」は、**データ収集後の**テキストデータ活用に関するお困りごとをまるっと解決してくれる製品・サービスです。面倒、されど重要なデータの投入から加工、検索、学習、分析など幅広いフェーズでの課題解決を支援してくれます。

## Watson Discovery
### Watson Discoveryとは？
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/a85a384c-a4de-d0c5-fcb2-cc9926e11c3c.png)
**テキストデータ活用に必要となる機能をAll in Oneで提供するIBM製のソリューション・サービス**です。自然言語処理を活用して、企業におけるデータのサイロ化を解消したり、価値のある埋もれたデータを引っ張り上げたり、データをもとに新たな洞察を示したりする、**データ検索及びテキスト分析のプラットフォーム**です。


#### 参考：Watsonブランド
「Watson」とは、IBM発の人工知能及びサービス・ブランドです。

>Watsonブランドサイト "Watsonとは？"

https://www.ibm.com/watson/jp-ja/what-is-watson.html

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/8f54a3a2-55d3-b8b1-eacc-6c70834a6408.png)

Watsonブランドには「照会応答」や「知識探索」「音声」「言語」など種類も豊富で、本記事の**Watson Discoveryはこのうち「知識探索」に分類**されています。

（※Watsonサービス・APIを一部抜粋し整理しています。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/f7256914-f5ae-5495-8ef8-d88419ecca12.png)


### テキストデータ活用場面と主要機能の概要
Watson Discoveryが支援しているテキストデータの各活用場面と主要機能を整理します。ここでは、活用場面を**「取り込み」「加工」「エンリッチ」「検索」「学習」「分析」の６場面に分けます。**また、橙色の星印については、次の「主要機能紹介」にてもう少し詳しく整理します。
（※エンリッチ以降の流れは「検索」と「分析」に分岐すると前提を置き、4-a/4-bと表記しています。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/06f0b897-6a74-753c-157a-6c8666abb5b2.png)

#### 【1】 データの取り込み
必要なデータを収集できている前提で、まずは利用するデータ投入します。
...といっても、PDFやWord、Excel、あるいはBoxなどのファイル共有ストレージなど多様な形式であちらこちらに散らばっていると、どうやってデータを取り込ませたら良いものかと尻込んでしまいますね。
Watson Discoveryでは、**多様なデータソースへ簡単に接続でき、また多様な形式のファイルを取り込むことが可能**です。

>Discovery公式ドキュメント "データ・ソースへの接続"
https://cloud.ibm.com/docs/discovery?topic=discovery-sources
>>
"Box、Salesforce、SharePoint Online、SharePoint 2016、IBM Cloud オブジェクト・ストレージ、および Web Crawl の個々の文書ファイルのサイズ制限は 10 MB です。
データ・ソースごとに、資格情報、ファイルの場所、または URL が必要です。データ・ソースの資格情報、ファイルの場所、および URL は通常、開発者またはシステム管理者が提供します。"

実際にWatson Discoveryで操作をしてみると、データ・ソースを選択する際に、以下の画面が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/e9f6fe0a-8ba0-bae9-166a-467b5a078f66.png)

例えば、Box内の文書を取り込ませたいときは、①Boxのアイコンを選択し、その後②必要な情報（公開key、秘密keyなど）を入力、③接続したいフォルダパスを選択の**３ステップで簡単に接続**することができます。

また、上記のようにデータ・ソースに接続する他に、個別にPDFなどのファイルを取り込ませたいときは、画面の「Upload data」を選択し、その後アップロードしたいファイルを選択することで簡単に取り込みが完了します。
なお対応しているファイル形式は以下になります。

| プラン | 対応ファイルタイプ |
|:-----------:|:------------|
| ライト・プラン       | PDF、Word、PowerPoint、Excel、JSON、HTML| 
| 拡張プラン       | PDF、Word、PowerPoint、Excel、PNG、TIFF、JPG、JSON、HTML| 

:::note info
インフォメーション
データ・ソースへの接続及びファイルアップロードに関して、ファイルサイズやファイルタイプの制約があります。詳細は公式ドキュメントをご確認ください。
:::

#### 【2】 データの加工
ファイルを取り込んだら、次は効率的な検索ができるようにデータを加工します。Watson Discoveryでは、**文書を単にテキストとして取り込むだけでなく、テキストの中でも"エリア"のようなものを個別に設定**することができます。（Discovery内では「フィールド」と呼称されます）

例えば、スーパーのマニュアルで、お米5kgの仕入れについてテキスト検索したい際、「5kg」で検索するとしましょう。本当はお米について知りたいのに、エリア分けをしていないと豚肉や砂糖、小麦など他の食品の仕入れマニュアルから同じ5kgを拾ってきてしまい、検索効率が下がってしまいます。
そこで、エリア設定をすることで、お米の仕入れ情報が書いてあるエリアに絞って検索することができ、検索効率が上がります。（フィルタリングのような役割をさせるための、前準備に相当します。）
上記の例のように細かくエリア設定する以外にも、大きな文章のまとまりで「１章」「２章」...のように分けることも可能で、活用したいデータに合わせてカスタマイズすることができます。

（ざっくりイメージ図）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/39feac07-f1f2-3ccc-5789-d3cdef6a36a5.png)


#### 【3】 データのエンリッチ
データを加工した後はエンリッチです。エンリッチとは、**テキスト検索時に用いる"タグ付け"**のことです。
上記のイメージ図では直接テキストからキーワードを拾っているように表現していますが、各文書に対してタグをつけ、Watson Discoveryでテキスト検索をする際にはそのタグを辿って検索をしています。
タグ付けには、標準搭載の機能でタグ付けができるほか、辞書や正規表現を登録してカスタムでタグ付けできます。

辞書では、代表語と、その同義語を細かく設定することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/cd34b11a-a290-a033-78c9-79a083a08b5a.png)

また、形式の決まったキーワードを登録したい場合には、正規表現で登録することも可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/aa1b789c-4704-ba26-9b43-ba6698b9d04b.png)

なおタグ付けするテキストは、表形式のテキストにも適用可能です。

##### SDU関連機能
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/7524b7b5-36d9-b7e3-8a89-9e27af669281.png)
まずSDUとは「**S**mart **D**ocument **U**nderstanding」の略字で、Watsonが文書構造を理解した取込や検索、エンリッチをし、**ユーザが欲しい情報を効率よくかつ迅速に高速に探し出すことを支援**してくれる機能です。

例えば、マニュアルなどをスキャナで取り込んだ画像ファイルをDiscoveryにアップロードをすると、「SDU OCR機能」により画像ファイル内のテキストを識別してくれます。また【2】 データの加工内で前述したエリア分けは、この「SDU 文書分割機能」に該当します。さらに、SDUでは文書中のテーブル（表）の行列やラベル構造を理解する「SDU 表の理解」「SDU タグ付け」機能があります。

これら各種機能により、**検索時に不必要な情報である”ノイズ”を除外し、意味のあるまとまりで文書を理解することで、効率的な検索ができる**ようになります。

（Watson Discovery内の学習作業画面）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/95b89686-40ad-b99d-221b-f807ffc98bb8.png)


#### 【4-a】 データの検索
データの取り込みから加工、エンリッチを経て、続いて検索です。検索の場面ではテキスト検索を支援する多数の機能が備わっています。
検索したキーワードから動的に検索の切り口（Watson Discoveryでは「ファセット」と呼称されます）を生成したり、辞書登録のキーワード候補を推奨したり、さらにはWatson Assistantと連携して会話検索を行う機能があります。

また、単語あるいは短文でピンポイントで検索結果を回答してくれる「Answer Finding」や、集計や結果セットの編集ができる「Discovery Query Language」といった機能もあります。

##### Dynamic Facets
<font color="Salmon">追記：Dynamic Facetと、関連する```suggested_refinements```のAPIクエリパラメータは、2021年7月13日付のリリースでサポートから外れるとの発表がありました。</font>
>IBM Cloud公式ドキュメント "Release notes for IBM Watson™ Discovery Cartridge for IBM Cloud Pak® for Data"
https://cloud.ibm.com/docs/discovery-data?topic=discovery-data-release-notes-data&locale=en#release-notes-data-13july2021


Dynamic Facetsでは、**検索キーワードから動的に「ファセット / facet」と呼ばれるカテゴリー情報を生成**することができます。そのファセットを選ぶことによって更に検索結果を絞り込み、**目的の情報に効率よくたどり着けるよう支援**してくれます。

以下のWatson Discoveryのスクショでは、右側にDiscoveryの検索結果を表示、左側にフィルタリングのような機能を担うチェックボックスのリストが記載されています。ちょうど青枠で囲ったところに自動で生成されたfacetが一覧表示されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/5e24762d-4a35-feac-fac6-4fd102eb3354.png)

##### Dictionary Suggestions
Dictionary Suggestionでは、辞書に登録したキーワードを元に、**類似の文脈から辞書登録候補を自動でリコメンド**してくれます。

辞書登録の際、一つひとつのキーワードを登録するとかなり手間がかかり、また登録するキーワード登録の抜け漏れが発生することもあります。そこで、Dictionary Suggestionsを活用することで、**効率よく、かつ抜け漏れを抑えて辞書登録できる**ことが期待されています。

例えば、以下の辞書登録画面では、自動車の不具合箇所を示すパーツ関連の辞書として「ブレーキ」という単語を登録しています。すると、同じテキストデータ内の、類似文脈で使われていた「ブレーキパッド」「キャリパー」「absユニット」といったキーワードを類推し、自動検出してくれます。
また、リコメンドされたキーワードの辞書追加も簡単で、登録候補のキーワードのすぐ隣のアイコンからワンクリックで辞書に追加することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/adb36b89-bd0e-230b-4e95-2bdb451a1b54.png)

#### 【5】 学習
さらに、データの検索に続けて、欲しい情報を検索結果の上位に表示できるよう、クエリと文書の関連性を学習する機能があります。関連性の学習では、検索したい文書と検索結果としてWatson Discoveryが提示した文書について「関連していた」「関連していなかった」の２択でフィードバックを返すことで、Watson Discoveryが検索ワードにより関連している文書を優先的に表示するように学習していきます。

##### Relevancy Training

Relevancy Trainingは、検索結果に対して、ユーザが「この結果は期待するものだったか？」をフィードバックすることにより、Watsonが**検索キーワードと文書の関連性を学習し、最適な順位で結果を表示できるよう学習**する機能です。

フィードバックは２択式で簡単にできます。「関連性が高い」を意味するRelevant、あるいは「関係性がない」を意味するNoRelevantの２択で評価することができます。評価を元に、関連性の高い回答を学習し、検索対象に対して最適なランキングモデルの育成していきます。これにより、検索精度が向上し、よりユーザが迅速に正しい回答を得られるように支援してくれます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/54ba08e7-148b-bead-d36e-6d6b8c59521b.png)

#### 【4-b】 分析
最後に分析では、大量のドキュメントから洞察を得るよう支援してくれる機能があります。Watson Discoveryは大量のテキストデータの中からどのキーワードに着目したら良いのか示し、データ分析の経験年数によらず、ユーザの知見獲得を支援します。

##### Guided Mode

Guided Modeとは、Watsonが**大量のテキストから着目すべきキーワードを可視化しながら推奨し、ユーザがテキストデータから知見を獲得をすることを支援**してくれる機能です。

以下はテキスト分析画面、特にガイド付きモードの画面です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/be47c206-c8c8-12a2-9d62-fd348594ae4a.png)
テキスト分析画面のメニュー項目を選択すると、次に絞り込む選択肢の候補を自動で出してくれます。その**選択肢を選んでいくだけで、どんどん深掘りすることができ、特長的なキーワードやそれが使われている本文などの情報から知見や洞察を得る**ことができます。
一般的に、大量のテキストデータから洞察を得ることは容易ではありませんが、だからこそ、この「Guided Mode」（ガイド付きモード）を使用することで、**分析初心者でも大量データから重要な知見や洞察を得られる**よう支援してくれます。

### Watson Discoveryの特徴まとめ
様々な機能を紹介しましたが、改めてWatson Discoveryで何ができるのか、以下の５つに絞って最後のまとめとします。

1. 外部データソースへ簡単に接続ができる
1. 文書構造を理解したテキスト識別ができる
1. 標準あるいはカスタムでメタ情報を抽出できる
1. ユーザーが欲しい情報を検索結果の上位に表示できる
1. そして、大量のドキュメントから気づきを得られる

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/638050/5715c3c5-d5c9-7ba5-7b7b-f049b2b0a368.png)

### おわりに
本記事でご紹介しきれなかった機能もあります。詳細は公式ホームページまたは公式ドキュメントをご確認いただければ幸いです。私自身、実際にWatson DIscoveryを触り始めたのはここ2-3ヶ月の話ですが、初心者でも直感的に操作できる画面設計となっており、またCurlコマンドでの操作も分かりやすい印象でした。個人的な感想として、データ分析の経験年数を問わず幅広いユーザが利用できるソリューション・サービスだと感じました。Watson Discoveryが眠っているデータを掘り起こし、データ活用を望む多くの方々の新たな価値創造につながる発見を得られるよう、今後ますますのアップデートを期待するばかりです。

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

### 参考サイトなど
- [1]坪井祐太氏. “機械による自然言語処理 言葉を扱う技術とビッグデータの接点”.
IBM PROVISION No.83. Fall 2014.
[https://www.ibm.com/downloads/cas/X1BW4VQ7](https://www.ibm.com/downloads/cas/X1BW4VQ7), (最終アクセス2022-01-04)
 
- [2]株式会社 情報通信総合研究所. "デジタルデータの経済的価値の計測と活用の現状に関する調査研究の請負報告書". 総務省 情報流通行政局情報通信政策課情報通信経済室. 2020年3月：[https://www.soumu.go.jp/johotsusintokei/linkdata/r02_05_houkoku.pdf](https://www.soumu.go.jp/johotsusintokei/linkdata/r02_05_houkoku.pdf),（最終アクセス2022-01-04）

- 「Watson Discovery」公式ホームページ：[https://www.ibm.com/jp-ja/cloud/watson-discovery](https://www.ibm.com/jp-ja/cloud/watson-discovery)

- 「Watson Discovery」公式ドキュメント（英語版）：[https://cloud.ibm.com/docs/discovery?topic=discovery-getting-started&locale=en](https://cloud.ibm.com/docs/discovery?topic=discovery-getting-started&locale=en)

- 「Watson Discovery」公式ドキュメント（日本語版）：[https://cloud.ibm.com/docs/discovery?topic=discovery-getting-started](https://cloud.ibm.com/docs/discovery?topic=discovery-getting-started)