量子アニーリングによる組合せ最適化を弊社における課題に向けて実装する為にどうすればよいか考えたら営業担当最適化が良いかなと思って検討中
これまでに書いたあれそれはこちら
組合せ最適化問題ってどんなものかをかんたんに言うと「あちらを立てればこちらが立たず」状態の最適化のことです。
事例で言えば、100人の人が街中の色々な地点に散らばっています。大地震が起きた際に、各人は避難場所へ向かうことだけは決まっていますが、どのような道を通って避難場所へ向かえばスムーズに到着出来るでしょうか。みたいなものです。選択肢は無限にあり、どれを選択するかは自由ですが、なるべく早くたどり着く必要があったり、道幅にはキャパシティがあるので込みすぎないように誘導したいという制約条件が課せられたりするというような感じです。
言われてみれば確かになとは思うものの、現実的にどんな問題を解けば良いかな?というのはパッと浮かびませんよね。そんな事は当然で、その為に我らが指導者大関真之先生がそれはもう長時間を投じて講義&演習を展開してくれている訳です。詳細はこちらから、ドキュメントも動画もすべて公開されています。
リバネスで当てはまる課題ってなんだろうか?
こういうのって、今までは人力でなんとなくやってきた事なんですよ。それなりにやれているし、じっくり観察しないと、まぁいいかってなってしまう事が多い気がします。だから課題を想定するのに時間がかなりかかりますね。
リバネスで言えば、例えばプロジェクトのチーム編成なんかが当てはまります。
制約条件は
・人数に上限がある
・人間には稼働時間の限界が設定されている(8h/day)
・複数のプロジェクトに関わっている
・個人にはやりたい仕事の方向性がある
というようなものです。
人間がチーム編成をすると何が起こるかというと、あいつこんな仕事好きって言ってたからアサインしちゃおう!っていうのが一番かんたんなやり方です。それを繰り返していくと、仕事が増えすぎてパンクしてしまう。うまくマネジメントするにはそれなりにマネージャーが時間をかけて検討せざるを得ません。
多分これは最適化する必要があるのですが、パラメータが多いので、課題としてはもう少し慣れてからにしようと思って温存しています。
もっと実現できそうなテーマ:Pardotのアサイン最適化
Pardotっていうのは、Salesforceが提供するMarketing Automation(MA)ツールです。この中には、ユーザーデータが登録されており、メールの配信を行ったり、Webへのアクセストラッキングの機能が提供されていたりします。
Pardotの建前的には、これを使いこなす事によって営業効率が上がりますよという話になっていて、もちろん効率向上には寄与するし弊社も使い倒していますが、もう少しここなんとかならんかなと思っているのが、表題に示したアサインです。
Pardotに入っているユーザはProspectsと表現されており(見込み顧客みたいな意味です)、彼らがメールを開いたり、リンクをクリックしたり、Webサイトにアクセスしたりといったシグナルを受信しています。それらのデータをどうやって活用するのかについては先日書いたばかり。
アサインというのは、Prospects一人に対して、弊社スタッフを一人割り当てる事が出来ます。割り当てられると何が起きるかというと、その人たちがどんなアクションを取りましたよというのがメールで届きます。
ただですね、何年もPardotの運用をしていると、かつては確かに自分が担当していたほうが良かったみたいな人も、部署が変わり担当するプロジェクトが変わったりして、自分じゃないよなーってなります。その時点で適切に処理するとか引き継ぎをすればよいのですが、数が多いと成立しません。ましてやPardotのUIに慣れているのは、管理者のみで学習コストがかかります。その引き継ぎが業務効率向上に寄与すると言い切れない段階で現場に負荷をかける訳にもいかないしなと思っていた所に、量子アニーリングによる組合せ最適化問題への帰着というアイデアが生まれたわけです。
技術っていうのは
・儲かる予感がする所
・しかし人力でやるには時間がかかりすぎる所
・実験的にやっても影響がなさそうな所
に当てはめるのが良いと思っています。
3つ目については、弊社では現状のPardotのアサイン機能はすでに機能していないので、それを改善する分には良くはなっても悪くはならないということです。
ということで組合せ最適化問題を解いてみよう
詳細はこんな感じですね。
現実の課題へのアプローチをどうやるかというと、現実を数式に落とし込むことになります。これは↑にも貼りましたが、ここで書いたとおりです。
最初はちんぷんかんぷんだった立式も、授業の事例を見返したり、過去2回に渡って行われた11時間を超える長時間演習で、他のチームのメンバーが考えたアプローチを見返してアイデアをもらったりで、なんとなく出来る様になってきました。
久しぶりに数式書いたよ。あとはpythonで実装するだけ、という所まで来ています。
考えていくと広がる世界
上記の式は昨日書いた訳ですが、一日経ってみると、あらが見えてきます。
今回は、ユーザー側のデータで興味関心度合いを割り出し、担当者に割り当てましたが、これをやるとどうなるかというと、例えばめちゃくちゃ有名なプロダクトみたいなものがあったりすると、それに一極集中してしまいます。最適化すべきは営業担当者ではなく、営業担当者がその人気度に応じて商材への知識量をしっかりと増やすという社内教育側をなんとかしたほうが現実的だろみたいな事に行き着いちゃったりする。
ということで、僕の仕事はCIOですから、情報の活用を通して、弊社グループを加速させる事がミッションになっていますが、こんな新しいアプローチも貪欲に吸収しようとしておりますというお話でした。
人材募集中
リバネスでは、Salesforce関連のAdmin職及び、自社Webサービスの開発エンジニアを募集しています。興味ある!という人は是非お知らせ下さい。
noteにはこれまでの経験を綴っていこうかと思います。サポートによって思い出すモチベーションが上がるかもしれない。いや、上がるはずです。