Amazon Web Services ブログ

Amazon SageMaker による検索エンジンの強化

この記事は、Ibotta 社の機械学習マネージャー、Evan Harris 氏によるゲスト投稿です。Ibotta 社によると、「Ibotta は、単一のスマートフォンアプリを通じて消費者が簡単に普段の買い物に対するキャッシュバックを獲得できるようにすることでショッピング体験を変革しており、食料品、電子機器、衣料、ギフト、家庭および事務用品、レストランでの食事などに対する特典を提供するために、一流のブランドおよび小売業者と提携してる」とのことです。 急成長するミドルステージの企業間における技術面での隔たりは、ユニークな課題を生みがちです。  このような企業の多くで重要視されるのは、高品質アプリケーションを迅速かつ効率的に構築することです。 普段の買い物に対するキャッシュバックを何百万ものユーザーに提供するモバイルアプリ、Ibotta の機械学習 (ML) チームは、このトピックについてかなりの考察と実験を行ってきました。  今日は、Amazon SageMaker を使った検索など、コア機能を実現するために当社が AWS を活用する方法についてお話したいと思います。 この記事では、Ibotta の検索エンジンのアーキテクチャ、そしてリアルタイムの ML を当社のモバイルアプリケーションの検索経験に統合するために Amazon SageMaker とその他の AWS サービスを使用する方法について説明します。この記事が、皆さんの組織の規模に関わらず、組織内における同じような課題に対する実行可能なソリューションを探す期間を短縮するために役立てば幸いです。 包括的で使いやすい検索フローを備える能率化されたモバイルアプリ経験を生み出すことは、私たちのビジネスにとって必要不可欠です。買い物前にお買い得情報を探すお客様は、価値ある情報をすばやく見つける必要があり、そうでなければあきらめてしまう傾向があります。 検索関連性エンジニア、ML エンジニア、設計者、およびモバイル開発者の専属チームを持つ当社では、検索関連性に対する新しくクリエイティブな改善を迅速に開発し、テストするために出来る限り多くの最新テクノロジーを使用しています。Ibotta はデータ主導のインテリジェンスを検索エンジンに投入するための ML の使用を優先しており、これは私たちを従来の情報取得手法を超えたレベルに押し進めます。 基礎を成す検索インフラストラクチャ Ibotta での検索のコアインフラストラクチャは、アプリの幅広いマイクロサービスを土台としています。インデックス化されたドキュメントは Amazon Elasticsearch Service に保存され、これにはモバイルクライアントが任意の時点で利用できるコンテンツのすべてが収められています。リクエストに応じて社内のコンテンツサービスがこのドキュメントストアと通信し、リクエストを行っているユーザーが利用できるコンテンツのみが返されることを確実にするための、追加のルールベースのフィルタリング機能を提供します。 このコンテンツサービスは入力検索クエリを受け取り、他の文脈上の考慮事項を計算に入れながら、関連するコンテンツで応答することができます。コンテンツサービスは典型的な lucene スタイルの検索関連性手法を使用して Elasticsearch ドキュメントストア内の適切なコンテンツを取得します。 ML で強化された検索インフラストラクチャ 基礎となる検索インフラストラクチャには、大きな改善の余地があります。Ibotta の検索問題領域には、特にコンテンツに関してユニークな課題があり、ある週に特定ブランドのための特典がアプリ内にあっても、別の週にはその特典がなくなっているという場合があります。これは、私たちが提携する小売業者によるものです。小売業者は、限定された期間だけアイテムを宣伝したいということが多々あるからです。 これに加えて、当社のアプリでは全く利用できないブランドと製品のカテゴリもあります。これは、当社がまだこれらの小売業者と連携していないからですが、私たちは、ユーザーの検索クエリがアプリ内のコンテンツに完全に一致しない場合でも、それらのユーザーに関連するコンテンツを表示したいと考えています。例えば、取り扱っていないブランドのコーヒーに対する検索は、重要な属性 (フレーバー、サイズ、価格など) 全体に一致する他のコーヒーブランドを返すべきです。 これに対するソリューションがクエリ拡大です。これは、データストアをクエリする前に、ユーザーの検索クエリにコンテンツを追加する一般的な検索手法です。ある状況では、リアルタイムで検索クエリをカテゴリ別に分類することによって価値を付加し、コンテンツ取得とソートアルゴリズムを強化します。別の状況では、カテゴリに分類した後、予測されたカテゴリを専門とするオンライン小売業者を検索してソートし、それらを提案としてユーザーに返します。 Ibotta では、これらのオンデマンドのカテゴリ推論をリアルタイムで行うために Amazon […]

Read More

プログラムからのアクセス利用時に AWS アカウントを保護するためのガイドライン

