<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Atsushi Sugawa &#8211; uxmeetsdata.com</title>
	<atom:link href="https://uxmeetsdata.com/author/a-sugawa/feed/" rel="self" type="application/rss+xml" />
	<link>https://uxmeetsdata.com</link>
	<description>UXとデータによる価値創発メディア</description>
	<lastBuildDate>Mon, 03 Jun 2024 07:01:52 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<item>
		<title>UXモデリング入門 #04</title>
		<link>https://uxmeetsdata.com/ux-modeling-howto-04/</link>
				<pubDate>Sat, 31 Aug 2019 11:00:57 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[UX Modeling]]></category>
		<category><![CDATA[Association Analysis]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[UX Modeling]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=13875</guid>
				<description><![CDATA[アソシエーションルールを可視化。 Cloud DatalabにてCSPADEアルゴリズムの拡張モジュールである...<p class="more-link"><a href="https://uxmeetsdata.com/ux-modeling-howto-04/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm-e1570601392622-1024x512.jpeg" alt="" class="wp-image-13638" width="480" height="240"/></figure></div>



<h2><strong>アソシエーションルールを可視化。</strong></h2>



<p>Cloud DatalabにてCSPADEアルゴリズムの拡張モジュールであるpycspadeを用いて作成したアソシエーションルールを、BigQueryに書き出し、Tableauで可視化しながら系列パターンの分析を行います。</p>



<p>まずは前回の続きで、以下のコードを入力エリアに記述し、実行してみましょう。なお「to_gbq」関数の引数には、アソシエーションルールを格納したデータフレーム、書き込み先のテーブル名、GCPのプロジェクトIDを指定します。</p>



<script src="https://gist.github.com/crosshack/7b4915bfb6c405d5fd4b6ee1629124da.js"></script>



<p>なお、BigQueryへの書き出しがうまく行かない場合は、以下のコードでCSVファイルに書き出し、GCS（Google Cloud Storage）経由でBigQueryに取り込みます。</p>



<script src="https://gist.github.com/crosshack/df742ab8d9af0405f3543b8b87ef1755.js"></script>



<p>以下のように、BigQueryのデータセット「XM」の中に「sum_rules_spm」というテーブルが作成されていることを確認します。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4a-1024x546.png" alt="" class="wp-image-13889" width="480" height="256" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4a-1024x546.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4a-300x160.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4a-768x409.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p>続いて、テーブル「sum_rules_spm」をTableauに取り込んで分析します。Tableau Desktopであれば、スタート画面の［接続］にあるメニュー［Google BigQuery］から選択するだけでシームレスに連携できます。Tableau Publicであれば、GCS（Google Cloud Storage）経由でCSVファイルとしてエクスポートしてから取り込みます。</p>



<p>Tableauへの取り込みが完了したら、以下の手順でクロス集計表を作成し、アソシエーションルールを可視化します。</p>



<ol><li>フィールドの「Sequence」を［行］、「Confidence」を［列］シェルフにそれぞれドラッグ＆ドロップ。</li><li>フィールドの「Confidence」を［マーク］カードの［色］にドラッグ＆ドロップ。</li><li>右上に表示される「合計（Confidence）」カードの右上の▼のメニューで［色の編集…］を選択。</li><li>［色の編集］モーダルで［ステップド カラー］チェックをオン、［詳細］ボタン押下で表示される［中央］チェックをオンに設定。</li><li>フィールドの「Confidence」「Support」「Lift」を順に［マーク］カードの［テキスト］にドラッグ＆ドロップ。</li><li>フィールドの「Confidence」「Support」「Lift」のそれぞれについて、ピルの右端の▼のメニューで［フィルタを表示］を選択。</li></ol>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4b-1024x594.png" alt="" class="wp-image-13894" width="480" height="278" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4b-1024x594.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4b-300x174.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4b-768x445.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<h2><strong>系列パターンを分析する。</strong></h2>



<p>では、この表をもとに系列パターンを分析してみましょう。「<a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門 #01</a>」でも触れたとおり、アソシエーションルールの指標の中でも、<strong>信頼度（Confidence）</strong>は、<strong>商品Xを購買した顧客が商品Yも購買する確率</strong>のことで、事象間の相関性を分析する基本指標となります。</p>



<p>一方で、前回に述べたとおり、リフトは1を下回ると負の影響力を意味するため、予め除外するのが通例ですが、pycspadeでは閾値設定ができないため1未満の系列パターンも含まれてしまっています。そこでリフトを1以上としてフィルタをかけます。右側の「合計（Lift）」フィルタの左側の最小値設定を1.0に変更すると、以下のように表示が切り替わります。ただし、初期ビューで見えている系列パターンはすべてリフトが1以上であるため、初期ビューの表示自体は変わりません。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4c-1024x594.png" alt="" class="wp-image-13898" width="480" height="279" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4c-1024x594.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4c-300x174.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4c-768x445.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p>信頼度の降順に見ていくと、まず最後に商品カテゴリIDが「9」すなわち「エレクトロニクス・コンピューター」を購買しているパターンが多いことが一目瞭然となります。さらに、その前に「4」すなわち「家庭・ガーデニング用品」を購買しているパターンが多いこともわかります。</p>



<p>これらの原因はわかりませんが、とにかくこのパターンで購買商品カテゴリが変化している購買行動パターンが多いという事実が可視化され、把握することが可能となるわけです。</p>



<h2><strong>対象ユーザーを抽出して観察。</strong></h2>



<p>最後に、獲得した行動パターンに基づいて、観察対象とする<strong>ユーザーを抽出し、行動を観察</strong>します。すなわち<strong>データエスノグラフィ（Data Ethnography）</strong><sup id="footnote_plugin_tooltip_1" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_1');">1)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_1"><a href="https://uxmeetsdata.com/data-ethnography/">データエスノグラフィって？</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_1").tooltip({		tip: "#footnote_plugin_tooltip_text_1",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>を行うわけです。UXモデリングにより獲得したモデルは、あくまで機械的に抽出された行動パターンに過ぎません。ユーザーの行動の因果関係を把握し、意思決定プロセスを理解するには、やはり一人ひとりの行動データをミクロ視点で観察し、時系列に追う必要があります。UXモデリングはそれを効率化する手法という位置付けです。</p>



<p>とはいえ、抽出したパターンに一対一で紐づく会員のリストを得ることができないため、系列パターンに含まれる商品カテゴリを購買履歴に含む会員を抽出し、その中からサンプリングしつつ観察するというアプローチをとることにします。</p>



<p>指定した商品カテゴリを購買履歴に含む会員を抽出しやすいようにデータを加工します。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。また、このクエリ結果をデータセット「XM」に「sum_orders_ptn」という名前で保存します。</p>



<script src="https://gist.github.com/crosshack/0f8f2e4782dc1b00202c6783d3ce8e86.js"></script>



<p>続いて、テーブル「sum_orders_ptn」をTableauに取り込んでデータエスノグラフィをします。ワークシート編集画面で「A00_member_id」を［行］、「C01_frequency」「C02_monetary」を［列］、「C00_rank」を［フィルター］と［色］に、それぞれドラッグ＆ドロップすると、データエスノグラフィ環境の構築は完了です。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4d-1024x593.png" alt="" class="wp-image-13914" width="480" height="277" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4d-1024x593.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4d-300x174.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4d-768x445.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p>ここで、さきほどの系列パターン分析で注目した、商品カテゴリ「4」と「9」を含む会員IDを抽出して行動データを観察できるようにします。それには「D00_category_ptn」をフィルターに追加し、［フィルターの編集］から［フィルター］モーダルを立ち上げ、［条件］タブの［式設定］にて、以下のフィルター条件を指定します。なおこれは、「D00_category_ptn」カラムに「4」と「9」のどちらも含む会員IDに絞り込むことを意味します。</p>



<pre class="wp-block-preformatted">CONTAINS([D00_category_ptn],'4') 
AND CONTAINS([D00_category_ptn],'9')</pre>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4e-899x1024.png" alt="" class="wp-image-13915" width="320" height="363"/></figure></div>



<p>絞り込まれた会員IDから任意に選んで、実際の購買履歴データを見てみましょう。例えば会員ID「16360」の会員の購買履歴はこのようになっています。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4f-1024x426.png" alt="" class="wp-image-13916" width="480" height="199" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4f-1024x426.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4f-300x125.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_4f-768x320.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p>確かに「家庭・ガーデニング用品」関連商品の購入から始まり、次の訪問時に「エレクトロニクス・コンピューター」関連商品の購入をしています。さらにサブカテゴリを見ると、「カー・エレクトロニクス」関連商品が共通項として見られます。またその二年後には「赤ちゃん向けおもちゃ」関連商品を購入しています。このあたりにライフステージの変化のヒントがあるように考えられます。</p>



<p>このようにUXモデリングは、大量のデータから、<strong>系列パターンというシンプルなユーザー行動モデルを機械的に抽出</strong>し、<strong>観察すべきユーザーの絞り込みを効率化する手法</strong>であることを理解してもらえたのではないかと思います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>UXモデリング入門 #03</title>
		<link>https://uxmeetsdata.com/ux-modeling-howto-03/</link>
				<pubDate>Fri, 30 Aug 2019 11:00:39 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[UX Modeling]]></category>
		<category><![CDATA[Association Analysis]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[UX Modeling]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=13808</guid>
				<description><![CDATA[モデリング用のデータを準備。 まずはBigQueryでモデリング用のテーブルを作成します。なお、ここでは系列パ...<p class="more-link"><a href="https://uxmeetsdata.com/ux-modeling-howto-03/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm-e1570601392622-1024x512.jpeg" alt="" class="wp-image-13638" width="480" height="240"/></figure></div>



<h2><strong>モデリング用のデータを準備。</strong></h2>



<p>まずはBigQueryでモデリング用のテーブルを作成します。なお、ここでは<strong>系列パターンマイニング（Sequential Pattern Mining：SPM）</strong>の代表的なアルゴリズムである<strong>CSPADE</strong>を使用しますが、それには<strong>会員IDと購買単位ごとの購買商品カテゴリIDの配列をもつテーブル</strong>が必要になります。購買単位とは一回の購買を意味し、通常は買い物かごを指しますが、今回のデータには買い物かごに相当するものが存在しないため、同じ日付の購買を一回の購買とみなすことにします。</p>



<p>また、今回の商品マスタには商品カテゴリIDに相当するものが存在しないため、以下のようにIDを定義して付与します。なお、IDは本来は整数で扱うべきですが、後ほど使用するPythonのデータ分析用拡張モジュールである「<strong>pandas</strong>」においてBigQueryデータの読み込みがうまく処理されないため、文字列で定義します。</p>



<table style="table-layout: fixed; width: 100%;">
<tr style="color: #fff; background-color: #000;">
<td style="width: 100px;">商品カテゴリID</td>
<td style="width: 200px;">商品カテゴリ名</td>
</tr>
<tr>
<td style="background-color: #eee;">1</td>
<td>ファッション・ジュエリー</td>
</tr>
<tr>
<td style="background-color: #eee;">2</td>
<td>おもちゃ・子供・赤ちゃん</td>
</tr>
<tr>
<td style="background-color: #eee;">3</td>
<td>スポーツ・アウトドア</td>
</tr>
<tr>
<td style="background-color: #eee;">4</td>
<td>家庭・ガーデニング用品</td>
</tr>
<tr>
<td style="background-color: #eee;">5</td>
<td>美容・健康・食料品</td>
</tr>
<tr>
<td style="background-color: #eee;">6</td>
<td>本・聞く本</td>
</tr>
<tr>
<td style="background-color: #eee;">7</td>
<td>自動車・工業</td>
</tr>
<tr>
<td style="background-color: #eee;">8</td>
<td>映画・音楽・ゲーム</td>
</tr>
<tr>
<td style="background-color: #eee;">9</td>
<td>エレクトロニクス・コンピューター</td>
</tr>
</table>



<p>BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。</p>



<script src="https://gist.github.com/crosshack/ec305467b8af7ab09b57362dbd7c09f2.js"></script>



<p>なお、処理の効率化のために<strong>10%のサンプリング</strong>をしていますが［※1］、これは会員IDを10で割った剰余が0の場合に限定するという意味です。また、<strong>欠損</strong>を除外するために性別がNULLでない会員に限定し［※2］、年齢の<strong>異常値</strong>を除外するために10歳以上90歳未満の会員に限定しています［※3］。さらに、<strong>時系列データの開始と終了の問題</strong>を解決するために、初回購買日が2006年1月以後かつ最終購買日が2012年12月以前の会員に限定しています［※4］。</p>



<p>すると、以下のスキーマのテーブルが出力結果で表示されるので、それをデータセット「XM」に「sum_visits」という名前で保存します。</p>



<table style="table-layout: fixed; width: 100%;">
<tr style="color: #fff; background-color: #000;">
<td>フィールド名</td>
<td>概要</td>
<td>タイプ</td>
</tr>
<tr>
<td style="background-color: #eee;">member_id</td>
<td>会員ID</td>
<td>整数</td>
</tr>
<tr>
<td style="background-color: #eee;">visit_id</td>
<td>訪問ID</td>
<td>整数</td>
</tr>
<tr>
<td style="background-color: #eee;">category_id</td>
<td>商品カテゴリID</td>
<td>文字列の配列</td>
</tr>
</table>



<h2><strong>モデリング用の実行環境を準備。</strong></h2>



<p>続けて、Cloud DatalabでSPMによるアソシエーションルールを作成するための実行環境を準備します。とはいえCloud Datalabには、GCP（Google Cloud Platform）との連携や、メジャーなデータ分析・機械学習系の拡張モジュールがあらかじめインストールされているため、多くはインポートするだけです。</p>



<p>まずはデータ分析用の拡張モジュールである「<strong>pandas</strong>」をインポートします。これはBigQueryから取り込んだ分析用テーブルをデータブレームで操作するためですが、同時にBigQueryとの直接クエリによる連携も可能となります。</p>



<p>また、ここでは<strong>SPM</strong>の代表的なアルゴリズムである<strong>CSPADE</strong>のPython向け拡張モジュールである「<strong>pycspade</strong>」を使用しますが、Cloud Datalabにはインストールされていないため、追加インストールを行います。</p>



<p>ここまでの拡張モジュールの準備は、以下のコードで行うことが可能です。入力エリアに記述し、実行してみてください。</p>



<script src="https://gist.github.com/crosshack/35a7b3b19145aca9d620072bd724d3b2.js"></script>



<p>拡張モジュールの準備が完了したら、BigQueryで作成した分析用テーブルを取り込みます。それには「read_gbq」関数を使い、引数にBigQueryのクエリを実行するSQL文とGCPのプロジェクトIDを指定します。以下のコードを入力エリアに記述し、実行してみてください。</p>



<script src="https://gist.github.com/crosshack/43e96c47035b19946d1304a84f70ce55.js"></script>



<p>なお、商品カテゴリIDについては、先述の理由で文字列型で設定していましたが、ここで整数型に変換します。これでSPMによるアソシエーションルールを抽出するためのデータおよび環境が整いました。</p>



<h2><strong>アソシエーションルールを作成。</strong></h2>



<p>では、<strong>CSPADEアルゴリズム</strong>の拡張モジュールである<strong>pycspade</strong>を用いて、系列パターンのアソシエーションルールの作成を行います。プログラム内容の詳細な説明はここでは割愛しますが、以下のようなコードで実現できます。入力エリアに記述し、実行してみてください。</p>



<script src="https://gist.github.com/crosshack/c93aca6e68a82933db59fd010d23c335.js"></script>



<p>なお、<strong>アソシエーションルール（Association Rule）</strong>の詳細の説明は「<a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門 #01</a>」に譲りますが、簡単に言えば「商品Xを購入した顧客は商品Yも購入している」といった規則性のことで、信頼度・支持度・リフトの三つの指標を使うのが一般的です。</p>



<p><strong>信頼度（Confidence）</strong>は、<strong>商品Xを購買した顧客が商品Yも購買する確率</strong>のことで、併売戦略やレコメンデーションにむけた分析の基本指標となります。</p>



<p><strong>支持度（Support）</strong>は、<strong>全体の購買の中で商品Xと商品Yのどちらも購買される確率</strong>のことで、補足指標となります。仮に、商品Xを購買した顧客が商品Yも購買する確率（信頼度）が80%だったとしても、商品Xと商品Yのいずれも購買した顧客が全体の1%にも満たない場合、統計的な信頼性が低いだけでなく、それをもとに併売戦略を立てたところでビジネス的に意味はありません。そこで補足指標として支持度を用います。</p>



<p><strong>リフト（Lift）</strong>は、<strong>全体の購買の中で商品Yが購買される確率</strong>に対する商品Xを購買した顧客が商品Yも購買する確率（<strong>信頼度</strong>）の割合のことで、こちらも補足指標となります。仮に、商品Xを購買した顧客が商品Yも購買する確率（信頼度）が80%だったとしても、そもそも商品Yが購買される確率が80%であれば、商品Xの購買が商品Yの購買に与える影響力を説明することはできません。そこで補足指標としてリフトを用います。</p>



<p>ところで、分析作業の効率化のために、リフトが閾値（1が一般的）を下回る組み合わせは、事前に分析対象から除外するのが慣例ですが、pycspadeではリフトの閾値設定ができません。一方で、支持度の閾値設定は可能であるため「0.05」を指定しています。</p>



<p>最後の行の「df_table」というデータフレーム型の変数に、作成したアソシエーションルールが格納されています。入力エリアに「df_table」と記述して実行してみましょう。すると以下のような表が出力されます。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_3a.png" alt="" class="wp-image-13862" width="240" height="264" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_3a.png 632w, https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm_3a-272x300.png 272w" sizes="(max-width: 240px) 100vw, 240px" /></figure></div>



<p>上表の列「Sequence」は系列パターンすなわち購買商品カテゴリの時系列パターン、「Confidence」は信頼度、「Support」は支持度、「Lift」はリフトとなります。例えば、Sequenceが「(7)-(9)」とは、「自動車・工業」関連商品を購入後に、「エレクトロニクス・コンピューター」関連商品を購入した、という系列パターンであり、その信頼度・支持度・リフトは、それぞれ「0.38308」「0.090715」「0.976826」という意味になります。この状態でもアソシエーションルールの一部は見てとれますが、より分析をしやすくするためにTableauで可視化することにします。</p>



<p>次回は、作成したアソシエーションルールをBigQueryに書き出し、Tableauで可視化しながら、系列パターンの分析と、観察対象とする<strong>ユーザーの抽出と行動観察</strong>を行います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>UXモデリング入門 #02</title>
		<link>https://uxmeetsdata.com/ux-modeling-howto-02/</link>
				<pubDate>Thu, 29 Aug 2019 11:00:17 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[UX Modeling]]></category>
		<category><![CDATA[Association Analysis]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[UX Modeling]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=13746</guid>
				<description><![CDATA[SPMによるUXモデリング。 頻出する事象の組み合わせを抽出する手法を総称して頻出パターンマイニング（Freq...<p class="more-link"><a href="https://uxmeetsdata.com/ux-modeling-howto-02/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm-e1570601392622-1024x512.jpeg" alt="" class="wp-image-13638" width="480" height="240"/></figure></div>



<h2><strong>SPMによるUXモデリング。</strong></h2>



<p>頻出する事象の組み合わせを抽出する手法を総称して<strong>頻出パターンマイニング（Frequent pattern mining）</strong>といいます。その代表的な手法が<strong>アソシエーション分析（Association Analysis）</strong><sup id="footnote_plugin_tooltip_1" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_1');">1)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_1"><a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_1").tooltip({		tip: "#footnote_plugin_tooltip_text_1",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>であり、「商品Xを購買した顧客は商品Yも購買している」というような向きのある相関関係を得られることが特徴ですが、一方で時系列的な順序が考慮されないという欠点があります。</p>



<p>アソシエーション分析の一種である<strong>バスケット分析（Basket Analysis）</strong>は、文字通り同じ買物かごに含まれる商品の組み合わせのパターンを分析する手法ですが、このように&#8221;<strong>同時</strong>&#8220;に発生する事象については問題ないものの、複数回の買物で購買商品がどのように推移したかというような、時系列の概念を含むパターンを分析することには向かないわけです。</p>



<p>そこで、時系列を考慮した頻出パターンマイニングである<strong>系列パターンマイニング（Sequential Pattern Mining：SPM）</strong>が、1995年にIBM研究所のR.AgrawalとR.Srikantによって提唱されました。また、このSPMがUXモデリングの比較的簡単なアプローチのひとつとして適用可能であることは、前回の「<a href="http://ux-modeling-howto-01">UXモデリング入門 #01</a>」で説明した通りです。</p>



<p>そこで今回は、SPMを使ったUXモデリング実践の入門編をご紹介したいと思います。なお、分析ツールは<strong>Google BigQuery</strong>、<strong>Tableau Desktop</strong>、<strong>Google Cloud Datalab</strong>の三つを用いて進めます。それぞれについては「<a href="https://uxmeetsdata.com/bigquery-sql-01/">BigQueryではじめるSQL</a>」「<a href="https://uxmeetsdata.com/tableau-bi-01/">TableauではじめるBI</a>」「<a href="https://uxmeetsdata.com/association-howto-02/">アソシエーション分析入門 #02</a>」を参照してください。</p>



<h2><strong>UXモデリングの手順。</strong></h2>



<p>UXモデリングは以下の手順で進めます。</p>



<ol><li>分析の<strong>背景の整理</strong>と<strong>目的の明確化</strong></li><li><strong>データ準備</strong>と<strong>基礎分析</strong></li><li>行動パターンの<strong>モデリング</strong></li><li>対象ユーザーの<strong>抽出と観察</strong></li></ol>



<p>データ分析に限らず、何らかの課題解決をするには、まずその<strong>背景を整理し、目的を明確化する</strong>必要があります。当たり前の話ですが、失敗するデータ分析の多くは、ここをあいまいにしたまま、<strong>とにかく何らかの有用な知識を獲得したい</strong>という思いのみで行われており、時間とコストを浪費する結果となっています。</p>



<p>またデータは「存在する」状態と「分析できる」状態では全く異なります。そして多くのデータは分析することを目的に収集されておらず、そもそも<strong>構造化されていない</strong>、あるいは<strong>欠損・異常値・表記揺れ</strong>（同義だが異句の状態）を含むこともあります。それらを加工し「分析できる」状態にすることを<strong>データ準備（Data Preparation）</strong>といいます。</p>



<p>さらに、あまねく全てのデータを準備することはできないため、必然的に<strong>選択</strong>が行われ、<strong>偏り</strong>が必ず発生します。これを<strong>選択バイアス（Selection Bias）</strong>といいます。例えば、プリペイドカードの購買履歴には、カードの入金額の上限を超える高額商品の購買履歴がそもそも含まれていません。おそらくクレッジトカードなどの他の決済手段で購買しているのでしょう。このような偏りのあるデータで無邪気にRFM分析などを行うと、<strong>ミスリード（Misslead）</strong>を起こします。</p>



<p>選択バイアスを無くすことが理想ですが、現実には不可能であるため、データの全体像を俯瞰して<strong>分布と偏り</strong>を把握し、分析を進める上での前提条件として捉えておくことが重要です。その作業を<strong>基礎分析（Basic Analysis）</strong>といいます。</p>



<p>ここまで完了してようやくUXモデリングが実施可能となります。今回はUXモデリングの比較的簡単なアプローチとして<strong>系列パターンマイニング（Sequential Pattern Mining：SPM）</strong>を用い、時系列を考慮したユーザーの典型的な行動パターンをモデリングします。</p>



<p>最後に、獲得した行動パターンに基づいて、観察対象とする<strong>ユーザーを抽出し、行動を観察</strong>します。すなわち<strong>データエスノグラフィ（Data Ethnography）</strong><sup id="footnote_plugin_tooltip_2" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_2');">2)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_2"><a href="https://uxmeetsdata.com/data-ethnography/">データエスノグラフィって？</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_2").tooltip({		tip: "#footnote_plugin_tooltip_text_2",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>を行うわけです。UXモデリングにより獲得したモデルは、あくまで機械的に抽出された行動パターンに過ぎません。ユーザーの行動の因果関係を把握し、意思決定プロセスを理解するには、やはり一人ひとりの行動データをミクロ視点で観察し、時系列に追う必要があります。UXモデリングはそれを効率化する手法という位置付けです。</p>



<h2><strong>購買商品の時系列変化を捉える。</strong></h2>



<p>では、UXモデリングの実践を進めて行きましょう。まずは分析の<strong>背景の整理</strong>と<strong>目的の明確化</strong>を行います。</p>



<p>今回は「<a href="https://uxmeetsdata.com/data-ethnography-howto-01/">データエスノグラフィ入門</a>」と連動し、総合ECサイトの会員の<strong>購買商品の時系列変化のパターン</strong>を捉え、優良化のヒントを獲得するという設定で進めます。分析対象データは、とある総合ECサイトの会員の購買履歴データとし、概要は以下のとおりです。</p>



<ul><li>種類：総合ECサイトの会員の購買履歴</li><li>期間：2005年1月〜2013年12月（9年間）</li><li>会員数：639,777人</li><li>購買数：7,599,650件（平均11.9件/人）</li></ul>



<p>データソースは以下の３つを使用します。なお、こちらはすでにBigQueryに投入済みとします。また、データセット名とテーブル名は任意ですが、ここでは「データエスノグラフィ入門」と合わせるため、データセット名を「DE」、テーブル名はファイル名をそのまま設定します。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>データソース</td>
<td>変数</td>
<td>ダウンロード</td>
</tr>
<tr>
<td style="background-color: #eee;">会員マスタ<br>mst_members</td>
<td>会員ID, 年齢, 性別, 居住地など</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/mst_members.csv">［↓］105MB﻿</td>
</tr>
<tr>
<td style="background-color: #eee;">商品マスタ<br>mst_products</td>
<td>商品ID, 商品カテゴリなど</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/mst_products.csv">［↓］53MB</td>
</tr>
<tr>
<td style="background-color: #eee;">購買履歴<br>trx_orders</td>
<td>会員ID, 商品ID, 注文日, 価格</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/trx_orders.csv">［↓］698MB</td>
</tr>
</tbody>
</table>



<p>これらのデータを使用し、<strong>ユーザーの購買商品の時系列変化の典型的なパターン</strong>をモデリングして行きます。なお、データ準備と基礎分析のプロセスは「<a href="https://uxmeetsdata.com/data-ethnography-howto-02/">データエスノグラフィ入門 #02</a>」と同様であるためここでは割愛し、次回は行動データのモデリングの実践を行います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>UXモデリング入門 #01</title>
		<link>https://uxmeetsdata.com/ux-modeling-howto-01/</link>
				<pubDate>Wed, 28 Aug 2019 11:00:56 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[UX Modeling]]></category>
		<category><![CDATA[Association Analysis]]></category>
		<category><![CDATA[Data Mining]]></category>
		<category><![CDATA[UX Modeling]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=13639</guid>
				<description><![CDATA[行動パターンを発見する。 ユーザーの行動データから、購買の意思決定プロセスを把握したい、あるいは、思いもよらな...<p class="more-link"><a href="https://uxmeetsdata.com/ux-modeling-howto-01/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/10/xmd_xm-e1570601392622-1024x512.jpeg" alt="" class="wp-image-13638" width="480" height="240"/></figure></div>



<h2><strong>行動パターンを発見する。</strong></h2>



<p>ユーザーの行動データから、購買の<strong>意思決定プロセス</strong>を把握したい、あるいは、<strong>思いもよらないニーズ</strong>を発見したい。多くのマーケターやビジネスパーソンにとって、それはデータ活用におけるもっとも重要な関心ごとのひとつでしょう。</p>



<p>あるコンテンツXの閲覧（事象X）と、ある商品Yの購買（事象Y）には、強い共起性があるから、事象Yの意思決定に事象Xがなんらか関与している可能性が高いのではないか。そのような分析はよく行われることと思います。</p>



<p>一方で、<strong>事象Xと事象Yの因果関係</strong>の説明は難しい問題です。事象Xによる気持ちの変化があったから事象Yにいたったのか、最初から事象Yが起こることは決まっていて、たまたま事象Xをしただけなのかが判別しづらいからです。</p>



<p>因果関係を説明するには、まず<strong>時間の関係</strong>を把握することが必要です。当たり前ですが、原因と結果の前後が入れ替わることはありません。また、事象Xと事象Yの間に大きな時間の隔たりがある場合は因果関係を説明しづらくなります。加えて、<strong>事象Xが事象Yの発生に影響を与えている</strong>ことも重要です。事象Xの有無に関わらず事象Yが起こるのであれば、因果関係は説明しづらくなります。</p>



<p>ユーザーの行動の因果関係を把握し、意思決定プロセスを理解するのに、一人ひとりの行動データをミクロ視点で観察し、時系列に追う<strong>データエスノグラフィ（Data Ethnography）</strong><sup id="footnote_plugin_tooltip_1" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_1');">1)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_1"><a href="https://uxmeetsdata.com/data-ethnography/">データエスノグラフィって？</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_1").tooltip({		tip: "#footnote_plugin_tooltip_text_1",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>という手法が有用であることは「<a href="https://uxmeetsdata.com/data-ethnography/">データエスノグラフィって？</a>」でも触れたとおりです。とはいえ、大量のデータから観察すべきユーザーを特定し、典型的な行動パターンを見つけることは容易ではありません。</p>



<h2><strong>シンプルな行動モデルを取り出す。</strong></h2>



<p>そこで、大量のデータから<strong>ユーザーの行動モデルを機械的に取り出す</strong>手法が有効となります。<a href="https://www.crosshack.jp">クロスハック</a>ではこれをUXモデリング（UX Modeling）<sup id="footnote_plugin_tooltip_2" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_2');">2)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_2"><a href="https://uxmeetsdata.com/ux-modeling/">UXモデリングって？</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_2").tooltip({		tip: "#footnote_plugin_tooltip_text_2",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>と呼んでいます。</p>



<p>大量データをモデリングする手法として真っ先に思いつくのは、<strong>機械学習（Machine Learning）</strong><sup id="footnote_plugin_tooltip_3" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_3');">3)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_3"><a href="https://uxmeetsdata.com/machine-learning/">いまさら聞けない機械学習</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_3").tooltip({		tip: "#footnote_plugin_tooltip_text_3",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>でしょう。とりわけ<strong>深層学習（Deep Learning）</strong><sup id="footnote_plugin_tooltip_4" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_4');">4)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_4"><a href="https://uxmeetsdata.com/deep-learning/">いまさら聞けない深層学習</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_4").tooltip({		tip: "#footnote_plugin_tooltip_text_4",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>は、特徴表現を自動的に行うため、大量データのモデリングには極めて有効です。</p>



<p>一方で、「<a href="https://uxmeetsdata.com/ux-modeling/">UXモデリングって？</a>」でも触れたとおり、深層学習には<strong>導出されたモデルが複雑化・ブラックボックス化する</strong>という欠点があります。複雑でブラックボックス化されたモデルは、解釈や説明ができません。解釈や説明ができないモデルは、ビジネスやデザインの意思決定に応用することができず、役に立ちません。UXモデリングでは、複雑なユーザー行動から<strong>解釈や説明をしやすいシンプルで汎用性のあるモデル</strong>を取り出すことが重要です。</p>



<h2><strong>時系列のアソシエーション分析。</strong></h2>



<p>ユーザーの行動データから行動パターンを取り出す手法の一つに、アソシエーション分析があります。<strong>アソシエーション分析（Association Analysis）</strong><sup id="footnote_plugin_tooltip_5" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_5');">5)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_5"><a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_5").tooltip({		tip: "#footnote_plugin_tooltip_text_5",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>は、事象Xと事象Yの事象間の相関性を分析する手法で、<strong>データマイニング（Data Mining）</strong><sup id="footnote_plugin_tooltip_6" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_6');">6)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_6"><a href="https://uxmeetsdata.com/data-mining/">再考するデータマイニング</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_6").tooltip({		tip: "#footnote_plugin_tooltip_text_6",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>の中核をなす分析手法のひとつです。</p>



<p>アソシエーション分析の詳細は「<a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門</a>」に譲りますが、簡単に言うと、それにより得られるのは<strong>向きのある相関関係</strong>です。向きのある相関関係とは、例えば「商品Xを購買した顧客は商品Yも購買している」というようなものです。ただし、これはあくまで相関関係であり、因果関係を証明するものではありません。しかしながら、これをきっかけに<strong>因果推論（Causal Inference）</strong><sup id="footnote_plugin_tooltip_7" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_7');">7)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_7"><a href="https://uxmeetsdata.com/causal-inference/">いまさら聞けない因果推論</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_7").tooltip({		tip: "#footnote_plugin_tooltip_text_7",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>や<strong>ベイズ推定（Bayesian Inference）</strong><sup id="footnote_plugin_tooltip_8" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_8');">8)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_8"><a href="https://uxmeetsdata.com/bayesian-inference/">いまさら聞けないベイズ推定</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_8").tooltip({		tip: "#footnote_plugin_tooltip_text_8",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>などを行うことで因果関係を明らかにする可能性が高まります。</p>



<p>ところで、アソシエーション分析は事象間の相関性を分析する手法の総称であり、特定の分析手法をさすものではありません。共起性に基づく分析手法が一般的ですが、他にも<strong>ニューラルネットワーク（Neural Network）</strong>などを用いたアプローチもあります。また、共起性に基づく手法の中でも最もよく利用されるものに<strong>アプリオリ（Apriori）</strong>というアルゴリズムがあります。「<a href="https://uxmeetsdata.com/association-howto-01/">アソシエーション分析入門</a>」では、このアプリオリ・アルゴリズムを使った分析方法を解説しました。</p>



<p>一方で、アプリオリ・アルゴリズムを中心とした一般的なアソシエーション分析では、時間の関係が無視されます。例えば「商品Xを購買した顧客は商品Yも購買している」というのは、時系列的に商品Xと商品Yのどちらが先かは問われず、また商品Xと商品Yの購買の時間間隔も考慮されていません。</p>



<p>冒頭でも述べたとおり、因果関係の説明には時系列的順序や時間間隔といった時間の関係が極めて重要な要素となります。また、時間の関係がわからないと、次に発生するユーザー行動を予測することができません。そこで、時間の概念を考慮したアソシエーション分析が必要となります。それを<strong>系列パターンマイニング（Sequential Pattern Mining：SPM）</strong>といいます。</p>



<p>そこで、この「UXモデリング入門」では、UXモデリングの比較的簡単なアプローチのひとつとして、このSPMを用いた手法をご紹介します。次回以降で、その具体的なプロセスに触れて行きます。</p>
]]></content:encoded>
										</item>
	<item>
		<title>いまさら聞けない音声AI</title>
		<link>https://uxmeetsdata.com/voice-ai/</link>
				<pubDate>Sat, 24 Aug 2019 11:00:06 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Data]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[Expert System]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12659</guid>
				<description><![CDATA[人が関与しないコミュニケーション。 2018年5月のGoogle I/Oで、音声アシスタント（Voice As...<p class="more-link"><a href="https://uxmeetsdata.com/voice-ai/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<h2><strong>人が関与しないコミュニケーション。</strong></h2>



<p>2018年5月のGoogle I/Oで、<strong>音声アシスタント（Voice Assistance）</strong>のGoogle Assistantの拡張サービスとして、電話代行サービスである<strong>Google Duplex</strong>が発表され、そこで行われたデモは世界に衝撃を与えました。それはAIが利用者に代わって飲食店や美容室に電話予約を入れるというもので、やりとりの音声だけを聞くと、どちらが人間かもわからないくらいに自然な会話となっており、従来の一問一答のものとは一線を画していることがわかります。</p>



<p>一方で、<strong>自動音声応答装置（Interactive Voice Response：IVR）</strong>による電話受付の自動化も進んでおり、近い将来、音声アシスタントとIVRによる<strong>人が関与しない通話コミュニケーション</strong>が実現するかもしれません。</p>



<p>このような新しいユーザー体験が実現する背景には、音声認識技術の進歩があります。そこで今回は、音声認識を中心としたテクノロジーや<strong>人工知能（Artifical Intelligence：AI）</strong>の、現在の動向や未来の可能性について言及しようと思います。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_voice_ai-e1566708646964-1024x512.jpeg" alt="" class="wp-image-12657" width="480" height="240"/></figure></div>



<h2><strong>隠れマルコフモデルによる音声認識。</strong></h2>



<p>そもそも<strong>音声認識（Voice Recognition）</strong>とは、人間が発する音声情報としての自然言語をコンピューターに認識させることであり、音声情報を文字情報に変換したり、発言者や発言内容の特徴をとらえて識別するなどの機能を実現します。</p>



<p>音声認識技術の歴史は長く、前回の「<a href="https://uxmeetsdata.com/voice-ui/">いまさら聞けない音声UI</a>」でも触れた通り、1960年代初期にIBM社により開発されたShoeboxがそのルーツだと言われています。それが消費者向けに商品化されたのはそこから約半世紀後のこと、Apple社が2011年に発売したiPhone 4Sに搭載された音声アシスタントのSiriがそれでしょう。ただし、当時は音声認識の精度が低く、実用にはまだ遠いものであったことも事実です。</p>



<p>それがここ数年で状況が大きく変化し、音声認識の精度は格段に上昇しました。それに伴い、前述のGoogle社のGoogle Assistantや、Amazon社のAlexaなど、大手IT各社の音声アシスタントが登場し、今なお発展と進化を続けています。その背景では、どのようなブレイクスルーが起きていたのでしょうか。</p>



<p>音声認識技術の本質は、空気の振動である音声からパターンや特徴を抽出し、発言者や発言内容を識別することにあります。その際、過去のデータから学習したモデルをもとに推論を行うわけですが、そこでは主に<strong>隠れマルコフモデル</strong>が利用されています。<strong>隠れマルコフモデル（Hidden Markov Model：HMM）</strong>とは、直前の結果のみから次の結果が確率的に求まるというマルコフ性を仮定して事象をモデル化する手法です。これにより、最後に発話された言語の要素から次に発話される言語の要素を確率的に推論することで認識精度を向上させることが可能となります。</p>



<p>ただし、この手法は<strong>確率に基づく推論モデルを事前に構築しておく</strong>必要があります。すなわち<strong>エキスパートシステム（Expert System）</strong><sup id="footnote_plugin_tooltip_1" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_1');">1)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_1"><a href="https://uxmeetsdata.com/expert-system/">再考するエキスパートシステム</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_1").tooltip({		tip: "#footnote_plugin_tooltip_text_1",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>でいう<strong>知識ベース（Knowledge Base）</strong>が必要であり、その構築には膨大な時間と労力を要します。</p>



<p>またそれゆえに、会議やプレゼンのような<strong>比較的正確な文法や標準的な語彙が使われるビジネス会話</strong>には対応できますが、<strong>文法的に崩されたりスラングが多用される日常会話</strong>に対応することが極めて難しいという欠点があります。</p>



<h2><strong>深層学習による音声認識。</strong></h2>



<p>その欠点を克服する技術として、いま急速に進化しているのが、深層学習による音声認識です。<strong>深層学習（Deep Learning）</strong><sup id="footnote_plugin_tooltip_2" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_2');">2)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_2"><a href="https://uxmeetsdata.com/deep-learning/">いまさら聞けない深層学習</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_2").tooltip({		tip: "#footnote_plugin_tooltip_text_2",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>は、人間の脳を模倣した<strong>多層ニューラルネットワーク（Deep Neural Network：DNN）</strong>を用いた機械学習の手法で、コンピューターが自ら特徴表現を行うことが最大の特長です。これにより、モデルの中身がブラックボックス化されるという欠点はあるものの、多用な文法表現や語彙表現に対応する推論モデルの構築が可能となり、日常会話のような自然な会話においても実用レベルになりつつあります。</p>



<p>深層学習により、音声認識の技術レベルは格段に上がりました。あとは多様なデータからモデルの多様性や精度を向上させたり、あるいは学習や推論にかかるコストを下げることでさらに実用性が向上していくものと思われます。これは音声認識技術そのもののブレイクスルーというよりは、例えば音声データのノイズを除去する技術や、音声データを高速に通信する技術などの周辺技術に依存するものと言えるでしょう。</p>



<p>とはいえ、ここでいう音声認識とはあくまで音声をパターンとして認識することであって、意味を理解するということではありません。現在のAIは「小さい子供の服」と言った場合に「小さい」が「子供」にかかるのか「服」にかかるのかを識別できません。人間であれば、慣習やそれまでの話の流れ、あるいは周囲の環境などの多様な情報からその意味を識別できます。</p>



<p>意味の理解については、音声認識だけではなくAI全体の課題であり、その実現に向けては越えるべき技術的な壁が多くあります。とはいえ、意味を理解するための背景や周辺の多様なデータは集まりつつあり、それを高速に学習する技術も向上しています。実現に向けて少しずつ近づいて行っていることは間違いないでしょう。</p>
]]></content:encoded>
										</item>
	<item>
		<title>いまさら聞けない音声UI</title>
		<link>https://uxmeetsdata.com/voice-ui/</link>
				<pubDate>Fri, 23 Aug 2019 11:00:12 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[IA]]></category>
		<category><![CDATA[UI]]></category>
		<category><![CDATA[UX Design]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12654</guid>
				<description><![CDATA[普及期にある音声UI。 Apple社のスマートスピーカーであるHomePodが日本にようやく上陸しました。これ...<p class="more-link"><a href="https://uxmeetsdata.com/voice-ui/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<h2><strong>普及期にある音声UI。</strong></h2>



<p>Apple社のスマートスピーカーであるHomePodが日本にようやく上陸しました。これにより、すでに一般家庭に普及しつつあるAmazon社のAmazon EchoとGoogle社のGoogle Homeと合わせて、IT大手３社のスマートスピーカーが出揃った形となります。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_voice_ui-e1566708575817-1024x512.jpeg" alt="" class="wp-image-12656" width="480" height="240"/></figure></div>



<p>スマートスピーカー市場は全世界で拡大を続けており、Voicebot社が米国の成人に対して実施した調査において、四人に一人が所有しているという結果が報告されています。日本での普及率は6%程度と言われており、まだこれからという感じですが、サービスの拡充とともに普及が進むものと思われます。2019年は後にスマートスピーカー元年と呼ばれるかもしれません。</p>



<p>また、スマートスピーカーの普及とあわせて<strong>音声UI</strong>の利用も進んでいます。Gartner社の調査によると、音声UIによる情報検索である音声検索が、2020年には全検索の30%に達するとのことです。かつてのPCの<strong>グラフィカルユーザーインターフェース（Graphical User Interface：GUI）</strong>やスマートフォンのタッチUIがそうであったように、音声UIには従来のUIの多くを置き換える可能性があります。</p>



<p>そこで、いまさら感はあるものの、<strong>音声UIとはそもそも何で、どのような特長があるのか</strong>について改めておさらいしつつ、<strong>未来の可能性</strong>について言及してみようと思います。なお、今回は<strong>ユーザーインターフェース（User Interface：UI）</strong>や<strong>情報設計（Information Architecture：IA）</strong>の視点にフォーカスするとし、テクノロジーや<strong>人工知能（Artifical Intelligence：AI）</strong>の視点は次回の「<a href="https://uxmeetsdata.com/voice-ai/">いまさら聞けない音声AI</a>」に譲るとします。</p>



<h2><strong>”ながら”を可能とする。</strong></h2>



<p><strong>音声UI（Voice User Interface：VUI）</strong>とは文字通り音声を基軸としたUIであり、人間が発する<strong>音声情報としての自然言語</strong>により機械を操作することを目的とします。</p>



<p>実は音声UIの歴史は長く、1960年代初期にIBM社により開発されたShoeboxがそのルーツだと言われています。とはいえこれは音声UIというよりは音声認識装置でしょう。音声を正しく認識することを目的としており、これにより機械を操作することを目的としていないからです。</p>



<p>音声UIとして明確に商品化されたのはそこから約半世紀後のこと、Apple社が2011年に発売したiPhone 4Sに搭載された音声UIのSiriがそれです。ただし、この時点では音声認識の精度が低く、かつスマートフォンの利用機会の多くが自宅外であったため、音声による操作が定着することはありませんでした。</p>



<p>しかしながら、スマートフォンネイティブな世代が増えるにつれ自宅内でのスマートフォン利用が進み、さらにAmazonとGoogleが低価格でスマートスピーカーを提供したことも手伝って、現在では音声UIの利用が定着化しつつあると言えます。また、2012年以降に<strong>深層学習（Deep Learning：DL）</strong>の技術が発達し、実用化されたことで音声認識の精度が格段に向上していることも、音声UIの普及を後押ししていると言えるでしょう。この点については次回「<a href="https://uxmeetsdata.com/voice-ai/">いまさら聞けない音声AI</a>」で触れたいと思います。</p>



<p>ところで、GUIを中心とした従来UIと比較した場合の音声UIの特長とは何でしょうか。それは大きく二つあります。ひとつは、<strong>手を使わずに操作できる</strong>という点です。これにより、料理をしながらレシピを調べる、子供の面倒を見ながらタクシーを呼ぶ、などの<strong>&#8220;ながら&#8221;行動</strong>が可能になります。また、スマートスピーカーの利用機会として最も多いのは音楽を聴くことらしいですが、それそのものが音声情報であり、必ずしも視覚情報を必要としないため、音声UIが適しているのは必然と言えるでしょう。</p>



<p>もう一つは、<strong>視覚情報を表示するためのモニターや、GUIを操作するためのタッチパネルが不要</strong>であるという点です。これは今後のIoTの普及には不可欠の要素と言えるでしょう。小さなデバイスにモニターを装備することはできませんし、利用者側としても全てをタッチパネルで操作しなければならないのは非常に不便です。</p>



<p>もっとも、上記の問題の解決には音声UI以外にも、ジェスチャーや視線による操作、あるいは脳直結インターフェースなどのUIも実用に向けて研究開発が進んでいるため音声UI固有の特長ではありませんが、比較的容易に実現できるという点で実用面ではリードしていると言えるでしょう。</p>



<p>ただし、音声UIは<strong>自宅以外での利用にやや抵抗感がある</strong>、あるいは音声UIデバイスが近くに複数ある場合に<strong>操作対象を特定しづらい</strong>などの欠点もあります。したがって今後は、様々な形態のUIが適材適所で採用されていくのではと考えられます。</p>



<h2><strong>音声UIが変えるユーザー体験。</strong></h2>



<p>最後に、音声UIは私たちの生活やユーザー体験をどのように変化させるのでしょうか。前述のとおり、音声UIの特長は手を使わずに操作できるという点であり、それにより&#8221;ながら&#8221;行動が可能となるということは、直接的にもたらされる変化と言えます。一方で、それとは別に間接的にもたらされる変化もあります。</p>



<p>そのひとつは、情報検索体験でしょう。冒頭で音声UIによる情報検索が増加しているということをお伝えしましたが、これは明らかに従来とは異質なものです。PCからスマートフォンへと情報検索デバイスの主役が変化する中で、より小さな画面でどのように検索をしやすくするか、あるいは検索結果を表示するか、などが検討され、最適化されてきましたが、それ同様あるいはそれ以上の変化が生じます。具体的には、音声情報には視覚情報のような情報の一覧性が当然ながら存在しないため、<strong>複数の情報は順次に伝達する</strong>ほかありません。したがって、検索結果の優先順位の決定はより重要な課題となります。</p>



<p>また、検索結果が期待するものでなかった場合、検索条件をそこに追加するのか、あるいはいったんクリアして最初から検索し直すのか、などの細かい操作がGUIでは簡単ですが、音声UIで言葉だけで操作するのは極めて困難です。したがってそれをサポートするようなインタラクションが必要です。このように、音声UIによる情報検索体験は従来とは全く異なるため、最適化が必要であり、<strong>音声検索最適化（Voice Search Optimization：VSO）</strong>と呼ばれています。</p>



<p>もうひとつの大きな変化は、<strong>音声アシスタント</strong>によるコミュニケーション体験でしょう。<strong>音声アシスタント（Voice Assistance）</strong>とは、音声情報としての自然言語による問いかけや要求に対し、適切に回答したり、動作したりする機能・サービスのことで、Apple社のSiri、Google社のGoogle Assistant、Amazon社のAlexaがその代表例です。前述のとおり、音声UIによる情報検索はGUIと比較して不便なことも多くサポートを必要としますが、それには利用者の検索意図を理解したり、あるいは趣味嗜好に合わせて検索結果を最適化するなどの能力や学習が求められます。一方で、それらを理解すると、単に利用者の要求に回答するだけでなく、<strong>利用者の行動を代行する</strong>ことが可能となります。</p>



<p>2018年5月のGoogle I/Oで、Google Assistantの電話代行サービスである<strong>Google Duplex</strong>が発表され、そこで行われたデモは世界に衝撃を与えました。これはまさに、利用者が飲食店や美容室に電話予約を入れるという行動を代行するものです。一方で、<strong>自動音声応答装置（Interactive Voice Response：IVR）</strong>による電話受付の自動化も進んでおり、近い将来、音声アシスタントとIVRによる<strong>人が関与しない通話コミュニケーション</strong>が実現するでしょう。このように音声UIには、ユーザー体験を根底から変えてしまう可能性があるわけです。</p>
]]></content:encoded>
										</item>
	<item>
		<title>BigQuery ML 試し打ち #04</title>
		<link>https://uxmeetsdata.com/bigquery-ml-trial-04/</link>
				<pubDate>Sun, 11 Aug 2019 11:00:26 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12598</guid>
				<description><![CDATA[クラスターごとに特徴量を集計。 BigQuery MLと総合ECサイトの会員の購買履歴データを用いた会員のクラ...<p class="more-link"><a href="https://uxmeetsdata.com/bigquery-ml-trial-04/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml.png" alt="" class="wp-image-10864" width="480" height="240" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml.png 640w, https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml-300x150.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<h2><strong>クラスターごとに特徴量を集計。</strong></h2>



<p>BigQuery MLと総合ECサイトの会員の購買履歴データを用いた会員のクラスタリングを試みていますが、前回「<a href="https://uxmeetsdata.com/bigquery-ml-trial-03/">BigQuery ML 試し打ち #03</a>」でモデルの作成まで完了したので、今回は<strong>モデルの可視化</strong>と<strong>予測結果の出力</strong>を行います。</p>



<p>可視化するには、クラスターと特徴量のクロス集計表にする必要があります。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。このクエリ結果をデータセット「DE」に「sum_clusters_bqml」という名前で保存します。</p>



<script src="https://gist.github.com/crosshack/621a19d54708d0f6082094ccdc7f5857.js"></script>



<h2><strong>モデルを可視化する。</strong></h2>



<p>「sum_clusters_bqml」テーブルをTableauで可視化します。クラスターIDを［行］、各説明変数を［列］シェルフにそれぞれ設定すると、以下のようなビューが表示されます。</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_bq_ml_4a-1024x617.png" alt="" class="wp-image-12605" width="480" height="289" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_bq_ml_4a-1024x617.png 1024w, https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_bq_ml_4a-300x181.png 300w, https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_bq_ml_4a-768x463.png 768w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<p>クラスターごとの特徴を見ると、クラスターID:6は女性のみ、平均年齢は30歳程度、主に「エレクトロニクス・コンピューター」を購入しているセグメント、クラスターID:9は男性80%、平均年齢は40歳程度、主に「本・聞く本」「映画・音楽・ゲーム」「エレクトロニクス・コンピューター」を購入しているセグメント、などがわかります。また、年齢についてもクラスターごとにばらつきがあり、クラスターID:2は年齢層がやや高め、クラスターID:10は年齢層がやや低めなどの特徴があります。これらは「<a href="https://uxmeetsdata.com/clustering-howto-04/">クラスター分析入門</a>」で見られた特徴とは異なることがわかります。</p>



<h2><strong>どのクラスターかを予測する。</strong></h2>



<p>続いて、作成したモデルを使って、特定の特徴をもつ会員がどのクラスターに分類されるかの予測を行い、結果を出力します。それにはBigQuery MLで用意されている<strong>ML.PREDICT</strong>という関数を使用し、以下の構文で記述します。</p>



<pre class="wp-block-preformatted"><strong>SELECT</strong> <em>出力したい変数</em>
<strong>FROM</strong> <strong>ML.PREDICT</strong>(
  MODEL <em>モデル名</em>
  , (
    <strong>SELECT</strong> *
    <strong>FROM</strong> <em>機械学習用データテーブル</em>
    <strong>WHERE</strong> <em>予測対象の会員の条件</em>
  )
)</pre>



<p>ではまず、男性で「本・聞く本」「映画・音楽・ゲーム」「エレクトロニクス・コンピューター」の購買経験がある会員がどのクラスターに分類されるかを予測します。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。</p>



<script src="https://gist.github.com/crosshack/59969c9e18da8c5356b1e81686ba9d2c.js"></script>



<p>この結果から、すべての会員がクラスターID:9として予測されることがわかります。これはさきほど可視化したモデルと完全に一致します。</p>



<p>続けて、女性で「エレクトロニクス・コンピューター」の購買経験がある会員がどのクラスターに分類されるかを予測します。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。</p>



<script src="https://gist.github.com/crosshack/badfa38bc8faf4dbca4f49ae951bcf73.js"></script>



<p>この結果から、約90%の会員がクラスターID:6として予測されることがわかります。これはさきほど可視化したモデルとほぼ一致しますが、残りの約10%の会員がクラスターID:2として予測されています。それらの会員の特徴を見ると、比較的年齢の高い会員が多いように見受けられます。これはモデルの可視化結果で見た、クラスターID:2の年齢層がやや高めという評価と一致します。</p>



<p>そこで、年齢を20代から40代に限定した場合に、会員がどのクラスターに分類されるかを予測します。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。</p>



<script src="https://gist.github.com/crosshack/a3825e5dd408600cba3a9c0270cd91cc.js"></script>



<p>この結果から、すべての会員がクラスターID:6として予測されることがわかります。これはさきほど可視化したモデルと完全に一致します。</p>



<p>BigQuery MLと総合ECサイトの会員の購買履歴データを用いた会員のクラスタリングを試みをしましたが、BigQuery上で完結して簡単に実現できることがわかりました。現時点で扱えるモデルは線形回帰・ロジスティック回帰・k 平均法クラスタリングのみですが、今後は協調フィルタリングやTensorFlowを用いたディープニューラルネットワークなど扱えるモデルも増えていくことが予定されているので、期待して待ちたいと思います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>BigQuery ML 試し打ち #03</title>
		<link>https://uxmeetsdata.com/bigquery-ml-trial-03/</link>
				<pubDate>Sat, 10 Aug 2019 11:00:16 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[BigQuery]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12532</guid>
				<description><![CDATA[SQLによるクラスタリング。 BigQuery MLは、Googleが提供するデータウェアハウス（Data W...<p class="more-link"><a href="https://uxmeetsdata.com/bigquery-ml-trial-03/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml.png" alt="" class="wp-image-10864" width="480" height="240" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml.png 640w, https://uxmeetsdata.com/wp-content/uploads/2019/06/xmd_bq_ml-300x150.png 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<h2><strong>SQLによるクラスタリング。</strong></h2>



<p><strong>BigQuery ML</strong>は、Googleが提供する<strong>データウェアハウス（Data Warehouse：DWH）</strong>である<strong>Google BigQuery</strong>上にて<strong>機械学習（Machine Learning：ML）</strong>を可能とするクラウドサービスです。最大の特徴は、モデルの作成から評価や予測までをBigQueryと同様の<strong>標準SQLによるクエリ形式</strong>で行う点です。これにより、データの準備を含めた機械学習のすべてのプロセスをBigQuery上でSQLのみで完結することが可能となり、作業効率やセキュリティの面で大きなメリットが得られます。</p>



<p>前回の「<a href="https://uxmeetsdata.com/bigquery-ml-trial-01/">BigQuery ML 試し打ち</a>」ではロジスティック回帰モデルを用いて、総合ECサイトの会員の継続予測を行いました。今回は先日ベータ版がリリースされた<strong>k平均法クラスタリング</strong>のモデルの試し打ちがてら、例によって「<a href="https://uxmeetsdata.com/data-ethnography-howto-01/">データエスノグラフィ入門</a>」と連動し、総合ECサイトの会員のクラスタリングを行なってみようと思います。</p>



<p>なお、同じテーマを「<a href="https://uxmeetsdata.com/clustering-howto-01/">クラスター分析入門</a>」で扱っており、<strong>クラスター分析（Cluster Analysis）</strong>あるいは<strong>クラスタリング（Clustering）</strong>とは何か、<strong>階層型</strong>と<strong>非階層型</strong>の違いは何かなどの詳細はそちらに詳しいので、ここでは省略します。また分析ツールについては、そこでは<strong>Google Cloud Datalab</strong>を用いましたが、ここでは<strong>BigQuely ML</strong>を用いるため、どちらも試しながら両方の違いを検証するのもよいでしょう。</p>



<h2><strong>機械学習用のデータと環境を準備。</strong></h2>



<p>それではBigQuery MLを用いたクラスタリングを始めましょう。分析を進める前に、まずは分析の背景と目的を整理します。</p>



<p>あなたは、とある総合ECサイトの責任者です。ECサイトでは、<strong>F2転換率</strong>が重要であると言われています。この”F”は<strong>購買頻度（Frequency）</strong>のことで、F2転換率とは初回購買から二回目購買への<strong>転換率（Conversion Rate）</strong>を意味します。一般的に、新規会員の獲得よりも、既存会員のリピート購買促進のほうがコスト効率が高いため、F2転換率は重要な指標となります。とはいえF2転換した会員が、その後も継続的に購買してくれる、いわゆる優良会員になるとは限りません。</p>



<p>そこで今回の分析目的を「<strong>優良化する会員の行動特性を、購買履歴データから把握する</strong>」とします。なおそこには、まだ<strong>優良化していな会員を意図的に優良化するためのヒント</strong>があることは言うまでもありません。</p>



<p>分析対象データは、とある総合ECサイトの会員の購買履歴データとし、概要は以下のとおりです。</p>



<ul><li>種類：総合ECサイトの会員の購買履歴</li><li>期間：2005年1月〜2013年12月（9年間）</li><li>会員数：639,777人</li><li>購買数：7,599,650件（平均11.9件/人）</li></ul>



<p>データソースは以下の３つを使用します。なお、こちらはすでにBigQueryに投入済みとします。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>データソース</td>
<td>変数</td>
<td>ダウンロード</td>
</tr>
<tr>
<td style="background-color: #eee;">会員マスタ<br>mst_members</td>
<td>会員ID, 年齢, 性別, 居住地など</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/mst_members.csv">［↓］105MB﻿</td>
</tr>
<tr>
<td style="background-color: #eee;">商品マスタ<br>mst_products</td>
<td>商品ID, 商品カテゴリなど</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/mst_products.csv">［↓］53MB</td>
</tr>
<tr>
<td style="background-color: #eee;">購買履歴<br>trx_orders</td>
<td>会員ID, 商品ID, 注文日, 価格</td>
<td><a href="https://storage.googleapis.com/xmdcom-data/data-ethnography/trx_orders.csv">［↓］698MB</td>
</tr>
</tbody>
</table>



<p>行動特性の分析を進める中で、<strong>購買商品カテゴリ数</strong>と優良化との間に相関があることがわかりました。（※「<a href="https://uxmeetsdata.com/data-ethnography-howto-04/">データエスノグラフィ入門 #04</a>」を参照）これは、<strong>新たな商品カテゴリを提案することが優良化につながる</strong>可能性を示唆しています。ただし、闇雲に提案するよりも、<strong>類似する会員セグメントの併売傾向</strong>と照らし合わせ、未購買商品カテゴリを提案するほうが効果が高いと考えられます。そこでクラスター分析によりそれを明らかにします。</p>



<p>まずはクラスタリングに用いる説明変数を定義します。説明変数を定義することを<strong>変数選択</strong>や<strong>特徴選択</strong>といいますが、非常に難しい問題なので、ここでは深く触れず、ひとまず「性別・年齢・購買商品カテゴリ」とします。</p>



<p>なお、クラスタリングにおいて<strong>強い相関をもつ変数の存在は冗長で無意味であり、予めどちらかを除外する</strong>必要がありますが、これらの各変数間に相関性が見られないことは確認済みとします。（※「<a href="https://uxmeetsdata.com/clustering-howto-02/">クラスター分析入門 #02</a>」を参照）</p>



<p>次にクラスタリング用のデータを用意するわけですが、ここでひとつ前処理が必要になります。クラスタリングでは<strong>要素間の距離を類似度とみなす</strong>ことで類似性を分析するのですが、距離を測定するためには変数が数値化されている必要があります。しかしながら、性別や購買商品カテゴリは質的変数であるため、そのままでは数値として扱うことができません。そこで<strong>ダミー変数（Dummy Variable）</strong>に置き換えます。また、年齢は量的変数であるため、説明変数として扱うことが可能ですが、クラスタリングに使うには他の説明変数と値の範囲を揃える必要があります。そこで<strong>正規化（Normalization）</strong>を行います。ダミー変数と正規化については「<a href="https://uxmeetsdata.com/clustering-howto-02/">クラスター分析入門 #02</a>」に詳しいので省略します。</p>



<p>以上を踏まえ、クラスタリング用のデータを以下のスキーマ定義で作成します。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>変数</td>
<td>値</td>
</tr>
<tr>
<td style="background-color: #eee;">性別（gender）</td>
<td>男性：0、女性：1</td>
</tr>
<tr>
<td style="background-color: #eee;">年齢（age）</td>
<td>年齢の1/100</td>
</tr>
<tr>
<td style="background-color: #eee;">洋服の購買経験あり（is_buy_clothing）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">玩具の購買経験あり（is_buy_toy）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">スポーツ用品の購買経験あり（is_buy_sports）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">家庭用品の購買経験あり（is_buy_home）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">美容用品の購買経験あり（is_buy_beauty）</td>
<td>偽：0、真：1</td>
</tr>

<tr>
<td style="background-color: #eee;">本の購買経験あり（is_buy_books）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">自動車用品の購買経験あり（is_buy_automotive）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">映画の購買経験あり（is_buy_movie）</td>
<td>偽：0、真：1</td>
</tr>
<tr>
<td style="background-color: #eee;">電化製品の購買経験あり（is_buy_electronics）</td>
<td>偽：0、真：1</td>
</tr>
</tbody>
</table>



<p>この定義に従ってBigQueryで分析用のテーブルを作成します。BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。このクエリ結果をデータセット「DE」に「sum_members_cls_ non」という名前で保存します。これで分析用のデータと環境は整いました。</p>



<script src="https://gist.github.com/crosshack/bf6c976413ae7ee48e160cfba817a966.js"></script>



<h2><strong>モデルを作成する。</strong></h2>



<p>データの準備が整ったので、クラスタリングを進めて行きます。まずはモデルの作成を行います。モデルの作成には、BigQuery MLで用意されている<strong>CREATE MODEL</strong>という関数を使用し、以下の構文で記述します。なおクラスタリングは教師なし学習のため、正解を示す目的変数は存在せず、また訓練データと評価用データに分割する必要はありません。</p>



<pre class="wp-block-preformatted"><strong>CREATE OR REPLACE MODEL</strong> <em>データセット名</em>.<em>モデル名 </em>
<strong>OPTIONS</strong>( 
  model_type = <em>使用するモデリングタイプ</em>
  ,num_clusters = <em>クラスター数</em>
  ,standardize_features = <em>真偽値</em>
) <strong>AS</strong> (
  <strong>SELECT</strong> <em>説明変数</em>, ...
  <strong>FROM</strong> <em>機械学習用データテーブル</em>
)</pre>



<p>［model_type］には<strong>k平均法クラスタリング</strong>を示す［kmeans］を指定します。クラスター数を指定するオプションの［num_clusters］には妥当性が確認されているである10を指定します。（※「<a href="https://uxmeetsdata.com/clustering-howto-03/">クラスター分析入門 #03</a>」を参照）また、［standardize_features］は正規化を行うかどうかのオプションで、すでに処理済みですがTRUEを指定しておきます。なお、初期設定はTRUE であるため省略可能です。</p>



<p>BigQueryのクエリエディタに以下のSQL文を入力し、青い［実行］ボタンをクリックしてみましょう。なおこのクエリ結果はデータセット「DE」に「mdl_members_cls」という名前で自動的に保存されます。</p>



<script src="https://gist.github.com/crosshack/43d096383f3cf185c468545f1e01cb81.js"></script>



<p>これでモデルの作成は完了です。次回は作成したモデルの可視化や予測結果の出力を行います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>UXグロース入門 #04</title>
		<link>https://uxmeetsdata.com/ux-growth-howto-04/</link>
				<pubDate>Wed, 31 Jul 2019 11:00:16 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[UX Design]]></category>
		<category><![CDATA[Causal Inference]]></category>
		<category><![CDATA[Growth Hack]]></category>
		<category><![CDATA[UX Design]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12294</guid>
				<description><![CDATA[単純集計で因果効果を俯瞰。 初回購買のみの会員を対象に、評価時セグメンテーションによるABテストを実施するとこ...<p class="more-link"><a href="https://uxmeetsdata.com/ux-growth-howto-04/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846.jpg" alt="" class="wp-image-11901" width="480" height="240" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846.jpg 640w, https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846-300x150.jpg 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<h2><strong>単純集計で因果効果を俯瞰。</strong></h2>



<p>初回購買のみの会員を対象に、評価時セグメンテーションによるABテストを実施するところまでを前回取り上げましたが、今回はその実験結果の評価手法と改善アクションへの落とし込みについて見ていきます。</p>



<p>ABテストの評価に使う分析手法は、基本的には<strong>クロス集計</strong>と<strong>カイ二乗検定</strong>のみです。まずは<strong>単純集計（Simple Tabulation）</strong>で因果効果を俯瞰します。一ヶ月間のABテストの集計結果が以下であった場合、<strong>どのような因果効果</strong>を見出すことができるでしょうか。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>グループ</td>
<td>提案商品カテゴリ</td>
<td>F2転換数（率）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群1</td>
<td>おもちゃ・子供・赤ちゃん</td>
<td>439人（10.9%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群2</td>
<td>映画・音楽・ゲーム</td>
<td>445人（11.1%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群3</td>
<td>本・聞く本</td>
<td>451人（11.2%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群4</td>
<td>スポーツ・アウトドア</td>
<td>441人（11.0%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群5</td>
<td>エレクトロニクス・コンピューター</td>
<td>437人（10.9%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群6</td>
<td>美容・健康・食料品</td>
<td>442人（11.0%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群7</td>
<td>自動車・工業</td>
<td>423人（10.5%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群8</td>
<td>ファッション・ジュエリー</td>
<td>440人（11.0%）</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群9</td>
<td>家庭・ガーデニング用品</td>
<td>444人（11.1%）</td>
</tr>
<tr>
<td style="background-color: #eee;">対照群</td>
<td>ー</td>
<td>399（10.0%）</td>
</tr>
</tbody>
</table>



<p>まずこの結果から、以下の因果効果を読み解くことができるかと思います。</p>



<ol><li>総じて介入群は対照群よりもF2転換率が10%程度高く、<strong>おすすめ商品を提案することの因果効果は存在する</strong>。</li><li>介入群の各サブグループ間にはF2転換率の差がほぼ見られず、<strong>おすすめ商品の違いによる因果効果は存在しない</strong>。</li></ol>



<p>とはいえ統計的に意味のある差、すなわち<strong>有意差（Significantly Different）﻿</strong>があるとは言えず、因果効果を証明できていません。それには<strong>有意差検定</strong>を行う必要があります。</p>



<h2><strong>クロス集計で因果効果を切り分け。</strong></h2>



<p>また、おすすめ商品を提案することの因果効果が存在するとして、<strong>初回購買とは異なるカテゴリのおすすめ商品を提案したことによる効果</strong>なのか、あるいは<strong>単におすすめ商品を提案したことによる効果</strong>なのかの切り分けがこの段階ではできておらず、仮説である「<strong>初回購買から一ヶ月以内に、初回とは異なるカテゴリのおすすめ商品を提案すると、F2転換する可能性が高い</strong>」の検証には至っていません。</p>



<p>そこで、提案商品が初回購買とは異なるカテゴリかどうかで介入群の各サブグループをセグメンテーションし、<strong>介入群の各サブグループ</strong>と提案商品が<strong>初回購買とは異なる商品カテゴリか</strong>の二軸による<strong>クロス集計（Cross Tabulation）</strong>を行います。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>サブグループ/提案商品</td>
<td>初回購買とは異なる商品カテゴリ</td>
<td>F2転換率</td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群1<br>おもちゃ・子供・赤ちゃん</td>
<td>真</td>
<td>10.8%</td>
</tr>
<tr>
<td>偽</td>
<td><strong>12.1%</strong></td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群2<br>映画・音楽・ゲーム</td>
<td>真</td>
<td>10.9%</td>
</tr>
<tr>
<td>偽</td>
<td><strong>12.8%</strong></td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群3<br>本・聞く本</td>
<td>真</td>
<td>11.0%</td>
</tr>
<tr>
<td>偽</td>
<td><strong>13.1%</strong></td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群4<br>スポーツ・アウトドア</td>
<td>真</td>
<td><strong>11.2%</strong></td>
</tr>
<tr>
<td>偽</td>
<td>10.5%</td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群5<br>エレクトロニクス・コンピューター</td>
<td>真</td>
<td><strong>11.0%</strong></td>
</tr>
<tr>
<td>偽</td>
<td>10.6%</td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群6<br>美容・健康・食料品</td>
<td>真</td>
<td><strong>11.2%</strong></td>
</tr>
<tr>
<td>偽</td>
<td>10.4%</td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群7<br>自動車・工業</td>
<td>真</td>
<td>10.4%</td>
</tr>
<tr>
<td>偽</td>
<td><strong>10.9%</strong></td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群8<br>ファッション・ジュエリー</td>
<td>真</td>
<td>10.9%</td>
</tr>
<tr>
<td>偽</td>
<td><strong>11.7%</strong></td>
</tr>
<tr>
<td rowspan="2" style="background-color: #eee;">介入群9<br>家庭・ガーデニング用品</td>
<td>真</td>
<td><strong>11.2%</strong></td>
</tr>
<tr>
<td>偽</td>
<td>10.4%</td>
</tr>
</tbody>
</table>



<p>どうでしょうか。確かに初回購買とは異なる商品カテゴリが提案された場合のほうがF2転換率が高いサブグループもありますが、逆に介入群2「映画・音楽・ゲーム」や介入群3「本・聞く本」などは”偽”すなわち同じ商品カテゴリが提案された場合のほうがF2転換率が高くなっています。これらの商品カテゴリは趣味性が強く、同じカテゴリを提案し続けたほうが再購買の確率が高いのかもしれません。</p>



<p>いずれにせよ「<strong>必ずしも初回購買とは異なる商品カテゴリを提案することがF2転換率を高めるということにはならない</strong>」と言えそうです。ただし、これについても<strong>有意差</strong>が確認されていないため、<strong>有意差検定</strong>を行う必要があります。</p>



<h2><strong>カイ二乗検定で有意差を確認。</strong></h2>



<p><strong>有意差検定（Significance Test）</strong>とは、二組の標本について統計的に意味のある差すなわち<strong>有意差</strong>が存在するかを検定することで、<strong>t検定</strong>や<strong>カイ二乗検定</strong>などの統計的検定法を用います。</p>



<p><strong>t検定（t-Test）</strong>は、帰無仮説が正しい仮定のもと、統計量が<strong>t分布</strong>に従うことを利用する検定法の総称です。<strong>t分布（t-Distribution）</strong>は連続確率分布のひとつで、正規分布する母集団の平均と分散が未知で標本サイズが小さい場合に、<strong>二組の標本の平均の有意差検定</strong>に用います。</p>



<p><strong>カイ二乗検定（Chi-Square Test）</strong>は、帰無仮説が正しい仮定のもと、統計量が近似的に<strong>カイ二乗分布</strong>に従うことを利用する検定法の総称です。<strong>カイ二乗分布（Chi-squre Distribution）</strong>は自由度が大きくなるほど大きな値をとる確率が増えて正規分布に近づく、右に歪んだ分布で、<strong>クロス集計表の有意差検定</strong>に用います。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td></td>
<td>F2転換数</td>
<td>非F2転換数</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群</td>
<td>3,962</td>
<td>32,128</td>
</tr>
<tr>
<td style="background-color: #eee;">対象群</td>
<td>399</td>
<td>3,608</td>
</tr>
</tbody>
</table>



<p>今回のABテストの結果は上記のクロス集計表で得られるため、<strong>カイ二乗検定</strong>を用います。 では、さきほどの因果効果に関する仮説「<strong>総じて介入群は対照群よりもF2転換率が10%程度高い</strong>」の有意差を検定してみましょう。</p>



<p>その前に統計的検定の進め方の基本を理解しておく必要があります。それは<strong>差がないという仮説を否定することで、差があるという仮説を証明する</strong>というものです。差がないという仮説を<strong>帰無仮説（Null Hypothesis）</strong>、差があるという仮説を<strong>対立仮説（Alternative Hypothesis）</strong>といいます。</p>



<p>今回のケースでは、初回購買のみの会員に対して<strong>何も提案しなかった場合のF2転換率</strong>は10.0%であり、<strong>おすすめ商品の提案を行った場合のF2転換率</strong>が10.0%と差がないという仮説が帰無仮説、差があるという仮説が対立仮説となります。そして<strong>帰無仮説が棄却できれば、有意差があることが証明</strong>されます。</p>



<p>帰無仮説を棄却するには、<strong>p値</strong>が<strong>有意水準</strong>を下回る必要があります。<strong>p値（p-Value）</strong>とは、帰無仮説が正しい仮定のもと、<strong>今回のような差が発生する確率</strong>のことで、それが小さいほど帰無仮説が正しくないことの根拠となり、有意水準を下回ると帰無仮説は棄却されます。<strong>有意水準は一般的に5%に規定</strong>しますが、慣習的なもので実はあまり根拠はありません。とはいえここでも有意水準5%で検定を行います。</p>



<p>カイ二乗検定におけるp値の計算方法についてはここでは触れませんが、Pythonの拡張モジュールであるScipyにより以下のプログラムで計算可能です。そしてp値は4.9%となり、有意水準5%を下回るため、帰無仮説が棄却され「<strong>総じて介入群は対照群よりもF2転換率が10%程度高</strong>い」の有意差が証明されます。</p>



<script src="https://gist.github.com/crosshack/7ef2d35b0c446808804548962ef2a751.js"></script>



<p>同様に「<strong>必ずしも初回購買とは異なる商品カテゴリを提案することがF2転換率を高めるということにはならない</strong>」についても有意差検定を行うことが可能です。</p>



<ol><li><strong>初回購買から一ヶ月以内におすすめ商品を提案するとF2転換する可能性が高い。</strong></li><li><strong>必ずしも初回購買とは異なる商品カテゴリを提案することがF2転換率を高めるということにはならない。</strong></li></ol>



<p>これまでの実験と評価からこの事実が証明されました。ここから改善アクションにつなげて小さなPDCAを回すわけですが、具体的には<strong>どの会員にどの商品カテゴリを提案すればF2転換に効果的かの仮説</strong>を会員の行動特性から見出し、<strong>実験時セグメンテーションによるABテスト</strong>を改めて実施するとよいでしょう。</p>



<p>大きなPDCAから小さなPDCAに落とし込み、ABテストによる実験・評価・改善アクションを行う実践的なメソッドを、具体的なケースを交えて紹介しました。あらゆるUXグロースはこれを基本に進めることが可能なので、実践の参考にしてもらえればと思います。</p>
]]></content:encoded>
										</item>
	<item>
		<title>UXグロース入門 #03</title>
		<link>https://uxmeetsdata.com/ux-growth-howto-03/</link>
				<pubDate>Tue, 30 Jul 2019 11:00:07 +0000</pubDate>
		<dc:creator><![CDATA[Atsushi Sugawa]]></dc:creator>
		<category><![CDATA[UX]]></category>
		<category><![CDATA[UX Design]]></category>
		<category><![CDATA[Causal Inference]]></category>
		<category><![CDATA[Growth Hack]]></category>
		<category><![CDATA[UX Design]]></category>

		<guid isPermaLink="false">https://uxmeetsdata.com/?p=12077</guid>
				<description><![CDATA[因果推論とABテスト。 大きなPDCAから小さなPDCAに落とし込む流れについて前回説明しましたが、ここからは...<p class="more-link"><a href="https://uxmeetsdata.com/ux-growth-howto-03/" class="themebutton3">Read More</a></p>]]></description>
								<content:encoded><![CDATA[<div class="wp-block-image"><figure class="aligncenter is-resized"><img src="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846.jpg" alt="" class="wp-image-11901" width="480" height="240" srcset="https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846.jpg 640w, https://uxmeetsdata.com/wp-content/uploads/2019/08/xmd_uxg-e1564882978846-300x150.jpg 300w" sizes="(max-width: 480px) 100vw, 480px" /></figure></div>



<h2><strong>因果推論とABテスト。</strong></h2>



<p>大きなPDCAから小さなPDCAに落とし込む流れについて前回説明しましたが、ここからは小さなPDCAの推進に欠かすことのできない<strong>ABテストによる実験・評価・改善アクション</strong>の実践的なメソッドを見ていきます。</p>



<p>ABテストは、正式には<strong>ランダム化比較実験（Randomized Controlled Trial：RCT）</strong>というもので、因果推論の代表的な手法です。<strong>因果推論（Causal Inference）</strong><sup id="footnote_plugin_tooltip_1" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_1');">1)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_1"><a href="https://uxmeetsdata.com/causal-inference/">いまさら聞けない因果推論</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_1").tooltip({		tip: "#footnote_plugin_tooltip_text_1",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>とは<strong>二つの事象間に因果関係があるかどうか</strong>を明らかにするための考え方や手法を言います。</p>



<p>その詳細は「<a href="https://uxmeetsdata.com/causal-inference/">いまさら聞けない因果推論</a>」に詳しいのでここでは触れませんが、二つの事象間に因果関係があることを証明する手法に、<strong>事実と反事実の比較</strong>があります。<strong>反事実（Counterfactual）</strong>とは、その事象が発生しなかった場合のことです。そして、原因の事象Xが発生したという<strong>事実における結果の事象Y</strong>と、原因の事象Xが発生しなかったという<strong>反事実における結果の事象Y’</strong>を比較し、<strong>有意差（Significantly Different）﻿</strong>が見られる場合に因果関係があると結論づけます。この場合の<strong>有意差</strong>とは、事象Yと事象Y’の間の統計的に偶然とはいえない差のことで、それを<strong>因果効果（Causal Effect）</strong>といいます。また、事実と反事実の比較により因果関係を説明することを<strong>反事実モデル（Counterfactual Model）</strong>といい、その代表的な手法がRCTすなわち<strong>ABテスト</strong>です。</p>



<p>たとえば新薬の臨床試験において、病気のネズミを無作為に二つのグループに分け、片方のグループにのみ投薬したとしましょう。そこで投薬したグループのほうが治癒率が高ければ、因果効果があると言えます。なお、投薬したグループを<strong>介入群（Intervention Group）</strong>、投薬しなかったグループを<strong>対照群（Control Group）</strong>といいます。また、グループを無作為に分けるのは、比較する二つのグループの間に<strong>介入した事実以外の違い</strong>が存在すると、違いを生んだ原因がどちらであるかを説明できなくなるからです。</p>



<h2><strong>行動特性から仮説を見出す。</strong></h2>



<p>前回と同じケースで考えていきます。あなたは、とある総合ECサイトのCRM担当者で、会員の継続化をミッションとしており、目標はF2転換率を一年間で20%向上させることです。なお、ECサイト全体の目標は年間獲得利益の10億円伸長であり、F2転換率の向上はその<strong>主要成功要因（Key Success Factor：KSF）</strong>のひとつです。</p>



<p>ECサイトでは、<strong>F2転換率</strong>が重要であると言われています。この”F”は<strong>購買頻度（Frequency）</strong>のことで、F2転換率とは初回購買から二回目購買への<strong>転換率（Conversion Rate）</strong>を意味します。一般的に、新規会員の獲得よりも、既存会員のリピート購買促進のほうがコスト効率が高いため、F2転換率は重要な指標となります。</p>



<p>現時点ではF2転換率を向上させる確実な方法はわかっていないため、<strong>ABテスト</strong>で<strong>小さなPDCA</strong>を回しながら目標に近づけていくアプローチをとります。二回目購買キャンペーンなどの安易な施策が脳裏をかすめますが、裏付けなしの仮説で闇雲にやっても非効率ですし、たとえそれでF2転換したところで、キャンペーンに反応する会員に高いLTVは見込めません。</p>



<p>そこで、より効果を見込める仮説発見のために、まずは<strong>会員の行動特性</strong>を分析します。具体的には、F2転換する会員と離反する会員の違いはどこか、何がきっかけでF2転換するのかといった特性の違いを分析していきます。行動特性を分析する手法には<strong>エスノグラフィ（Ethnography）</strong><sup id="footnote_plugin_tooltip_2" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_2');">2)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_2"><a href="https://uxmeetsdata.com/ux-research-howto-03/">エスノグラフィとは（UXリサーチ入門 #03）</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_2").tooltip({		tip: "#footnote_plugin_tooltip_text_2",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>などがありますが、ECサイトの長期間の行動分析には向きません。一方で、ECサイトであれば閲覧や購買の行動データが存在するため、<strong>データエスノグラフィ（Data Ethnography）</strong><sup id="footnote_plugin_tooltip_3" class="footnote_plugin_tooltip_text" onclick="footnote_moveToAnchor('footnote_plugin_reference_3');">3)</sup><span class="footnote_tooltip" id="footnote_plugin_tooltip_text_3"><a href="https://uxmeetsdata.com/data-ethnography-howto-01/">データエスノグラフィ入門</a></span><script type="text/javascript">	jQuery("#footnote_plugin_tooltip_3").tooltip({		tip: "#footnote_plugin_tooltip_text_3",		tipClass: "footnote_tooltip",		effect: "fade",		fadeOutSpeed: 100,		predelay: 400,		position: "top right",		relative: true,		offset: [10, 10]	});</script>が有効な手段となります。そこでデータエスノグラフィを実施し、以下の二つの事実を見出したとします。</p>



<ol><li><strong>初回購買から一ヶ月以内に再訪問</strong>した会員はF2転換率が高い。</li><li>二回目は<strong>初回と異なる商品カテゴリ</strong>を購買する確率が高い。</li></ol>



<p>これらの事実から「<strong>初回購買から一ヶ月以内に、初回とは異なるカテゴリのおすすめ商品を提案すると、F2転換する可能性が高い</strong>」という仮説が浮かび上がります。また、具体的な施策として以下が想定されるかと思います。</p>



<ol><li><strong>再訪問した会員</strong>に対して、<strong>ランディングページ</strong>にて、初回とは異なるカテゴリのおすすめ商品を提案する。</li><li><strong>初回購買から一ヶ月間購買のない会員</strong>に対して、<strong>メールニュース</strong>にて、初回とは異なるカテゴリのおすすめ商品を提案する。</li></ol>



<p>施策1は再訪問した会員のF2転換の確度を向上するための施策となります。施策2は再訪問の機会そのものを創出することで、施策1では取りこぼしてしまう会員を取り込む施策となります。これらはどちらも高い効果が見込めるので、同時に実施したくなりますが、このように<strong>複数の接点で施策が想定される場合の鉄則</strong>として、以下の二つを念頭に入れておくべきです。</p>



<ol><li><strong>同時には実施しない</strong>。</li><li>実施順序は<strong>目標に近い接点から</strong>。</li></ol>



<p>まず同時に実施するのは避けるべきでしょう。なぜならば、一部の会員は両方の施策を体験することになり、効果があった場合に<strong>どちらの施策による効果なのかを判別しづらくなる</strong>からです。</p>



<p>次に実施順序ですが、それは<strong>目標に近い接点から</strong>になります。この場合でいうとF2転換に近い接点ということで、施策1がそれに当たります。理由は二つありますが、ひとつは目標に近い接点のほうが成功確度が高く、<strong>成果に結びつきやすい</strong>という点です。これには、小さなPDCAを回す際に、<strong>早い段階で成果が出ると次の施策を実施する動機が高まる</strong>という効果があります。</p>



<p>ただ、より重要なのはもうひとつの理由で、それは目標に近い接点のほうが<strong>外部要因が少ない</strong>という点です。外部要因が少ないほど、<strong>結果に対する施策の効果を説明しやすく</strong>なります。逆に目標から遠くなると、目標までの体験すなわち外部要因が増え、施策の効果を説明しづらくなります。</p>



<h2><strong>ABテストとセグメンテーション。</strong></h2>



<p>では施策1「<strong>再訪問した会員に対して、ランディングページにて、初回とは異なるカテゴリのおすすめ商品を提案する</strong>」の、<strong>F2転換への因果効果</strong>を検証するABテストについて検討していきます。</p>



<p>ABテストによる因果効果の検証では、テスト対象者を<strong>介入群（Intervention Group）</strong>と<strong>対照群（Control Group）</strong>の二つのグループに分け、介入群にのみ施策を実施することで、結果に<strong>有意差（Significantly Different）﻿</strong>が生まれるかどうかを検証します。ここでは、<strong>介入群が対照群に比べてF2転換率が高く、かつ有意差がある</strong>ことがわかれば因果効果を説明できます。</p>



<p>テスト対象は<strong>初回購買のみの会員</strong>で、サイトへの訪問時に最初に訪れるページすなわち<strong>ランディングページ（Landing Page：LP）</strong>において、介入群に対しては、<strong>初回購買とは異なるカテゴリのおすすめ商品</strong>を提案します。それに対し、対照群には何も提案しません。ABテストとして実施する内容はこれだけです。ただし、ここで二つの疑問が生じます。</p>



<ol><li><strong>介入群と対照群の比率</strong>をどうするか。</li><li>介入群に<strong>どの商品カテゴリ</strong>を提案するか。</li></ol>



<p>1については、テストの観点では<strong>結果の有意差を評価するのに十分なN数</strong>が、介入群と対照群の両方で確保されていることが絶対条件で、あとはビジネスの観点で<strong>介入群をどれだけ増やしたいか</strong>により決定すればよいでしょう。</p>



<p>2については、<strong>どの商品カテゴリがF2転換に対して効果的であるかが会員の購買特性により異なる</strong>ため、介入群をいくつかのサブグループに<strong>セグメンテーション（Segmentation）</strong>し、サブグループごとに実験や評価を分ける必要があります。そして1の有意差を検証するのに十分なN数が、<strong>介入群の各サブグループ単位で確保されている</strong>必要があり、それも考慮して比率を決定します。</p>



<p>介入群のセグメンテーションには、実験段階であらかじめ行う<strong>実験時セグメンテーション</strong>と、実験段階では行わずに評価段階で行う<strong>評価時セグメンテーション</strong>の二つがあります。</p>



<p><strong>実験時セグメンテーション</strong>では、あらかじめ何らかの方法で会員の購買特性を分析し、<strong>サブグループの分類基準</strong>と<strong>各サブグループに提案する商品カテゴリ</strong>の定義を行います。当然ながら、サブグループと提案する商品カテゴリの間には、<strong>高いF2転換率を発生させる強い関連性</strong>があることが前提となります。すなわち<strong>セグメンテーションと因果効果の仮説</strong>が不可欠となりますが、逆にそれが存在すれば実験初期から高い因果効果が期待できます。分析アプローチとしては、<strong>検証的アプローチ（Verifying Approach）</strong>と言えます。</p>



<p><strong>評価時セグメンテーション</strong>では、実験段階でのセグメンテーションは行わず、介入群に対して<strong>どの商品カテゴリを提案するかは無作為に決定</strong>します。商品カテゴリ数が9であれば、介入群を無作為に9つのサブグループに分割し、それぞれに異なる商品カテゴリを提案します。そして、評価段階において<strong>介入群を様々な切り口でセグメテーション</strong>し、実際に<strong>提案された商品カテゴリとF2転換率の相関</strong>を分析しながら、<strong>因果効果の高い組み合わせを探索</strong>します。したがって、実験段階では想像していなかった因果効果を評価段階で発見する可能性があります。ただし、細かくセグメンテーションしても評価に耐え得るN数が必要となります。分析アプローチとしては、<strong>発見的アプローチ（Discovering Approach）</strong>と言えます。</p>



<p>セグメンテーションを実験時と評価時のどちらにするのかは、それぞれの特徴を理解した上で適切に選択するとよいでしょう。以下に特徴の違いをまとめておきます。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td></td>
<td>実験時セグメンテーション</td>
<td>評価時セグメンテーション</td>
</tr>
<tr>
<td style="background-color: #eee;">分析アプローチ</td>
<td>検証的アプローチ</td>
<td>発見的アプローチ</td>
</tr>
<tr>
<td style="background-color: #eee;">セグメンテーションと因果効果の仮説</td>
<td>必要</td>
<td>不要</td>
</tr>
<tr>
<td style="background-color: #eee;">因果効果の期待値</td>
<td>高い</td>
<td>低い</td>
</tr>
<tr>
<td style="background-color: #eee;">因果効果の発見性</td>
<td>低い</td>
<td>高い</td>
</tr>
<tr>
<td style="background-color: #eee;">必要なN数</td>
<td>比較的少ない<br><br>※各サブグループごとの評価に必要なN数</td>
<td>比較的多い<br><br>※細かいセグメンテーションの評価に耐え得るN数</td>
</tr>
</tbody>
</table>



<p>ここではセグメンテーションと因果効果に関する明確な仮説がないため、<strong>評価時セグメンテーション</strong>を選択します。直近一ヶ月間で獲得した会員5万人のうち、初回購買のみの約4万人をテスト対象とし、<strong>介入群を無作為に分けた9つのサブグループと対照群に、それぞれ10%ずつの約4,000人を割り当て、それぞれ異なる商品カテゴリを提案する</strong>ABテストを実施します。</p>



<table style="table-layout: fixed; width: 100%;">
<tbody>
<tr style="color: #fff; background-color: #000;">
<td>グループ</td>
<td>N数（比率）</td>
<td>提案商品カテゴリ</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群1</td>
<td>4,010人（10%）</td>
<td>おもちゃ・子供・赤ちゃん</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群2</td>
<td>4,010人（10%）</td>
<td>映画・音楽・ゲーム</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群3</td>
<td>4,010人（10%）</td>
<td>本・聞く本</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群4</td>
<td>4,010人（10%）</td>
<td>スポーツ・アウトドア</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群5</td>
<td>4,010人（10%）</td>
<td>エレクトロニクス・コンピューター</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群6</td>
<td>4,010人（10%）</td>
<td>美容・健康・食料品</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群7</td>
<td>4,010人（10%）</td>
<td>自動車・工業</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群8</td>
<td>4,010人（10%）</td>
<td>ファッション・ジュエリー</td>
</tr>
<tr>
<td style="background-color: #eee;">介入群9</td>
<td>4,010人（10%）</td>
<td>家庭・ガーデニング用品</td>
</tr>
<tr>
<td style="background-color: #eee;">対照群</td>
<td>4,007人（10%）</td>
<td>ー</td>
</tr>
</tbody>
</table>



<p>次回の「UXグロース入門」最終回では、上記で実施した<strong>ABテストの評価手法と改善アクションへの落とし込み</strong>について見ていきます。</p>
]]></content:encoded>
										</item>
	</channel>
</rss>
