[レポート][M21]AIを使ったプロダクトのタイトル自動生成
こんにちは、小澤です。
現地時間6/4-7の日程でAmazon re:MARSがラスベガスにて開催されました。 今回は、「The Creative Side of Artificial Intelligence: Product Name Generation」セッションレポートを書かせていただきます。
セッション概要
当セッションの概要は以下の通りです。
The Creative Side of Artificial Intelligence: Product Name Generation
(人工知能の創造的側面:製品名の生成)
登壇者:
Scott Fincher - Data Scientist, KNIME, Inc.
セッション概要:
Can AI help name your product? This session will showcase a proposed solution that generates a large number of name candidates in a short time from a many-to-many long short-term memory (LSTM) network. You'll learn how to prepare the data and build, train, and deploy a deep learning neural network in Keras and TensorFlow without writing a single line of code.
(AIはあなたの製品に名前をつけるのに役立ちますか? このセッションでは、多対多の長期短期記憶(LSTM)ネットワークから短時間で多数の名前候補を生成する提案されたソリューションを紹介します。 1行のコードを書くことなく、データを準備し、KerasとTensorFlowでディープラーニングニューラルネットワークを構築、トレーニング、および展開する方法を学びます。)
セッションレポート
本セッションはデータ分析・AIのプラットフォームであるKNIMEからLSTMを利用して製品名などを自動生成する内容となっています。
プロダクト名を決める難しさ
プロダクト名を決める際には考慮すべき点が多く、簡単に決めれるものではありません。 非常にクリエイティブな領域となるわけですが、AIを利用した補助は可能でしょうか?
例えば、現実にありそうな山の名前を考えようとしたとき、どれもあまりいいものではありません。
そこで、Deep Learningの一種であるLSTMを使った自動生成をこころみてみます。
LSTMとは
今回利用するLSTMについての解説となります。
まずLSTMのベースとなっているRNNというものがあります。 これは再帰型のニューラルネットワークで、文章などの系列データを入力として扱う際に現在のインプットの他、過去のインプットから得られた情報も利用するものとなっています。
RNNは再帰型の全結合となっているため、このままでは勾配消失問題などを避けられません。 それを回避するために各ユニットの内部構造を工夫したのがLSTM(Long Sort Term Memory)となっています。
状態を保存するセルとそれに対する入出力を制御する以下の3つのゲートから成り立っています。
- 忘却ゲート
- 入力ゲート
- 出力ゲート
KNIMEを使った実践
先ほどの現実にありそうな山の名前を決める処理をLSTMを使って実現します。 KNIMEはワークフロー型のデータ分析プラットフォームとなっており、個々の処理を行うノードをつないでいくことで一連処理を実現します。
KNIMEの内部でDeep Learning用のライブラリである、Kerasを使った処理を実現しています。
KNIMEではこの処理で学習したモデルをDockerコンテナ化しAWS環境上のSageMakerで利用可能な仕組みを実現できます。
実際に自動生成してみた結果はとなります。 私は、アメリカの山の名前に詳しいくないので、この結果がどの程度いい感じなのかはわからないのですが、なんちゃらMountainやなんちゃらHillのようなものが多く見受けられます。
おわりに
re:MARSのセッション「The Creative Side of Artificial Intelligence: Product Name Generation」のレポートでした。 実際に山の名前を生成してみることでLSTMがどのような動きをするのかをイメージしやすいセッションとなっていました。 また、KNIMEを使ったコードフリーな環境で完結しており、誰でも気軽に試しやすいものとなっています。