AWS を利用する際に最も重要なこととして、AWS リソースのセキュリティの確保があります。誰にリソースにアクセスさせるのか、注意深くコントロールする必要があります。これは、AWS ユーザーがプログラムを使ったアクセスをしている場合にも同様です。プログラムからのアクセスは、自社で作成したアプリケーションもしくはサードパーティーのツールから AWS リソースにアクションすることを実現します。AWS サービス側でアクセスリクエストを認可させるためにアクセスキー ID とシークレットアクセスキーを使ってリクエストに署名することが可能です。このようにプログラムによるアクセスは非常にパワフルなため、アクセスキー ID とシークレットアクセスキーを保護するためにベスト・プラクティスを活用することが重要です。これは不意のアクセスあるいは悪意のあるアクテビティビティからアカウントを保護するために重要です。この投稿では、いくつかの基本的なガイドラインを提示し、アカウントを保護する方法を示します。また、プログラムからの AWS リソースへのアクセスを行う際に利用出来るいくつかの方法を提示します。 ルートアカウントを保護する AWS のルートアカウント –  AWS にサインナップするときに最初に作られるアカウント – は全ての AWS のリソースに無制限でアクセス出来ます。ルートアカウントには権限による制御が効きません。したがって、AWS はルートアカウントに対してアクセスキーを作成しないように常におすすめしています。アクセスキーを与えると利用者がアカウント全体を廃止するような強力な権限を得てしまいます。ルートアカウントにアクセスキーを作成するかわりに、利用者は個別の AWS Identity and Access Management(IAM)ユーザーを作成して利用することができます。さらに、最小権限の考え方に従い、それぞれの IAM ユーザーに対してタスクを実行するのに必要な権限のみを許可します。複数の IAM ユーザーの権限を簡単に管理するために、同じ権限を持つユーザーを IAM グループにまとめる方法も使えます。 ルートアカウントは常に多要素認証(MFA)で保護するべきです。このセキュリティに関する追加の保護は許可されていないログインからアカウントを保護することに役立ちます。多要素認証とは、認証に複数の要素を使うことで、パスワードのような知識認証要素と、MFA デバイスのような所有物認証要素を同時に使うことです。 AWS はバーチャルとハードウェアの 両方のMFA 用のデバイス、さらに U2F セキュリティキーを多要素認証用としてサポートしています。 AWS アカウントに対するアクセスを許可するときの考え方 ユーザーに AWS マネジメントコンソールやコマンドラインインターフェース(CLI)にアクセスを許可するには2つの選択肢があります。1つ目は、IAM サービスによって管理されるユーザー名とパスワードでログインする ID を作ることです。もう1つは、IDフェデレーションを利用して、既に企業の中に存在する認証情報を使って AWS コンソールや CLI にログインさせることです。それぞれのアプローチには異なるユースケースがあります。フェデレーションは、既に集中管理されたディレクトリがあるか、現在の制約である5000人以上の IAM […]

Read More

【開催報告】第5回 Amazon SageMaker 事例祭り

