新製品を発売すると、コミュニティやレビュー掲示板に使用感の投稿がすぐに積み重なる。1つの投稿の中に称賛と不満が混在していることが多い。担当者が投稿を1つずつ読んでいては、どの不満から手を付けるべきか判断しにくい。
発売初期のソーシャルメディア投稿から不満要素を自動で抽出し、その中で最も緊急性の高い不満を数値で選び出すことはできるだろうか。
この問いに答えた論文を1本読んでみる。
- タイトル: A Social Media Mining Approach for Monitoring Customer Complaints in the Early Stage of Product Launch
- 学術誌: Journal of the Korean Institute of Industrial Engineers
- 年: 2021
- DOI: 10.7232/JKIIE.2021.47.3.289
論文は、製品発売初期の顧客の不満をモニタリングするソーシャルメディアマイニング(social media mining)のアプローチを提案している。ソーシャルメディアマイニングとは、ソーシャルメディアの投稿から有用な情報を抽出する分析を指す。この説明は論文ではなく筆者が付け加えたものである。
このアプローチは、発売初期に書かれたレビューだけを絞り込む。続いて、単語埋め込み(word embedding、語や句を数値ベクトルに変換する手法)とクラスタリング(clustering、似た対象をまとめる手法)で不満要素を見つける。最後に、文単位の感情分析で不満の度合いを数値として計算する。
この記事全体で使う用語は次のとおりである。
- 潜在的不満要素: レビューから抽出した名詞句を、意味が近いものどうしでまとめたクラスタ1つ。顧客が不満を述べうる製品の要素を指す。
- 緊急度(Urgency): ある不満要素に言及した文のうち、不満文が占める割合。
- 深刻度(Severity): それらの不満文の感情スコアの絶対値の平均。
- 顧客不満ポートフォリオマップ(customer-stated complaint portfolio map): 緊急度と深刻度を2軸にして、不満要素を4つの領域に分けたマップ。
動機: 発売初期の不満は、早く、文単位で読むべきである
なぜ発売初期の顧客の不満が重要なのか
論文が挙げている理由は次のとおりである。
- 顧客の不満は、製品の潜在的なリスク要因である可能性がある。製品企画で見落とした部分、技術的な欠陥、不完全な製品サービスシステムを教えてくれる。
- 不満を解決する過程で、製品を改善したり、新製品企画の新しいアイデアを得たりできる。
- 発売直後の初期に出たフィードバックは、後期に生じうるリスクを予防する。製品開発や改善の方向性といった対応戦略も早期に導き出せる。
- 論文は緊急度指標を定義する箇所で、先行研究を根拠に挙げている。製品の問題点を初期に検出すれば、後で生じるコストを減らし、顧客満足度を高められるという内容である。
- 投稿、レビュー、コメントといったソーシャルメディアの顧客意見データは、容易に入手できる。
企業もソーシャルメディアに注目している。論文が引用した統計によると、2020年2月時点で1億4千万社余りの企業がFacebook、Instagramなどのソーシャルメディアアプリを利用している。米国のFacebookユーザーの58%は、企業の投稿に接したあとで、その企業やブランドにより関心を持つようになった。
既存研究が扱っていない部分
先行研究は、ソーシャルメディアの投稿から顧客が共通して言及する要素を探したり、潜在トピックを導き出したりするためにテキストマイニングを適用した。投稿者の肯定的・否定的な感情を定量化するため、感情分析も併用した。プラットフォームはAmazon、Twitter、Facebook、Reddit、Yelpなど多様で、分野も電子製品、食品、公共交通など1つの産業に限られなかった。
論文は、この研究の流れに2つの欠落を指摘している。
- レビュー単位の感情分析の限界: 大半の研究は、レビュー1件の感情をまるごと分析した。ソーシャルメディアのレビュー1件には複数のトピックや意見が混在しているため、文のようなより細かい単位で分析してこそ、結果がより正確になる。
- 発売時点を考慮しない収集: ソーシャルメディアの分析結果は、発売後の時間によって内容も重要性も異なる。そのため、データが生成された日付を製品の発売日とあわせて考慮する必要がある。
手法: レビューを名詞句と文に分け、不満要素ごとに2つの指標を計算する
論文の手順は4段階である。
- ソーシャルメディアのデータを収集して前処理し、有効なレビューと名詞句を選別する。
- 名詞句をベクトルに変換してクラスタリングし、潜在的不満要素を定義する。
- レビューを文単位に分けて感情を識別し、不満文から不満要素ごとの定量指標を計算する。
- 指標に基づいて顧客不満ポートフォリオマップを作成し、先に改善すべき不満要素を見つけて対応戦略を提示する。
この記事も、論文の4段階をそのまま踏襲する。
事例と資料
事例の製品は、2019年3月に発売されたSamsungのスマートフォンGalaxy S10である。この製品は、従来のGalaxy Sシリーズに比べて、新しい機能を多数搭載していた。
- ワイヤレスバッテリーシェア
- オンスクリーン指紋認証
- 人工知能ベースのユーザー適応型Bixbyルーティン
研究チームは、機能が多く、ソーシャルメディアで顧客の意見が活発に共有された製品であるという理由で、Galaxy S10を選んだ。
資料は、RedditのGalaxy S10掲示板(subreddit)に書き込まれた投稿である。研究チームは、2018年12月1日から2019年8月31日までの9か月間に書かれた25,886件のレビューを収集した。各段階で残った資料の規模は、各段階の説明にあわせて記す。
第1段階: ソーシャルメディアデータの収集と前処理
- 入力: ターゲット製品に関するソーシャルメディアのレビュー全体
- 処理: 投稿日による初期レビューの選別、短いレビューとリンクの除去、名詞句の抽出とストップワードの除去
- 出力: 有効レビュー集合と有効名詞句集合
処理の順序は次のとおりである。
- 製品発売日から6か月間に書かれたレビューだけを残す。Galaxy S10の正式発売日は2019年3月8日である。研究チームは、2019年3月から8月までのレビューだけを残した。
- 空白と特殊文字を含めて10文字未満のレビューを除く。「Thanks!」「And why?」「[removed]」のような投稿が該当する。
- レビュー内のYouTube、Amazon、eBayなどのウェブアドレスを消す。
- spaCyで名詞句を抽出する。続いて、顔文字(「:D」)、擬音語(「haha」)、分析と無関係な言葉(「hello」「guys」)を除去する。
短いレビューは、有効な意味や情報を含まないとみなして除いた。名詞句は、不満要素を定義するための材料である。潜在的不満要素を表しにくい名詞句は、この段階で取り除く。
事例では、この段階を経た結果、有効レビューが13,976件、有効名詞句が2,831個だった。
第2段階: 潜在的不満要素の抽出
- 入力: 有効名詞句2,831個
- 処理: 名詞句の埋め込み、K-meansクラスタリング、クラスタのラベル付け
- 出力: 名前の付いた潜在的不満要素27個
処理の順序は次のとおりである。
- 事前学習済みのSentence-BERTで、すべての名詞句を埋め込みベクトルに変換する。Sentence-BERTは、意味の近い文がベクトル空間で近くに配置されるよう調整された文埋め込み手法である。
- Gap Statistic method(統計的手法で適切なクラスタ数を決める方法)で、最適なクラスタ数を決める。事例では27個だった。
- K-meansクラスタリングで、名詞句ベクトルを27個のクラスタに振り分ける。
- 各クラスタの中心に近い名詞句を参考にして、クラスタに名前を付ける。
ベクトルに変換するのは、類似した名詞句をグループ化するためである。レビューから製品に関連する名詞句だけをクラスタリングしたので、クラスタ1つを顧客の潜在的不満要素1つとして定義する。クラスタ数を統計的手法で決めれば、分析者の判断が介入しにくくなる。論文はこの点を、再現可能性の根拠に挙げている。
結果として得られたクラスタの例は次のとおりである。
- Battery: “battery use”, “battery usage icon”, “battery rating”
- Fingerprint: “fingerprint sensor”, “fingerprint recognition”, “fingerprint scanner”
- Protection: “glass protector”, “plastic screen protectors”, “glass screen protector”
第3段階: 不満水準の計量指標の定義
- 入力: 有効レビュー13,976件、不満要素27個
- 処理: 文分割、文ごとの感情分析、不満要素ごとの緊急度・深刻度の計算
- 出力: 不満要素ごとの緊急度と深刻度の値
処理の順序は次のとおりである。
- 有効レビューをすべて文に分割する。事例では54,664個の文が得られた。
- VADER(Valence Aware Dictionary and sEntiment Reasoner)で、文ごとに感情スコアを付ける。
- 感情スコアが0より大きければ肯定、0なら中立、0より小さければ不満文と判定する。
- 不満要素の名詞句が含まれる文を、その要素の関連文とみなし、要素ごとに肯定・中立・不満の文数を集計する。
- 集計した値から、緊急度と深刻度を計算する。
VADERは、単語辞書とルールに基づく感情分析ツールである。単語の感情だけでなく、特殊記号、大文字・小文字、接続詞まで考慮し、感情を-1以上1以下のスコアで出力する。
文単位に分ける理由は、論文の表2の例示レビューに表れている。このレビューは2つの文でできている。最初の文は、撮影ボタンを押すと端末が揺れて、写真がぼやけて撮れるという内容である。2番目の文は、動画モードでは問題がないという内容である。VADERは、最初の文に-0.1027、2番目の文に0.2716を付けた。
レビュー全体では0.1761となり、肯定的なレビューと判定される。レビュー単位だけで分析すると、写真撮影についての不満が抜け落ちる。研究チームは、このように不満が欠落するのを減らすために、すべてのレビューを文に分割した。
緊急度は、ある不満要素の名詞句が含まれる全文の数で、不満文の数を割った値である。顧客がその要素を語るとき、実際に不満を表出する度合いを表す。値が高いほど、緊急性の高い要素とみなす。
深刻度は、その要素の不満文が受けた感情スコアの絶対値の平均である。不満文の感情スコアは負の値なので、絶対値を使う。値が高いほど、顧客の不満が強いことを意味する。
計算例を挙げる。この例示レビューの2つの文だけが、ある不満要素の名詞句を含んでいると仮定する。関連文は2つ、不満文は最初の文の1つである。緊急度は1÷2=0.5である。深刻度は、不満文1つの絶対値なので|-0.1027|=0.1027である。
第4段階: 顧客不満ポートフォリオマップの作成
- 入力: 不満要素27個の緊急度と深刻度
- 処理: 2つの指標を軸として配置、平均を基準線として4つの領域に分割
- 出力: 領域別の不満要素リストと優先順位
処理の順序は次のとおりである。
- 不満要素ごとに、緊急度と深刻度をマップ上にプロットする。
- すべての要素の緊急度の平均と深刻度の平均を基準線として、マップを4つの領域に分ける。
- 領域に応じて、改善の優先順位を決める。順序は、Critical、RiskyとAlert、Trivialである。
- Critical領域の要素の不満文を読み、顧客が何を問題にしたのかを確認して、対応戦略を立てる。
4つの領域は次のとおりである。
- Critical: 緊急度も深刻度も高い。企業が最初に改善すべき要素である。
- Risky: 緊急度は低いが、深刻度は高い。頻繁には出てこなくても、出てくればCriticalの水準で深刻である。
- Alert: 緊急度は高く、深刻度は低い。頻繁に出てくるので、深刻度の変化を継続して見守る必要がある。
- Trivial: 2つの指標がともに低い。優先順位が最も低い。
平均を基準線にすれば、分析者が境界値を別途決めなくてもよい。事例では、27個の要素の緊急度の平均は0.2131、深刻度の平均は0.3600だった。
結果: Samsung Pay、指紋認証、バッテリーが最も緊急性の高い不満として現れた
2つの指標の上位の不満要素
緊急度が高い順は、‘Samsung pay’、‘Battery’、‘Fingerprint’、‘SNS’、‘Text and call’だった。深刻度が高い順は、‘Fingerprint’、‘Protection’、‘Samsung pay’、‘Battery’、‘Wide angle’だった。
3つの要素が両方のリストに入った。Samsung pay、Battery、Fingerprintである。反対に、SNSは緊急度の上位にだけ、Protectionは深刻度の上位にだけ入った。2つの指標が互いに異なる情報を含んでいることが、ここに表れている。
Critical領域の6要素
Critical領域には、6つの要素が入った。
- Samsung pay
- Battery
- Fingerprint
- Text & Call
- Camera
- Synchronization
これらの要素は、2つの指標がともに平均より高い。要素ごとの値の全体は、論文の表5にある。
このうち、Samsung pay、Fingerprint、Batteryは2つの指標が特に高く、研究チームが重点的に分析した。Samsung payは緊急度0.4069、深刻度0.4134だった。Fingerprintは緊急度0.2490、深刻度0.4211で、Batteryは緊急度0.2608、深刻度0.4045だった。
Samsung payの緊急度は、平均の約1.91倍である(0.4069÷0.2131≈1.91)。緊急度は不満文の割合なので、関連文のうち不満文の割合が0.4069だったという意味である。
Risky、Alert、Trivial領域の例
論文は、ほかの領域の要素を個別に列挙していない。ただし、表5の値を平均と比べれば、領域を確認できる。下の表の領域の表示は、筆者が平均と比較して付けた。
| 不満要素 | 緊急度 | 深刻度 | 領域 |
|---|---|---|---|
| Protection | 0.1689 | 0.4186 | Risky |
| Wide angle | 0.1863 | 0.4024 | Risky |
| SNS | 0.2302 | 0.3502 | Alert |
| Smart | 0.1442 | 0.3245 | Trivial |
出典: 論文 表5
Protectionは、“plastic cover”、“glass protector”のような名詞句でできた要素である。筆者はこれを、保護カバー・保護フィルム関連の要素とみなす。この要素の緊急度(不満文の割合)は、平均より低い。しかし深刻度は0.4186で、深刻度0.4211のFingerprintに次ぐ。筆者の判断では、不満の割合は低くても、不満が出れば強く出るRisky領域に当たる。
Samsung Pay: アプリが開かない接続エラー
Samsung payは、オフラインとオンラインの決済をともにサポートするSamsungのモバイル決済サービスである。この要素の主な名詞句は、‘connection error’、‘background loading failure’、‘error messages’だった。
不満文を読むと、原因が見えてくる。接続エラーのためにSamsung Payを起動できないという不満文が、主な不満の原因だった。研究チームは、Samsung Payはソフトウェアなので、アップデートで迅速に対応できると考えた。
指紋認証: 位置と認識率
Galaxy S10は、画面の中に指紋センサーを組み込んだ。光学式ではなく超音波式である。顧客は、センサーの位置が不便で、指紋を簡単に認識しないと不満を表した。
前モデルのGalaxy S9は、指紋センサーが本体背面の上部にあった。片手で持ったまま指を伸ばして使いやすく、認識速度も速かった。前面の下部にセンサーを組み込んだGalaxy S10は、使いにくく認識率が低いという意見が不満の原因だった。
顧客の不満を解決するため、2019年4月に、低い指紋認識率に関するアップデートが行われた。論文によると、その後の2019年10月に、英国で登録していない指紋も認識される現象がニュース記事として報じられた。論文が引用した報道の出典は、英国メディアThe Sunの2019年の記事である。この現象は、論文に引用された1件の報道に基づくものであり、この記事は報道内容の真偽を検証していない。
研究チームは、この報道を条件付きの形で解釈に反映した。論文の著者らは、ユーザーの指紋でなくても認識が可能であれば、個人情報や金融関連の被害につながりうると書いている。この被害の可能性は、確認された事実ではなく、論文の著者の解釈である。この解釈に基づいて、研究チームは、FingerprintはSamsung Payより頻度は低くても、不満の水準が非常に深刻であると判断した。
バッテリー: 5Gへの移行とプロセッサの違い
Batteryの主な不満は、バッテリーの持続時間が期待より短いことだった。論文は、原因を2つ挙げて説明している。
- 5G商用化の第一段階で、接続が円滑ではなかった。5GとLTEを頻繁に行き来したため、バッテリーが大きく消耗した。
- 販売地域ごとに、搭載されたアプリケーションプロセッサ(Application Processor、AP)が異なった。北米、中国、日本のモデルはSnapdragonを、韓国を含むその他の地域のモデルはExynosを搭載した。
レビューには、バッテリーとExynosが一緒に言及されることが多かった。一部の顧客は、Snapdragonモデルのバッテリー性能のほうが優れていると主張して、不満を表した。これはRedditユーザーの意見であり、モデル間のバッテリー性能の差は、この記事で検証した事実ではない。研究チームは、バッテリーの不満が5Gの利用環境とAPによって異なるため、緊急度に比べて深刻度が高いと解釈した。
対応策として論文は、まずバッテリー消耗に影響するソフトウェアの改善を提案している。次期製品のバッテリー部品の研究開発や、Exynosを搭載するかどうかの決定も課題に挙げている。論文によると、Samsungは次のシリーズであるGalaxy S20に、Snapdragonだけを搭載した。
抄録は、Samsung Payの接続エラーと指紋認識に関する不満が、発売後に速やかに改善されたと報告している。ただし、この報告は、改善が分析結果によるものだという因果関係を検証したものではない。指紋認識は、アップデート後にも別の問題が報じられた。
意義と限界
何が変わるのか
- 発売日とレビューの投稿日をあわせて考慮し、初期の不満情報だけを選別した。
- レビューを文単位に分けて感情分析を行った。1つのレビューに混在する複数のトピックと感情を、別々に扱う。
- レビューデータから不満を計量的に測定する指標を2つ、緊急度と深刻度として開発した。
- 専門家の介入を最小限にし、クラスタ数などのパラメータを統計的手法で決めた。論文は、そのため別の環境でも手順を再現できると主張している。
実務家にとっての有用性
このアプローチは、発売直後の数か月間に蓄積された顧客の投稿を、不満要素のリストと優先順位に変えてくれる。2つの指標は、発生したすべての不満要素を定量的に評価し、先に対処すべき要素を見つけるために使われる。
マップの領域は、対応の仕方も教えてくれる。Critical要素は即時改善の対象であり、Alert要素は深刻度の変化を見守る対象である。事例で研究チームは、Critical要素を、ソフトウェアアップデートで迅速に対応するものと、次期製品の開発に反映するものとに分けて提案した。
研究者にとっての有用性
ソーシャルメディアのレビューを扱う際に、分析単位と収集時点が結果を変えるということを、具体的な例で確認できる。レビュー1件が肯定0.1761と判定されても、その中の1つの文は不満-0.1027だった。論文は、このようなアプローチが、製品レビューを扱う研究者が顧客をより正確に理解するのに役立つと考えている。
論文が示した限界
論文自身が示した限界は2つである。
- 不満要素を名詞句で定義した。文そのもので不満要素を定義すれば、文の感情をより直観的に使える。
- 指標は、不満文の数と感情スコアだけで計算する。顧客の評点、顔文字のような要素を併せて反映した指標を使えば、より正確な結果が得られるだろうと論文は期待している。
筆者が考える適用条件
以下は論文に書かれた内容ではなく、筆者が実務への適用を念頭に置いて付け加える条件である。
- 製品1つに関する投稿が1か所に集まるチャネルがなければならない。事例のRedditの掲示板のように、製品別の掲示板があれば、収集と選別が容易になる。
- 感情分析ツールが、分析対象の言語に合っていなければならない。事例では、英語の投稿にVADERを使った。韓国語のレビューなら、韓国語に合ったツールをまず検討する必要がある。
- 緊急度と深刻度そのものは要素ごとの値であるが、マップの4つの領域は、27個の要素の平均を基準線として分けた相対的な区分である。不満要素の数が少なかったり、すべての要素が同程度に悪かったりすると、領域区分の有用性は下がる。
- マップは優先順位を教えてくれるだけで、原因までは教えてくれない。事例でも、原因は不満文を直接読んで把握した。
すぐに試してみること
- 最近発売した製品を1つ決め、発売日から6か月間の顧客の投稿を集める。10文字未満の投稿とリンクを消して、何件残るかを確認する。論文の第1段階をそのまま踏襲する最初のステップである。
- 残った投稿を文に分割し、関心のある製品要素3、4個について緊急度を計算する。要素に言及した文の数で、不満文の数を割ればよい。
- 同じ要素の不満文の感情スコアの絶対値の平均で、深刻度を求める。2つの指標の平均を基準線として、Critical領域に入る要素を見つけ、その要素の不満文を直接読んで原因を整理する。