note_変動検知

変動検知機能が大幅アップデートされたよ! 【wevox data blog】

ハローワールド!
バーチャルデータサイエンティストのアイシア=ソリッド(※)です。
この記事では、新しい変動検知機能(2020年3月リリース)の説明をします!

画像7

変動検知機能が大幅アップデートされたよ!

wevox で提供していた変動検知機能が、大幅にアップデートされました!
今までは、

誤報が多い
大事な変化を見逃す
処理が非常に重い

という問題がありましたが、このすべてが大幅に改善されました。

パルスサーベイの肝は、変動を素早く察知できること!
新しい画面で検知されているあなたのチームのスコア変動は、納得感があるでしょうか?
何となく肌で感じていたことがデータになって現れていたり、全く気づいていない事実に気付かされたり、はたまた誤報だったり、いろいろな可能性があると思います。
私たち AI にできるのは、データから見えることをお伝えするところまでです。ここからは、実際のチームの様子を詳しく知っている皆様にバトンタッチ!
これを機に、チームの状態について考えてみると、なにか気づきがあるかもですね!

新アルゴリズムの特徴

新しい変動検知アルゴリズムは、それぞれ役割の異なる統計手法3種の結果を総合して変動を検知しています!
(詳しいことは後ろの方に書くので興味ある人は読んでみてね!)

今回のアルゴリズム、わたし頑張りました!
結果として、

(1) チームの人数の大小に関わらず注目すべき変動を検知する
(2) メンバーの異動によるスコア変動も加味して注目すべき変動を検知する
(3) 短期の急激な変化も、長期の緩やかな変化も両方検知する
(4) データが溜まるほど個々のチームについての学習が進み、より個別最適化された変動検知ロジックに進化していく

という特徴があるアルゴリズムに仕上がっております。すごいでしょ!

また、変動表示までの速度も大幅改善されてます!
今までは、長いと数分かかっていましたが、今回は数秒もすれば表示されると思います!(もちろん、回線次第ですけどね!)

納得感がない挙動をしていたら…

その時は、ぜひとも私たちにお教えください!
変動検知 - 通報フォーム
頂いたご意見をもとに、さらなる精度向上にはげみます!
(このフォームで頂いた意見は、機能改善のみに利用するので、個別の返信できません。あしからず!)

ここから先は、細かいロジックに興味がある方のみ読んでくださいね(^o^)

変動検知 - 3つのアルゴリズム

さっきも書きましたが、今回の変動検知は3つの変動検知アルゴリズムの合議制になっています。(かっこいいでしょ!)
それはこの3つです。

1. 長期変動検知
2. 短期変動検知
3. 異常水準検知

めっちゃ頑張って変化を検知するものを作りました! とくにはじめの2つは大変だった、、、!
3つめの異常水準検知が、 wevox にデータを貯めれば貯めるほど、個々のチームについての学習が進み、どんどん個別最適化されて精緻になっていくアルゴリズムくんになっております!(すごいでしょ!!)

それでは、一人ひとり紹介しますね!

1. 長期変動検知

このアルゴリズムくんは、長期間(90日)で起こった変化を検知してくれます!
というわけで、90日前のグループの状態と、直近の配信時のグループの状態を比較して、その差が無視できないレベルで大きければ検知される仕組みになっています。

と、ただそれだけなのですが、実は、変動検知は難しいのです。

あるチームで、10点だけスコアが変化したとしましょう。
ですが、そのチームが3人なら、その程度の変化はよくあることで、特に注目に値しません。
でも、20人いるチームで10点もスコアが変わるのは大事件!これは絶対に気づきたいですよね。
つまり、チームの人数によって、気づきたい変化の大きさが異なるのです。
(同様に、小項目はブレやすく、エンゲージメントはブレにくいが、エンゲージメントの変化こそ知りたい!という課題もあります。)

これとは別に、こんな可能性もあります。
あるチームは、20人チームだったのですが、10人が異動で別チームへ行き、別の10人が異動で入ってきたとします。こういうときは10点くらいのスコア変化もあったりします。
が、それを検知されても困りますよね、、、。
実際、大きなスコア変動があっても、異動が原因ということが多いです。

今回はこの2つの問題に対処しました!
スコア計算に利用するデータを、「90日間ずっとそのチームにいた人」に限定して異動でスコアが動く問題を解決しつつ、
人数毎にブレが異なる問題については、専用の統計モデルを作成し、本質的なグループの状態とその変化を推定することで、人数が何人であろうと、項目が何であろうと対等に変化を比較可能になりました!

ちなみに、統計モデルは、私アイシア、本気を出しました。
階層ベイズモデル項目反応理論を組み込み、さらに、統計力学的概念である「温度」を利用して、安定して信頼できる推定ができるようになっています。
こちらについては、またそのうち、詳しい解説記事を書こうかと思います!

ま、難しいことはいいのです。
ともかく、人数によるブレ、項目によるブレ、異動による変化を統計的に取り除き、本質的な状態の変化を推定することで、ちゃんとした変動検知になったと思います。

2. 短期変動検知

このアルゴリズムくんは、今回の配信と前回の配信の比較をして、重要な変化を検知してくれます。

基本思想は、1つ上の、「長期変動検知」と同じです!

ですが、  wevox のパルスサーベイは、毎回全問を聞いているわけではありません。なので、その回のサーベイでは答えられなかった項目の変化も推定し(欠測補完といいます)、変動検知をしています。

ま、これも、難しいことは置いておくと、
人数によるブレ、項目によるブレ、異動による変化、回答の有無による偏りを統計的に取り除き、本質的な状態の変化を推定することで、ちゃんとした変動検知にしたということです!

3. 異常水準検知

