Amazon DataZone の新しい生成 AIベースの新機能「AIリコメンデーション」を試してみる!
はじめに
クラスメソッドの石川です。Amazon DataZoneは、新しい生成 AIベースの新機能「AIリコメンデーション」が利用可能になりました。この機能は一昨年のre:Invent2022に発表されたサービスですが、AIリコメンデーションの機能が一年ちょっと経過して利用可能になりました。今をときめく生成AIベースということなので早速試してみます。
ディスクリプション(説明)のAIリコメンデーションとは
生成 AIを用いてテーブルやカラムのディスクリプション(説明)を自動生成できる機能です。ワンクリックでデータセットの概要、コンテキスト、影響力のある列、分析ユースケースなどをワンクリックで自動生成できるようになりました。
自動生成されたディスクリプションにより、検索結果が詳細なディスクリプション、考えられる使用例、キー列にも基づいて表示されるため、より充実した検索エクスペリエンスが可能になります。
データ作成者は、自動生成されたディスクリプションに基づいて、検索結果に詳細な情報が表示されるため、データ利用者は必要なデータを見つけやすくなります。アセットのディスクリプションをプログラムで生成するために使用できる API のサポートが追加されました。
なお、ここまでの環境は、先日のブログを実際にやっていただけると検証データの準備からDataZoneの環境作成までできます。
検証用Redshiftテーブル定義(sales)について
検証用Redshiftテーブル定義(sales)について解説します。salesテーブルのメカニカルメタデータ(テーブル定義)は、以下になります。テーブルディスクリプション(テーブルの概要、ユースケース)もカラムディスクリプション(カラムの説明)も設定していません。
-- SHOW TABLE tickit.sales; CREATE TABLE tickit.sales ( salesid integer NOT NULL ENCODE az64, listid integer NOT NULL ENCODE az64 distkey, sellerid integer NOT NULL ENCODE az64, buyerid integer NOT NULL ENCODE az64, eventid integer NOT NULL ENCODE az64, dateid smallint NOT NULL ENCODE raw, qtysold smallint NOT NULL ENCODE az64, pricepaid numeric(8,2) ENCODE az64, commission numeric(8,2) ENCODE az64, saletime timestamp without time zone ENCODE az64 ) DISTSTYLE KEY SORTKEY ( dateid );
QueryEditor v2からの様子は、以下になります。
検証前のデータの状態
検証用のデータは、Redshiftのサンプルデータベースのデータ「サンプルデータベース - Amazon Redshift 」を用います。メタデータをインポートした直後は、「詳細情報」は空になっています。
DataZoneが自動生成したメタデータは、以下のとおりです。緑色のお花みたいなアイコンが、DataZoneが自動生成したメタデータになります。テーブル名は、sales
ですが表示では、Sales
と自動生成されています。このような機能は従来からある機能で、生成AIというよりは、ルールベースの機能ではないかと考えられます。
次に、salesテーブルのカラムについて見てみます。ソートキーのカラムはチェックが入っていますが、ソートキーは複合キーの指定が可能なので、1,2,3とか数値が望ましい気がします。分散キーについてはメタデータとして管理されないようです。カラム名は、salesid
ですが表示では、Sales ID
と自動生成されています。
ここまでは、従来のメタデータの収集する機能でした。ここから、真打ち「AIリコメンデーション」です!
ディスクリプションに対する AIリコメンデーション
Amazon DataZoneは、ディスクリプションに対する AIリコメンデーションによって、ワンクリックでデータセットの概要、コンテキスト、影響力のある列、分析ユースケースなどをワンクリックで自動生成できるようになりました。自動生成されたディスクリプションにより、検索結果が詳細なディスクリプション、考えられる使用例、キー列にも基づいて表示されるため、より充実した検索エクスペリエンスが可能になります。
テーブルディスクリプションのAIリコメンデーション
テーブルディスクリプション(テーブルの概要、ユースケース)やカラムディスクリプション(カラムの説明)をAIリコメンデーションを用いて自動生成します。[説明を生成]を押すとスキャンが始まります。
1〜2分程でディスクリプションが生成されました。結構、長文ですね。
カラム名が英語なので、そのまま読んだほうがわかりやすかったりしますが、イメージを掴んでもらうためにざっくり和訳した内容を掲載します。
概要
The sales table contains details of each sales transaction, including product/service sold, sellers, buyers, dates, quantities, pricing, and commissions. This offers sales reps, managers, and executives insights into sales performance across products, sellers, channels, campaigns, customers, and time periods. The listid column links each sale to the product/service sold. The saletime timestamp captures exactly when each transaction occurred. The eventid ties each sale back to the originating campaign or sales event, enabling analysis of event success. Each sales record has a unique salesid identifier. The sellerid foreign key connects to seller details like rep name, region, tenure, and more. The dateid links to the date dimension containing temporal attributes. Commission shows payout per sale. qtysold captures order volumes, while pricepaid stores unit pricing. buyerid connects to customer profiles with segmentation attributes. Together, these columns enable drilling into metrics like sales by product, seller, channel, customer segment, time period, campaign, conversion rates, order values, commissions, and pricing trends. The sales table delivers actionable insights for developing seller strategies, optimizing campaigns, driving product mix, forecasting, and spotting new sales opportunities.
salesテーブルには、販売された製品/サービス、販売者、購入者、日付、数量、価格、手数料などの各販売取引の詳細が含まれます。 これにより、営業担当者、マネージャー、経営幹部は、製品、販売者、チャネル、キャンペーン、顧客、期間にわたる販売実績に関する洞察が得られます。
listid 列は、各販売を販売された製品/サービスにリンクします。 saletime タイムスタンプは、各トランザクションがいつ発生したかを正確にキャプチャします。 EventID は各販売を元のキャンペーンまたは販売イベントに結び付け、イベントの成功を分析できるようにします。
各販売レコードには一意の salesid 識別子があります。 sellid 外部キーは、担当者名、地域、在職期間などの販売者の詳細に接続します。 dateid は、時間属性を含む日付ディメンションにリンクします。 コミッションは販売ごとの支払いを示します。 qty sold は注文量を取得し、pricepaid は単価を保存します。 buyerid は、セグメンテーション属性を使用して顧客プロファイルに接続します。
これらの列を組み合わせると、製品、販売者、チャネル、顧客セグメント、期間、キャンペーン、コンバージョン率、注文額、手数料、価格傾向ごとの売上などの指標を詳しく調べることができます。 salesテーブルは、販売者戦略の開発、キャンペーンの最適化、製品ミックスの推進、予測、新しい販売機会の発見に役立つ実用的な洞察を提供します。
答え合わせにテーブルの簡易なER図も掲載します。
Use Case
The sales table provides crucial transaction-level data to inform sales strategies, campaigns, product mix optimization, territory planning, quota setting, and more. Sales leaders can analyze performance trends across products, sellers, channels, campaigns, customers, and time periods to spot opportunities. Specifically, sales managers can use metrics like deals closed, order values, pricing trends, and commission payouts by rep to develop seller coaching plans. Marketing can measure campaign conversion rates and sales by traffic source to optimize future initiatives. Product managers can track sales volumes, customer segments, and pricing for each offering to inform portfolio decisions and new feature prioritization. Finance can leverage the sales data to build accurate revenue forecasts. Customer service and success can analyze historical purchase behaviors by buyer to craft targeted retention and cross-sell promotions. Executives can track sales KPIs like new business growth, average order value, and customer lifetime value to assess expansion initiatives. The sales table serves as a critical raw ingredient for analytics across sales, marketing, product, finance, and customer success functions. It enables data-driven targeting, personalization, and decision making to maximize revenues, conversion rates, order values, and customer lifetime value over time.
salesテーブルは、販売戦略、キャンペーン、製品構成の最適化、地域計画、ノルマ設定などを知らせる重要なトランザクション レベルのデータを提供します。 営業リーダーは、製品、販売者、チャネル、キャンペーン、顧客、期間にわたるパフォーマンスの傾向を分析して、機会を見つけることができます。
具体的には、営業マネージャーは、成約した取引、注文金額、価格設定の傾向、担当者による手数料支払いなどの指標を使用して、販売者のコーチング プランを作成できます。 マーケティング部門は、トラフィック ソースごとにキャンペーンのコンバージョン率と売上を測定し、今後の取り組みを最適化できます。 製品マネージャーは、各製品の販売量、顧客セグメント、価格を追跡して、ポートフォリオの決定や新機能の優先順位付けを行うことができます。
財務部門は販売データを活用して、正確な収益予測を立てることができます。 顧客サービスと成功は、購入者による過去の購入行動を分析して、ターゲットを絞った維持とクロスセル プロモーションを作成できます。 経営幹部は、新規事業の成長、平均注文額、顧客生涯価値などの販売 KPI を追跡して、拡大への取り組みを評価できます。
売上表は、販売、マーケティング、製品、財務、カスタマー サクセス部門にわたる分析の重要な原材料として機能します。 これにより、データに基づいたターゲティング、パーソナライゼーション、意思決定が可能になり、収益、コンバージョン率、注文金額、顧客生涯価値を長期にわたって最大化できます。
カラムディスクリプションのAIリコメンデーション
テーブルディスクリプションのみでAIリコメンデーションを実行しようとしたところ、カラムディスクリプションも設定されていることが判明しました。しかし、現状では未登録状態であり、[すべて承認]を押すまで登録されません。
AIリコメンデーションによって生成されたカラムの説明の文の隣に、緑色のお花みたいなアイコンが表示されていますが、大きさが異なるのには意味がありそうです。
ディスクリプション(説明)はどこに保存されるのか?
当たり前ですが、ディスクリプション(説明)を含むメタデータは、DataZoneのみで管理されているのではないかと考えられます。Glue Data Catalogを確認しても、Redshiftのテーブルディスクリプションやカラムディスクリプションを確認しましたが登録されていません。すでに別のデータカタログ製品を利用しているけど、AIリコメンデーションは使いたいようなユースケースを考えてみたのですが、今回同時にサポートしたAPI連携などを用いないと実現できないと考えられます。
さいごに
生成AIを用いてテーブルやカラムのディスクリプション(説明)を自動生成できる機能について、本当にワンクリックでデータセットの概要、コンテキスト、影響力のある列、分析ユースケースなどを自動生成できることを確認しました。
[説明を生成]ボタンを押して、AIリコメンデーションが実行してから3~4分待たされたことから、テクニカルメタデータ(テーブルの定義情報)の他にデータの中身の一部もスキャンして、リコメンドを行っているのではないかと推測しています。実際にテーブルの「説明」の中には外部キー・テーブル間のリンクや一意の識別子についても言及されており、これはダークデータ(得体のしれないデータ)の理解にも有効かもしれません。これは、AIリコメンデーションの可能性を感じさせてくれます。
一方、リコメンドされた「説明」はすべて英語であり、日本人の誰もが直感的に理解できる内容ではないのが残念なところです。私もざっくり翻訳しましたが、日本語はカラム名なのかビジネス用語なのか判別が難しく、それはそれでわかりにくいので歯がゆいところです。カラム名も中のデータも英数字なので致し方ないのかもしれませんが、日本語のデータについても検証したいところです。昨今の生成AIの進化は著しく、内部的なプロンプトの書き方次第で改善が見込めるのかもしれません。