モノづくりエンジニアのための情報ポータルサイト|エンジニアピット

CAREER LABIBM Watson って結局なに?どうやって使うの?

IBM Watson って結局なに?どうやって使うの?
DATE2016/2/18

第3次人工知能ブームの時代到来と謳われる昨今。その最先端を突き進む巨大プロジェクトの1つとして IBM Watson をご存知の方も多いでしょう(ただし、IBM社はWatsonを人工知能とは言わず、”コグニティブ・コンピューティング:cognitive computing”と銘打っています)。

最近では、Softbankの人型ロボ”Pepper”との連携を行なうと公式発表*1がされました。今後も注目を集めていくであろうIBM Watsonですが、公式サイトを見ても、イマイチ言っていることが難解でわかりにくい、全貌が掴みにくいとお思いの方も多いのではないでしょうか?今回はそんな方のために今わかる範囲でIBM Watsonとは何か?どうやって使うのか?をエンジニア目線で解説していきます。

*1 http://www-03.ibm.com/press/jp/ja/pressrelease/48768.wss
IBM Watson って結局なに?どうやって使うの?

IBM Watsonは認知機能の集合体

先に言いましょう。IBM Watsonは”Watson”という人工知能的なものが「でーん」とあって、それがよしなに解析や解答を行なう、というものではありません。では何なのか。早い話、人間の「認知」と同等の機能を目指して作られたAPI群の総称を言います。先ほど言ったようにIBM社はWatsonを”cognitive computing”、つまり認知的コンピューティングであると打ち出しています。人間の行い、つまり言語理解や判断・運動能力・学習・空間処理・社会的行動などは常に認知が伴います。こういった機能をコンピュータに与えることこそがWatsonの到達目標です。これらを実現するための様々な機能を有する個々の解析エンジンとそのAPI群の総称がWatsonなのです。

例えば、ある一定のテキストをインプットとして取り、そのテキストを書いた人の性格を診断し結果を返すAPIであったり、画像をインプットとして取り、その画像に何が写っているのかを単語で返すAPIであったり、といった具合です。

では、そんなWatson API にはどのようなものがあるのか、以下に列挙します。「~系」と分類しているのはIBM公式の分け方ではなく、あくまで筆者が勝手に付けたものです。

【診断系】

Personality Insights
性格診断
Tradeoff Analytics
利用者の価値観に基づいた最有力候補の提案

【画像認識系】

AlchemyVision
画像のタグ付けと文字列抽出
AlchemyVision Face Detection/Recognition
顔認識と年齢性別推定
Visual Recognition
何の画像なのか推定

【テキスト系】

Natural Language Classifier
何に関する文章なのか推定
AlchemyLanguage
文章のカテゴリ分類、構成要素の属性情報付与
Concept Expansion
関連語取得
Language Translation
他言語翻訳
Relationship Extraction
文章の構成要素のカテゴリ分類
Speech to Text
音声の文字起こし
Text to Speech
文字から音声に変換

【検索系】

AlchemyData News API
柔軟なニュース記事検索
Concept Insights
関連語を考慮した検索
Retrieve and Rank
自分の質問に最も近いQ&Aの表示

【対話系】

Quetion and Answer
質問に文章で回答
Dialog
定型的な会話AI

上記が Watson印のAPIです。ぱっとこうやって並べてみた印象ですが、画像認識など機能が重複しているAPIが見受けられます。おそらくIBM社が独自開発や企業を買収した結果、このようなラインナップになったのでしょう。

Watson には様々な機能に対応したAPIが個々に用意されていることがご理解頂けたかと思います。では、このようなAPIはどうやって利用すればいいのか知りたくありません?

Watson API の利用のしかた

上記で列挙したAPIを利用するには、IBM Bluemix*2 というサービスを介して行います。おっと、ここで新しい言葉”Bluemix”が出てきました。大丈夫、ちゃんと説明しますよ。

Bluemix は、これもやはり IBM が提供するサービスで「次世代クラウドプラットフォーム」と公式サイトには書かれています。Bluemixでは簡単に自分のサーバをクラウド上に構築でき、予め用意された言語/フレームワークを利用することができます。例えば、Rails環境が整ったサーバを立てたいというとき、BluemixのWebインタフェース上からそれを選択します。後は数分待つと選択に応じたサーバインスタンスが立ち上がります。Web開発に詳しい方は「ヘテムルのようなサービス」といえばご理解頂けるでしょうか。

*2 https://www.ibm.com/developerworks/jp/bluemix/

Bluemix で利用可能な言語/フレームワーク(2015/11現在)

【対応言語】

Java
js
Ruby
PHP 他

【フレームワーク】

CakePHP(PHP)
Ruby on Rails(Ruby)
express(Node.js) 他

Bluemix には「サービス」というカテゴリのインスタンス群が用意されています。サービスもまた様々な機能を提供します。例えば、メール配信クラウドサービスSendGridとの連携機能のサービス、各種DB機能のサービスなど。Watson API もこの「サービス」というカテゴリで提供されています。もし、” Natural Language Classifier”というWatson APIを利用したい場合は、サービスから” Natural Language Classifier”を選択します。すると数分もしないうちにそのインスタンスが立ち上がり、後は一般のWeb APIと同様のやり方でAPI をコールできるようになります。curlコマンドなどで動作を確かめることもできます。