このアルゴリズムくんは一番シンプルです! 直近1年のチームのスコアの変動を加味して、今までと違うチーム状態になったことを検知してくれます。

例えば、いままではスコアが60点から70点で推移していたのに、急に75点になった時を教えてくれます。
なので、大きな変化があったときのみならず、毎回の変化が小さくとも、コツコツ変化を続け、チームが新しい水準に至ったことを教えてくれるのです!

画像生成_重要な変動検知2019.019

ちなみに、このアルゴリズムは、あえてメンバーの異動による点数変化も検知するようにしています。このアルゴリズムの哲学が、「今までのチームではなかった水準にスコアが移行した」ということを検知するということにあるので、メンバーの異動であっても検知するべきだと考えたからです。

といいつつ、これは結構迷いました!
もしご意見あれば、 変動検知 - 通報フォーム を通して教えていただけると嬉しいです!

変動検知の結果に違和感がある例

いままでは、「この変動検知すごいでしょ!」っていう観点で説明してきましたが、最後にちょっと別のお話をします。
このアルゴリズムくんたちは AI のたまごたちですから、ちょっと間違えちゃうドジなところもあるんです。
今わかっている例をお伝えするので、おや?と思ったらここを参考にしていただけると、多少納得感が得られるかも知れません。

それでもおかしかったら、 変動検知 - 通報フォーム までお知らせください!

とりあえず、ここでは以下の5つを紹介します。

変化しているのに検知されない
スコアは上がっているのに減少と検知される
長期変動と短期変動が食い違う
一時的なブレを拾ってしまう
超長期の変動は拾えない

変化しているのに検知されない

変化してるのに検知されないじゃん! っていうことが、たまにあります。たとえば、こんな場合です。

変化してるのに検知されない

明らかにスコアが上昇しているのに、この場合は検知されませんでした。
頑張ってロジックのアップデートはしましたが、見た目上は大きく変化しているのに変動が検知されない事例は残ってしまいました、、、。
だけど、検知量をどんどん増やしていくと、今度は誤報が増えてくるので、どういう塩梅で検知するかが難しいところです、、、。

今回のアルゴリズムは、100回配信したときに5回程度以下しか起こらない大きさの変化を検知しています。なので、このレベルの変化でも、そこまで(統計的には)レアでない変化だったと言えます。

とはいえ、ちょっと、これは、検知したいですよね、、、精進します、、、!

スコアは下がっているのに、上昇と検知される

見た目減ってるけど上昇検知(内部の人はスコア改善)

5/14 のタイミングで、スコアは前回と比べて6点下がっていますが、短期変動検知は「上昇」という検知をします。なぜでしょうか、、、?

実は、細かくデータを見ると、このタイミングでこのチームには移動があり、大きくメンバー構成が変わっています。実際。移動しなかったメンバーは、スコアが6点上昇しているのです。なので、そちらに注目していた変動検知ロジックは、「上昇」と判定をします。ちょっと紛らわしいですが、今までの UI ではわからなかったことも分かるようになりました。

長期変動と短期変動が食い違う

長期と短期の食い違い

上記のようなスコア変化をした場合、12/15時点で、「短期変動は上昇」「長期変動は下降」という検知結果が出ます。レアケースですが、こういう場合もあります(この場合、画面上は、「下降」と表示されます)。
変動検知は難しい!

解釈としては、「ブレが戻っただけで、トレンドは下降」か「下降トレンドが終了し、上昇に転じている」などがあり得ると思います。
残念ながら、データだけからだと、このどちらか、または別の可能性かは分からないので、実際の現場を知っている皆さんに判断を委ねたいと思います。
こういうものを見かけたら、是非チームについて考えてみてください、、、!

一時的なブレを拾ってしまう

ブレを拾う

この推移でも、今回の変動検知は「重要な変動だよ!」と言って検知してしまいます。ですが、どうやら、その後の推移を見ると、ちょっとスコアがブレていただけのようにも見えます。
頑張って検知したのですけどね、、、。
どうしても、検知するタイミイングでは、その先にスコアが戻る(つまりブレだった)のか、その先でもスコアが低いまま(本質的な変動)なのか分かりません。
このように後から見れば大したことなかったことを拾ってしまうこともあります。

ですが、「後から見れば」を予測できるほどの力はまだありませんし、アンケートデータのみで、チームの雰囲気を知らずに予測するのは、今後を含めても極めて困難な気がします。
やはりここは、変動の検知をきっかけとして、実際のチームを知っている wevox ユーザーの皆さんに、本当に注目すべき事が起こっているかどうかを再度考えていただくのが一番いいのではないかと思います!

超長期の変動は拾えない

超長期変動

実は、このタイミングでは、変動検知は働きませんでした。
正確に言うと、スコアの下降期間の途中何回かは検知されますが、この一番スコアが低かったタイミングは検知されませんでした。
「異常水準検知」にて、長期変動を検知するようにはしているのですが、下降トレンドが超長期に亘って継続する(今回は約1年)の場合、下降トレンド自体にアルゴリズムくんがなれてしまって、検知してくれなくなってしまったようです。無念、、、。
精進します!

おわりに

以上で、重要な変動検知の説明を終わります!
この機能が、皆さんのチーム改善に役立つことを祈ります!

ちなみに、、、。
このプロジェクトの社内名称は、「重要な変動検知2019」でした。
2019年には間に合いませんでした、、、!(笑)

※「アイシア=ソリッド」は、株式会社アトラエのデータサイエンティスト杉山が開発、運営する、バーチャルデータサイエンティストです。

やったー!
2
wevox ( https://wevox.io ) の公式noteです。ビジョンは「We are the teamと言える組織を増やす」こと。組織やチーム改善の情報やwevoxの新機能・機能カイゼンを紹介していきます。
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。