アマゾン ウェブ サービス ジャパン株式会社 (AWS Japan) アソシエイトソリューションアーキテクトの針原 (Twitter: @_hariby) です。AWS Japan 目黒オフィスでは「Amazon SageMaker 事例祭り」(Twitter: #sagemaker_fes) を毎月開催しています。2019年5月21日に開催された第5回 Amzon SageMaker 事例祭りでは、AWS Japan のソリューションアーキテクトによるサービス紹介と、Amazon SageMaker をご利用いただいているお客様をゲストスピーカーにお招きした具体的な導入・運用事例紹介をさせて頂きました。各セッションの様子を以下にまとめます。

Read More

【開催報告】AWS Data Lake ハンズオンセミナー 2019 初夏

こんにちは。AWS ソリューションアーキテクトの上原誠(@pioh07)です。 5月29日に、「AWS Data Lake ハンズオンセミナー」を開催いたしました。去年から行ってきた恒例のワークショップで第7回目となります。去年も盛況でしたが、今回も130名くらいのお客様にご参加頂きました。 はじめに、AWSにおけるデータ活用のベストプラクティスである Amazon S3 を中心とした Data Lake について解説し、ビッグデータ分析基盤の考え方として有名なラムダアーキテクチャの解説を行いました。 当イベントでは、Amazon Athena や Amazon Redshift の各 AWS サービスを駆使して実際にラムダアーキテクチャを構築することがゴールです。とはいえ全てを構築するのはボリュームが大きいため、スピードレイヤー or バッチレイヤー or 全部入りでコース分けて取り組めるようハンズオンコンテンツを用意しました。最初にコースの説明を行い、出席いただいたお客様ご自身の課題に合わせてコースを選択頂き、ハンズオンを行っていただきました。今回、参加者も多くいらっしゃいましたので、サポートするソリューションアーキテクトも6名で対応させていただきました。 今回参加できなかった方も、ソリューションアーキテクトのサポートを受けながらハンズオンを行いログ分析を初めてみてはいかがでしょうか?   次回は真夏の7月に開催予定です。ご参加お待ちしております。    

Read More

AWSジャパン ソリューションアーキテクト新卒向け短期インターンシップ紹介

こんにちは。2019 年 4 月に新卒として入社いたしました、アマゾン ウェブ サービス ジャパン株式会社 (AWSジャパン) アソシエイトソリューションアーキテクトの岩井泰児です。AWSジャパンでは 2019 年夏に Solutions Architect (SA) と Cloud Support Engineer (CSE) の新卒向け短期インターンシップを開催します。今回の記事では昨年度 AWSジャパンで行われた SA 短期インターンシップについてご紹介します。   Amazon のウェブサイトを自分が設計するとすれば、どのようなインフラストラクチャーを構築すればよいでしょうか? 全世界にスケール。数億人規模のユーザー。とてつもない技術的な困難が予期されます。  

Read More

[AWS Black Belt Online Seminar] Amazon Simple Email Service (SES) 資料及び QA 公開

先日 (2019/5/21) 開催しました AWS Black Belt Online Seminar「Amazon Simple Email Service (SES)」の資料を公開しました。当日、参加者の皆様から頂いた QA の一部についても共有しております。 20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES) from Amazon Web Services Japan AWS クラウドサービス活用資料集(すべての過去資料が閲覧できます) Q. 一般的に、SPF、DKIMやそれらに基づいたDMARC準拠を実施すれば、メールのセキュリティ対策としては十分なのでしょうか。 A. 大事なのは相手先メールサービスも関係しているいうことです。どれがいいのか?これで十分なのか? ではなく、やれることは全てやっておいた方がより安定する可能性があるということです。 SPF, DKIM, DMARC だけに限りません。 Q. SESのバウンス例はバウンス処理をする為にあの構成を組まないといけないということですか? A. あくまでバウンス処理の構成例となります。必ずそのような構成にしなければならないわけではありません。お客様がバウンス処理を実装する際のお役に立てればと思います。 Q. SES での受信メールにLambdaをアクションさせています。大量mailを受信したとき、S3への書き込みやLambdaのスロットリングエラーが発生した時は、何のErrorで確認できますか ? また、Error リトライはどうなりますか ? A. CloudWatch […]

Read More

AWS DeepRacer League のストックホルムの入賞者からレースのヒントをもらい、さらに AWS DeepRacer TV のご紹介をします!

AWS DeepRacer League は、世界初のグローバル自走型レーシングリーグです。世界各地で 21 の AWS Summits レースと Amazon の厳選されたイベントが開かれているほか、オンラインで毎月仮想レースが開催され、レースが行われています。世界のどこにいようと、そしてスキルレベルに関係なく、リーグに参加することができます。AWS DeepRacer のレーシングカーをゲットし、レースで優勝して re:Invent 2019 旅行を勝ち取りましょう (費用は全額こちらで負担いたします)。そして AWS DeepRacer チャンピオンカップで競い合いましょう。 AWS DeepRacer レーサーになる 今週、Summit Circuit がスウェーデンで開かれ、シーズンも折り返し地点に突入し、競争はヒートアップしています。AWS Summit Stockholm でのレースも刺激的でした。表彰台に上った 3 人のレーサーがリーグに参加するためにサミットにやって来たのです。 第 3 位は Charlie で、5 月 8 日にロンドンで開催された AWS Summit にも参戦しました。トップ 10 でフィニッシュしたことで AWS DeepRacer レーシングカーを勝ち取りましたが、ストックホルムに来てもう一度勝利してみたかったのです。ロンドンでは彼は 9.7 秒のタイムで、首位からわずか 0.8 秒遅れただけでした。自分のモデルにもう少しトレーニングを行ったことで、彼は 9.5 秒のタイムをたたき出し、ストックホルムで第 3 位を獲得することができました。2 […]

Read More
Weekly AWS

週刊AWS – 2019/5/20週

みなさん、こんにちは。AWSソリューションアーキテクトの下佐粉(しもさこ)です。 復活した 週刊AWS 第二回をお送りします。このシリーズでは、毎日のようにリリースされるAWSの新機能や新サービスを一週間単位でコンパクトに紹介しています。毎週火曜か水曜ぐらいを目処に更新していく予定です。 最近急に暑くなってきましたが、私達は目前に迫ってきたAWS Summit Tokyoと、AWS Summit Osakaの準備にバタバタとした日を過ごしています。では暑さにめげず、先週(5/20週)の主なアップデートについて振り返っていきましょう。