では、いよいよ各APIの詳細について見ていきましょう。

  • Personality Insights

    最低3500語以上の文章を入力すると、その文章を書いた人の性格を算出してくれるサービスです。性格特性を表す十数個の項目に対してパーセンテージが表示されます。また、性格のサマリーが短文で表されます。ただし、すべて英語です。
    デモページ

  • Alchemy API

    Alchemy API は4つのパートで構成されています。

  • AlchemyLanguage

    文章の属性情報を分析するAPIです。文章を入力すると、その文章を構成する要素を抽出します。文章の分類(予め決められたカテゴリに分ける機能。こちらでカテゴリは規定できない)やキーワード抽出、そのキーワードの分類(組織なのか人名なのかなど)、ネガポジ判定などができます。

  • AlchemyVision

    入力した画像に対してタグ付けを行なうAPIです。鳥の写真を入力すると"bird"というタグが確実度とともに返されます。画像内の文字列も抽出します。

  • AlchemyData News API

    Web上のニュース記事を次の条件で取得するAPIです。

    • キーワード
    • ジャンル
    • 検索対象(タイトル or 記事内容)
    • 期間
    • ネガポジ

    返却される内容は、記事URLやタイトル、構成されているキーワード群、掲載日、ネガポジなどです。検索結果の数から、そのキーワードが含む記事数に基づくトレンド分析ができます。

  • AlchemyVision Face Detection/Recognitionp

    こちらから送った画像に対して顔認識をするAPIです。顔がある位置、顔のから推定した性別と年齢とその確実度を返します。複数の顔を認識できます。有名人なら名前も特定してくれます。

    デモページ

  • Concept Expansion

    いくつかの単語を入力すると、それへの関連度が高い単語一覧が出力されるAPIです。分析に用いるコーパスはデモを見た限りでは、Twitterまたは医療系のサイトのテキストで学習されたものしか用意されていません。つまり、医療系の用語でしか使用できない状態です。

  • Language Translation

    文字通り、翻訳APIです。アラビア語、英語、スペイン語、フランス語、ポルトガル語に対応しています。日本語非対応。基本的に英語へしか翻訳できないようです。

    デモページ
  • Concept Insights

    概念に基づく検索API?検索キーワードに関連するワードも考慮に入れた検索エンジンだそうです。デモが機能せず、検証していないので確定的なことはいえません。

    デモページ
  • Quetion and Answer

    AIと会話できるAPIです。質問を入力すると、その質問への回答を返します。「ニューヨークはどこにある?」といった簡単な質問にも大量のテキストを返してくる割に、あまり精度は高くない印象。

  • Visual Recognition

    入力した画像が何であるかをテキストで返すサービスです。トラの画像を入力すると確度のパーセンテージとともに"Tiger"と返します。

    デモページ
  • Relationship Extraction

    入力した文章のエンティティ(構成要素)が何のカテゴリに含まれるかを表示します。文章に"everyone"とあれば、それが"people"であると返すといった感じ。

  • Natural Language Classifier

    入力した文章の内容のカテゴリを返すサービスです。気温のことが書かれた文章を入力すると"temperature"と返します。

  • Dialog

    ルールベースの対話をする機能です。ピザの注文といった定型的な会話の流れのやり取りを再現します。API側が理解できない応答をすると、聞き直されます。

    デモページ
  • Retrieve and Rank

     

    質問内容を入力すると、その質問に最も関係のありそうなQ&Aを表示するサービスと思われます。

  • Speech to Text

    音声から文字起こしをするサービスです。英語、スペイン語、ブラジル語、北京語に対応しています。日本語非対応。

    デモページ
  • Text to Speech

    音声読み上げサービスです。英語、フランス語、ドイツ語、イタリア語、スペイン語のそれぞれ男性と女声の声で出力できます。日本語非対応。

    デモページ
  • Tradeoff Analytics

    その人の価値観に合わせて選択肢の候補を上げていく一連のやり取りを提供するサービスです。デモでは「一覧の中で、自分にあったスマホはどれか?」という命題に対して、その人が重要視するスペックポイントを明確にした上で候補を上げていくということを行なっているそうです。ショップの店員がお客さんの服を選ぶような感じかと思われます。

    デモページ
    参考ページ

最後に

いかがだったでしょうか。Watson について多少は理解が深まれば幸いです。先ほどご紹介しました Bluemix には30日無料トライアル期間*3があります。百聞は一見に如かず、といいますからもっと理解を深めたい方は実際に動かしてみることをおすすめします。まず試しに動かしてみるという意味では” Personality Insights”がいいでしょう。この機能は特段、学習用データセットなどの準備はいらないので手軽です(とはいえ、インプットに3500単語くらいある英語の文章は必要です)。

それでは、最後までお読みくださりありがとうございました。Have a nice hacking life!! ☺

*3 https://developer.ibm.com/sso/bmregistration?lang=ja_JP

(ふももと)

エンジニアピット キャリアラボ一覧へ戻る