2017年11月1日追記
[Watson] Retrieve and Rankのサービス終了について
概要
本稿では、Retrieve and Rank Web interfaceという公式ツールを利用してRetrieve and Rank(以下R&R)のトレーニングを行い、簡単な質問応答システムを作るまでの手順をシリーズ化して解説します。
(1) R&Rおよび公式ツール利用開始〜回答データ投入
(2) 質問データ投入〜Rankerトレーニング ※この記事で説明する部分
(3) Node-REDアプリケーションとR&Rの連携
まだ前回の記事をお読みでない方は、そちらを先にお読みください。
前回は公式ツールを利用して回答データを投入し、Solrによる検索結果までを確認しました。
この記事では質問データを準備・アップロードして、回答との関連付け、そしてRankerのトレーニングを行っていきます。
免責事項
本稿におけるWatsonサービスに関する解説は執筆者の個人的な見解であり、公式資料に基づいていない内容を含みます。
また本稿の情報は2017年4月現在のものです。
必ずWatson Developer Cloudなどの公式資料も併せて確認してください。
質問データの準備
公式ツールにアップロードできる質問データの形式は、UTF-8のテキストファイルです。
レイアウトは単純で、改行をレコード区切りとする質問文の羅列です。
Rankerのトレーニングを開始するには、後述する「質問と回答の関連付け」を150件以上行う必要があります。(結構大変ですね…)
今回は、「歴史のある観光スポットを教えてください」「家族で楽しめる観光スポットを教えてください」といった感じの質問文を150個ほど用意しました。
質問データのアップロード
質問データができたら、公式ツールの「Content」タブ「Questions」タブの「Upload questions」ボタンをクリックします。
以下のダイアログにて質問データファイルを指定し、アップロードします。
質問と回答の関連付け
公式ツールの「Tasks」タブに移動します。「Priority training」の「Start」ボタンをクリックします。
以下のように、先ほどアップロードした質問文と、Solr検索による回答候補が表示されます。
この回答候補に対して、★マークで関連度を評価します。
評価 | 説明 |
---|---|
★ | 関連なし |
★★ | 関連性はあるが回答としては不適 |
★★★ | 部分的には良い回答だが改善の余地あり |
★★★★ | 期待通りの回答 |
Solr検索による回答候補が不足な場合は、「See More Answers」または「Search and Find Answer」ボタンで別の回答候補を表示できます。
候補として表示された全回答に対して、★マークを1つ以上付けたら「Submit Rating」ボタンをクリックします。
(注)★マークを付けていない回答候補があるとボタンが押せません。
この作業をひたすら繰り返し、150件に達するまで続けます。
何件まで進んでいるかは「Performance」タブで確認することができます。
Rankerのトレーニング
質問と回答との関連付けが150個に達すると、「Tasks」タブに「Train a ranker」というタスクが現れます。
ここまでの作業でトレーニングデータ(教師データ)が作成できました。
これでいよいよRankerのトレーニング=機械学習が可能となります。
「Train」をクリックすると、Rankerのトレーニングが始まります。
トレーニングが完了すると「Train a ranker」が消えて代わりに「Review」というタスクが現れます。
「Start」をクリックし、上で行った関連付けの要領で、Rankerのレビューを行っていきます。
レビューが完了すると再度「Train a ranker」が有効になり、再トレーニングを行うことができます。
こうして、質問文の追加 → 回答との関連付け → Rankerのトレーニング → レビュー → 再トレーニングのサイクルを回すことで、Rankerの精度を高めていきます。
Rankerの精度を試す
「Content」-「Try Out Watson」タブで、プルダウンの切り替えにより、Solrのみ、あるいはSolr + Rankerの検索を試すことができます。
Solrのみによる検索結果
Solr + Rankerの検索結果
Rankerにより順位が変わっていることがわかります。
これで、Retrieve and Rankが使えるようになりました!
次回はRetrieve and Rankと連携する質問応答システムを、Node-REDを使って作成していきます。