Read More

Amazon Connectのスケジュールされた レポートを自動的に送信する

コンタクトセンターではデータが重要です。 スーパーバイザとマネージャは、レポートを使用して、チームのパフォーマンスを確認し、要員配置の計画を立てます。 必要なときに必要なデータを人々に提供することは不可欠です。 このブログ記事では、レポートの生成を有効にしてEメールで自動的にユーザーに送信する方法について説明します。 以下のサービスを使用します。 Amazon S3 AWS Lambda Amazon SES Amazon CloudWatch with Amazon Connect このブログでは、 AWS CloudFormationを使用してデプロイを簡素化する方法についても説明します。 このブログのソリューションでは、 Amazon Connectのネイティブレポート機能を使用してレポートを設定およびスケジュールします。 そのスケジュール設定されたレポートは、Amazon Connectの設定で指定したS3バケットに作成されます。 レポートがS3に作成されると、Lambda関数を起動するイベントが発生します。 Lambda関数はイベントを読み取り、S3からレポートを取得して、指定されたEメールアドレスに送信します。 すべてのアクティビティは追跡目的でCloudWatchに記録されます。 では始めましょう。 このセットアップを完了するには、次のものが必要です。 アクティブなAWSアカウント us-east-1(バージニア北部)またはus-west-2(オレゴン)のいずれかにあるAmazon Connectインスタンス。 Amazon SESはこれらのAmazon Connectリージョンでのみ使用可能であるため、この設定ではこれら2つのリージョンのみがサポートされています。 インスタンスを作成したら、電話番号を取得します。 詳細については、Amazon Connect の使用開始を参照してください。 あなたのアカウントに設定されたAmazon SES。 このソリューションでは、Amazon SESを使用してレポートを指定の受信者にEメールで送信します。 SESを使用してEメールを送信するには、送信元アドレスを確認して、自分が所有者であることを示します。 サンドボックスにいる場合は、 送信先アドレスも確認する必要があります。 あなたは、Eメールアドレスまたはドメイン全体を確認することができます。 検証プロセスについては、Amazon SES のIDの検証を参照してください。 アカウントをサンドボックスから削除する方法については、Amazon SES サンドボックスの外への移動を参照してください。 このCloudFormationテンプレートを実行するための適切なIAM権限。 これには、IAMロールとLambda関数を作成する権限が含まれます。 […]

Read More

機械学習と Amazon SageMaker ノートブックを使用したデータウェアハウステーブルの探索

あなたは、機械学習 (ML) 環境で探索したいデータウェアハウステーブルを持つデータサイエンティストですか? もしそうなら、読んでください。 この記事では、データウェアハウスに保存され、Amazon SageMaker ノートブックから AWS Glue データカタログでカタログ化されている大規模データセットに対して探索的分析を実行する方法を紹介します。Amazon SageMaker で実行されている Jupyter ノートブックから企業データウェアハウス内のデータセットを特定して探索する方法について詳しく説明します。Amazon Redshift から Amazon EMR に興味深い情報を抽出し、そこでさらに変換する方法を示します。そうすると、すべてシームレスな体験として、ノートブックのデータを分析して視覚化し続けることができます。 この記事は、以下の以前の記事を基にしていますので、最初にその記事を確認することをお勧めします。 Amazon EMR で Spark によってサポートされる Amazon SageMaker ノートブックを作成する Amazon S3 のデータを AWS Glue データカタログで管理し、Amazon SageMaker ノートブックから利用する方法 Amazon SageMaker の概要 Amazon SageMaker は、フルマネージド ML サービスです。Amazon SageMaker を使用することで、データサイエンティストや開発者は、ML モデルを迅速かつ容易に構築、トレーニングすることができます。また、用意したモデルを実稼動も可能なホステッド環境に直接デプロイすることもできます。Amazon SageMaker には Jupyter のオーサリング環境が統合されており、データサイエンティストの初期のデータ探索や分析、モデル構築に便利です。 課題は、対象となるデータセットを見つけることです。データがデータウェアハウスにある場合は、関連する情報のサブセットを抽出し、それを Jupyter ノートブックにロードして詳細な探索やモデリングを行います。個々のデータセットが大きくなり、数が増えるにつれて、対象となる可能性があるすべてのデータセットを抽出し、ノートブックにロードしてマージすると、実用的ではなくなり生産性が低下します。こうした種類のデータの組み合わせや探索に、データサイエンティストは最大 80% […]

Read More