筆者の見るところ、製品企画担当者が顧客の意見を集めるときは、アンケートを使うことが多いです。アンケートの設問は、企画担当者があらかじめ決めた属性で作られます。そのため、顧客が実際に気にしている属性が設問になければ、その意見は結果に現れません。この段落のアンケートの話は筆者の一般論であり、以下で取り上げる論文の内容ではありません。一方、顧客はブログ、Twitter、Facebook、Reddit(レディット)のようなソーシャルメディアに製品の話を書き込み、そうした投稿は急速に蓄積されていきます。
それでは、ソーシャルメディアの投稿だけから、顧客が実際に言及している製品属性を抽出し、そのうちどの属性を先に改善すべきか、順序まで決めることはできるのでしょうか。
この問いに答えた論文を1本読んでみます。
- タイトル: Social media mining for product planning: A product opportunity mining approach based on topic modeling and sentiment analysis
- 学術誌: International Journal of Information Management
- 年: 2019
- DOI: 10.1016/j.ijinfomgt.2017.09.009
論文はこの方法を機会マイニングアプローチ(opportunity mining approach)と呼んでいます。この方法は、ソーシャルメディアの投稿から、顧客が話題にしている製品のトピックを見つけます。次に、トピックごとに、どれくらい頻繁に言及されているか(重要度)と、どれくらい好意的に語られているか(満足度)を数値で求めます。最後に、2つの数値を組み合わせて、改善の機会が大きいトピックから順位を付けます。
この記事で使う主な用語は次のとおりです。
- 製品トピック(product topic): 顧客がソーシャルメディアで議論している製品のトピックです。この記事でいう「顧客が見ている製品属性」と同じ意味です。
- トピックモデリング(topic modeling): 文書集合に潜むトピックを推定する手法です。1つの文書は複数のトピックが混ざったもの、1つのトピックは複数の単語が混ざったものとみなします。
- 潜在的ディリクレ配分法(Latent Dirichlet Allocation, LDA): この論文が用いたトピックモデリングのアルゴリズムです。
- 感情分析(sentiment analysis): 書き手が肯定的な意見を述べたのか、否定的な意見を述べたのかを判別する作業です。
- 機会アルゴリズム(opportunity algorithm): 重要度と満足度の2つの値から機会を計算し、満たされていないニーズの優先順位を決める方法です。
動機: 積み上がる顧客の意見を改善の順序に変える方法が不足していた
なぜ製品機会を早期に見つけることが重要なのか
論文が挙げる理由は次のとおりです。
- 顧客分析において、新しい製品機会を早期に見つけることは、製品の開発・改善プロセスの第一の要件とされています。
- 機会を早期に見つけた企業は、競合が容易に模倣できない顧客との関係を築き、バリューチェーン上の競争上の位置を確保します。
- 製品ライフサイクルが短くなり、事業環境がグローバル化するにつれて、顧客のニーズは以前より速く変化し、複雑になりました。
- ソーシャルメディアは、顧客の意見をリアルタイムで大量に含む情報源です。論文が引用した調査では、米国の成人の86%、欧州の成人の79%がソーシャルメディアを利用しています。
既存研究が扱ってこなかった部分
感情分析は、すでに製品企画に使われてきました。オンラインレビューから製品の弱点を見つけた研究や、モバイルサービスの顧客満足を測定した研究があります。ユーザーの投稿からサービス品質を把握した研究や、ソーシャルメディアでブランドイメージを定義した研究もあります。
論文が指摘した空白は次のとおりです。
- 単語単位の分析にとどまり、顧客が語る潜在的な製品属性を見つけにくかった。
- 見つけた属性が改善の機会としてどれほど価値があるかを分析していなかった。
- 肯定と否定の判別に集中し、潜在的な機会を扱っていなかった。
- 多くが製品開発の方向性に関する指針を示していなかった。
方法: トピックで属性を見つけ、感情で満足度を付け、機会スコアを出す
論文は方法を4つのステップで説明しています。ステップ1では、対象製品に関するソーシャルメディアの投稿を集め、キーワードを抽出して整理します。ステップ2では、LDAで製品トピックを見つけ、トピックごとに重要度を計算します。ステップ3では、キーワードの感情スコアでトピックごとに満足度を計算し、ステップ4では、機会アルゴリズムで機会スコアを求めて改善の方向を決めます。
事例とデータ
事例の製品は、Samsung Galaxy Note 5(Samsung Galaxy Note 5, SGN5)です。このスマートフォンは、通話、無線インターネット、写真撮影といった一般的な機能を備えています。Sペン、ワイヤレス充電、Samsung Payといった、この端末ならではの機能もあります。研究チームは、機能が多く、ユーザー規模が大きいため、分析過程を説明するのに適していると判断しました。
データ源はRedditです。TwitterやFacebookのデータは、分析者が決めたキーワードやハッシュタグでしか収集できません。これに対して、サブレディット(関心分野ごとの掲示板)には、製品キーワードを含まない間接的な意見まで蓄積されています。
研究チームは、SGN5のサブレディットから文書23,614件を収集しました。投稿が2255件、コメントが21,359件です。作成期間は2014年11月7日から2016年1月31日までです。発売日(2015年8月21日)より前は、1日平均4.41件が投稿されました。発売日以降は1日平均136.25件で、発売前の31倍です。
ステップ1: データ収集と前処理
- 入力: 対象製品に関する顧客のソーシャルメディア投稿
- 処理: キーワード抽出、無意味なキーワードと文書の除去
- 出力: 文書ごとのキーワードと出現頻度を記した配列
- 対象製品を扱った顧客の投稿を集めます。ウェブクローリングや、ソーシャルメディアが提供する公開のアプリケーションプログラミングインターフェース(Application Programming Interface, API)を使います。
- 投稿ごとにキーワードや重要なフレーズを抽出します。
- 絵文字、擬音語・擬態語、分析に無関係な単語や一般的すぎる単語を除きます。
- 1つの投稿を、キーワードとその頻度の配列として整理します。
論文は、こうして整理したデータから文書-キーワード頻度行列を作り、この行列をLDAの入力として使います。
事例では、研究チームは高速自動キーワード抽出アルゴリズム(Rapid Automatic Keyword Extraction, RAKE)を使いました。RAKEは学習データが不要で、分野や言語を問わず使え、複合語も抽出します。最初はキーワードが32,637個得られましたが、ウェブページのURLや「WoW」のような口語が混ざっていました。
研究チームは、文書内の出現頻度と文書頻度(Document Frequency, DF)の基準でキーワードをふるいにかけ、残ったキーワードのうちSGN5と無関係なものは人手で削除しました。その結果、キーワード3539個が残りました。このキーワードを1つも含まない文書12,491件は、広告などのノイズ文書とみなして除外しました。最終的な分析対象は文書11,123件です(23,614 − 12,491 = 11,123)。
ステップ2: 製品トピックと重要度を見つける
- 入力: 文書-キーワード頻度行列、キーワードリスト、トピック数
- 処理: LDAの実行、トピック名の付与、トピックごとの寄与度の合算と正規化
- 出力: 製品トピックの一覧と、トピックごとの0~10の重要度
- 文書を行、キーワードを列とし、各要素にキーワードの出現頻度を記した行列を作ります。
- トピック数を決めます。トピック数を変えながら、すべてのトピックの組の平均コサイン類似度を求めます。そして、その値が最も低くなる点を選びます。
- LDAを実行します。LDAは、入力行列を文書-トピック行列とトピック-キーワード行列に分解します。
- 寄与度の大きいキーワードと文書を読み、トピックごとに人が名前を付けます。
- トピックごとに、すべての文書に対する寄与確率を足し合わせて重要度を求め、0~10に正規化します。
トピック数をこのように決めるのは、トピック同士が最もよく区別できる数が適切な数だと考えるからです。コサイン類似度は、2つのベクトルの間の角度のコサイン値です。2つのベクトルが同じなら1になります。したがって、トピックの組の平均類似度が低いほど、トピックの重なりが小さいことになります。
重要度の出発点は寄与ストック(contribution stock)です。文書-トピック行列で、あるトピックの列をすべての文書について足した値で、そのトピックがユーザーにどれだけ多く言及されたかを表します。正規化の式は「10 × (該当トピックの寄与ストック − 最小値) ÷ (最大値 − 最小値)」です。最も多く言及されたトピックは10点、最も少なく言及されたトピックは0点になります。
事例の数値で計算してみます。寄与ストックの最大値はSamsung Payの202.2198、最小値はAccessoryの165.9974です。Fast chargeの寄与ストックは191.5701です。重要度は10 × (191.5701 − 165.9974) ÷ (202.2198 − 165.9974) = 10 × 25.5727 ÷ 36.2224 = 7.0599で、論文の表6の値と同じです。論文本文には、最大値・最小値と一部のトピック(Samsung Pay、Fast charge、Software update)の寄与ストックだけが載っており、正規化した重要度の全体は表6にあります。
事例では、平均コサイン類似度の変曲点はトピック数65で現れました。このときの平均類似度は0.04554でした。研究チームはLDAをNetminerで実行しました。例えばTopic-10は、主要キーワードがSD(0.130)、SD-card(0.094)、removable battery(0.049)、MicroSD(0.036)、IR blaster(0.016)であるため、「Expandability(拡張性)」という名前が付けられました。
ステップ3: 製品トピックの満足度を計算する
- 入力: キーワードが出現した文、ステップ2のトピック-キーワード行列
- 処理: キーワード感情スコアの平均、感情重み付き行列の作成、トピックごとの合算と正規化
- 出力: トピックごとの0~10の満足度と、感情重み付きトピック-キーワード行列
- キーワードが出現するたびに感情スコアを求め、キーワードごとに平均を取って、キーワード感情ベクトルを作ります。
- トピック-キーワード行列の各行にキーワード感情ベクトルを掛け、感情重み付きトピック-キーワード行列を作ります。
- 行ごとに値をすべて足して、トピックの感情ストック(sentiment stock)を求めます。
- 感情ストックを、重要度と同じ方法で0~10に合わせます。
感情分析の方式は、辞書ベース、テキスト分類ベース、ディープラーニングベースに分けられます。論文はディープラーニングベースを選びました。Twitterの投稿のような短いテキストの感情分析で成果が良かったためです。実際の分析には、IBM WatsonプラットフォームのAlchemyAPIを使いました。分類器を自前で実装して検証する時間を減らし、大規模なデータで学習した分類器の精度を活用する目的でした。
同じキーワードでも、文によって感情は異なります。「battery」は、アプリがバッテリーを消耗すると責める文で−0.9013を得ました。反対に、バッテリーが問題ないという文では0.8790を得ました。そのため研究チームは、キーワードごとの平均値を感情の重みとして使いました。
キーワードごとの感情の重みは、正の値と負の値に分かれました。画面素材のAMOLEDは0.5689で正の値、指紋スキャナー(finger print scanner)は−0.5141で負の値でした。batteryとSD cardも負の値でした。全キーワードの重みの一部は、論文の表5に載っています。
事例では、キーワード3539個が文書11,123件の中で合計105,483回出現しました。感情ストックが最も高いトピックはTouch wiz(0.1093)、最も低いトピックはDetect pen1(−0.2918)です。平均は−0.0999、標準偏差は0.0791でした。65個のトピックのうち36個が平均より高くなりました。正規化後、Touch wizの満足度は10.0000、Detect pen1は0.0000です。
ステップ4: 機会アルゴリズムで製品機会を見つける
- 入力: トピックごとの重要度と満足度、感情重み付きトピック-キーワード行列
- 処理: 機会スコアの計算、機会ランドスケープマップの作成、上位トピックの感情キーワードの解釈
- 出力: トピックごとの機会スコアと改善の方向
- トピックごとに機会スコアを計算します。
- 重要度と満足度を2つの軸とする機会ランドスケープマップ(opportunity landscape map)を描きます。このマップは、適正充足(served-right)、過剰充足(over-served)、未充足(under-served)の3つの領域に分かれます。
- 機会スコアの高いトピックから、感情の重み値が大きいキーワードを探し、満足を高める、または不満を減らす方向で改善の方向を決めます。
機会アルゴリズムは、ウルウィック(Ulwick)が成果重視のイノベーション(Outcome-Driven Innovation, ODI)とともに提案しました。ODIは、ニーズが重要であるにもかかわらず十分に満たされていないときに、イノベーションの機会があると考えます。式は「機会 = 重要度 + Max(重要度 − 満足度, 0)」です。重要度が満足度より高ければ、その差を重要度にもう一度足します。満足度のほうが高いか等しければ、重要度だけが残ります。
事例の値で3つの場合を計算してみます。
- Fast charge: 重要度7.0599、満足度5.4720です。7.0599 + (7.0599 − 5.4720) = 7.0599 + 1.5879 = 8.6478。
- Software update: 重要度4.6186、満足度4.9924です。差が負の値なので0になり、機会スコアは重要度と同じ4.6186です。
- Detect pen1: 重要度2.2850、満足度0.0000です。2.2850 + (2.2850 − 0) = 4.5700。
未充足領域のニーズは、重要度に比べて十分に満たされていないニーズであり、機会アルゴリズムはこれをイノベーションの機会とみなします。
結果: Samsung Pay、高速充電、Sペンとバッテリーのトピックが改善機会の上位を占めた
顧客が挙げた65個のトピックの構成
65個のトピックのうち6個が、バッテリーと充電を扱っています。Battery life、Battery usage、Battery drain、Fast charge、Charger、Wireless chargeです。前モデルのGalaxy Note 4と比べて、新しく加わった、あるいは変わった機能も、6個のトピックとして捉えられました。Samsung Pay、Pen out、Expandability、Wireless charge、Screen off memo、Samsung Pay on ATMです。
ソフトウェア関連のトピックは13個で、最も多くなりました。Software update、Music App、Multi-window、Touch wizなどがここに属します。研究チームはこの結果を根拠に、スマートフォン市場ではソフトウェアがハードウェアと同じくらい重要だと解釈しました。
重要度と満足度の分布
寄与ストックの平均は171.1228、標準偏差は6.58でした。65個のトピックのうち、平均より高いトピックは20個だけです。研究チームは、Samsung Pay(202.2198)、Fast charge(191.5701)、Software update(182.7272)を、平均から大きく外れた値として挙げました。
正規化後の、全トピックの平均重要度は1.4150、平均満足度は4.7854でした。
機会スコア上位のトピック
機会ランドスケープマップで、未充足領域にあり、かつ機会スコアが高いトピックは7個です。Samsung Pay、Fast charge、Battery life、Expandability、Pen out、Detect pen1、Detect pen2です。これらのトピックは、いずれも満足度が重要度より低くなっています。全トピックの平均機会スコアは1.7098です。トピックごとの値の全体は、原論文の表6(重要度と満足度)と表7(機会スコア)にあります。ここでは代表的な事例を2つだけ見ます。
Samsung Payは、重要度10.0000、満足度7.8185、機会スコア12.1816で、機会スコア1位です。満足度は平均の4.7854より高いものの、重要度の10.0000よりは低くなっています。満足度が重要度より低いため、未充足領域に分類されます。研究チームは、SGN5で初めて登場した機能であるため、言及と期待が多かったと解釈しました。
Detect pen2は、重要度が4.3805で、Pen outの4.6130より低くなっています。しかし、満足度は0.1384で、Pen outの0.6877より低くなっています。そのため、Detect pen2の機会スコア8.6225が、Pen outの8.5384を上回りました。論文は、Sペンが他のスマートフォンにはないGalaxy Noteシリーズの核心機能だと説明しています。
Fast chargeとBattery lifeは、結局のところ使用時間に関係します。Expandabilityの主要キーワードである交換式バッテリーも、使用時間につながります。高電圧充電、ワイヤレス充電、新素材といった解決策が出たにもかかわらず、顧客のニーズは残っていました。
感情キーワードから読み取った改善の方向
研究チームは、機会スコアの高い6個のトピックから、主要な肯定・否定キーワードを読み取り、改善の方向を整理しました。
- Samsung Pay: 否定キーワードは、近距離無線通信(Near Field Communication, NFC)と、「Apple pay」「Android pay」のような競合サービスに集中しました。肯定的な体験とプロモーションへの反応は良好でした。研究チームは、NFC対応と認識率の改善が必要だと考えました。
- 高速ワイヤレス充電: 充電電力を5.0V 2.0A(10Wh)から9.0V 1.67A(15Wh)へと1.5倍に高めた機能です。顧客は充電速度には満足していましたが、充電が途切れる問題には不満でした。その後に発売された充電器(EP-NG930)は、コイルをもう1つ入れて認識領域を広げました。
- Detect pen2: プッシュ・トゥ・イジェクト(push-to-eject)方式で、Sペンを逆向きに挿すと端末が故障する不具合が、否定キーワードとして現れました。「S-Pen sensor」「S-Pen Backwards」「spring mechanism」がそのキーワードです。この不具合は、その後の改訂版で解決されました。
- Battery life: 「Package Disable」「background service」「unnecessary process」のように、使用時間を延ばすためのソフトウェア上のコツが捉えられました。研究チームは、ハードウェアとソフトウェアの両方を改善する必要があると考えました。
- Expandability: マイクロSDスロットの廃止に反対する顧客が多くいました。しかし、顧客はクラウドストレージや、「battery-pack」「portable power banks」のような代替手段を探しました。
- Software update: 「optimization」は肯定キーワードで、全文書の中で9回出現しました。一方、「factory reset」と、アップデート後の発熱・バッテリー消耗は、不満として現れました。
意義と限界
何が変わるのか
- 単語単位ではなくトピック単位で分析することで、顧客が語る潜在的な製品属性を定義します。
- 感情の判別にとどまらず、トピックごとに機会スコアを計算して、改善の優先順位を付けます。
- 感情重み付きトピック-キーワード行列によって、トピックごとに改善の方向の指針を与えます。
- テキストデータのみに依存するため、製品以外にも、サービスや製品サービスシステムに使えます。
実務者にとっての有用性
製品企画担当者は、あらかじめ決めた設問がなくても、顧客の投稿から属性の一覧と改善の順序を同時に得られます。機会スコア上位のトピックの否定キーワードは、そのまま改善課題の候補になります。Samsung PayのNFCや、ワイヤレス充電器の途切れがその例です。
研究チームは、この手順をソフトウェアシステムとして実装できると考え、リアルタイムの顧客モニタリングツールとして使われることを期待しました。レビューの作成時点も合わせて分析すれば、顧客ニーズの推移も追跡できます。
研究者にとっての有用性
この論文は、トピックモデリング、感情分析、機会アルゴリズムを1つの手順にまとめました。論文は、感情分析に、辞書ベース、テキスト分類ベース、ディープラーニングベースなど、さまざまな手法を使えると述べています。ここからは筆者の意見です。ステップごとに別の手法に入れ替えて結果を比較する研究設計も、試してみる価値があります。
論文が述べた限界
論文自身が述べた限界は3つです。
- 重要度と満足度を、最大値と最小値で正規化した相対値として使いました。0~10の尺度に合う絶対値を定めるのが難しいためで、標準的な基準を定めることは今後の課題として残りました。
- 過剰充足領域のニーズをさらに調べる必要があります。この領域は、破壊的イノベーションの手がかりになりえます。
- 製品1つにしか適用していません。サービスや製品サービスシステムなど、他の分野に適用する研究が必要です。
筆者が考える適用条件
以下は論文に書かれた内容ではなく、筆者が実務への適用を念頭に付け加える条件です。
- 寄与ストックの差が小さいとき、正規化はその差を大きく広げます。事例では、寄与ストックの最大値と最小値の差は202.2198 − 165.9974 = 36.2224で、この範囲が0~10の全体に広がります。したがって、中位のトピックの順序は慎重に読む必要があります。
- トピック数やキーワードリストが変わると、最大値と最小値が変わり、すべてのスコアが一緒に変わります。期間別に比較するには、同じキーワードリストとトピック数を維持する必要があります。
- コミュニティのユーザーは、顧客全体と異なる可能性があります。ソーシャルメディアの結果は、他の顧客データと合わせて読むほうが安全です。
- トピック名は人が付けます。2人以上が別々に名前を付けて照合すれば、解釈の一貫性を確認できます。
すぐに試せること
- 自社製品を扱ったコミュニティの投稿を集め、キーワードを抽出します。絵文字、擬音語・擬態語、無関係な単語を削除したあと、残ったキーワードが1つもない文書を除き、文書数とキーワード数を確認します。
- トピック数をいくつかの値に変えて、LDAを実行します。トピックの組の平均コサイン類似度が最も低くなる数を選んだあと、寄与度上位のキーワードと文書を読み、トピックごとに名前を付けます。
- トピックごとの重要度と満足度を0~10に合わせた表を作ります。「重要度 + Max(重要度 − 満足度, 0)」で機会スコアを計算し、上位トピック数個の否定キーワードを読んで、改善課題のリストを作ります。