タスク整理に無理やり使う
聞き出しチャットシステムが一つのタスクを掘り下げてしまうので、複数のタスクがある時のタスク整理に向いていない、という話、であれば、タスクごとにチャットを開いたら良いのではないか、という無茶な実験をしてみた
→結論:目的達成
考察
タスクごとに個別にチャットを開けば、個別に掘り下げられる
Mattermost時代にはできなかったやり方だ
前のタスクが価値の質問まで結晶化することで、後のタスクに良い影響が出る
2番のチャットでキーワードの増加速度が大事と言語化されたから、5番のタスクに強い存在意義が生まれた
始める前は次は4番かなーと思ってた
個別のタスクが詳細化したことで人間が優先順位をつけやすくなったのであって、0番のチャットは相槌モードにして質問しないようにしてた
質問ありにしてたら5つのタスクそれぞれについての総括をやるのはやりづらかっただろう

あなたはこの会話で何が起きて欲しいですか?

複数のタスクから次にやるタスクを選ぶのには現状の仕組みは向かない、という話で、じゃあ個別に掘り下げたらどうなるかを試してみたい

そのタスクは、どんな種類のタスクですか?

あなたはこの会話で何が起きて欲しいですか?

終わりのデザインについて考えたい

そのデザインは、どんな種類のデザインですか?

この対話をどうやって終わらせるか。一つ目の案、「なるほど」の出現で「今何が起きましたか」を出して、気づきの内容の言語化をしてから「ここは終わるのに良いところですか」を出し「はい」なら終わる、二つ目の案、機械学習で「何が起こりましたか」や「終わるのに良いところですか」を出す

その対話は、どんな種類の対話ですか?

質問されてそれに答えて、だと無限に続いてしまう。人間の側も疲れるし、良いキーワードを使い尽くしてしまって大体だんだん質問の質が下がって嫌な終わり方になる

その側は、どんな種類の側ですか?

NGKW 側

そのだんだん質問は、どんな種類のだんだん質問ですか?

良さそうな質問から順に出すから、長く続けると、人間から十分良いキーワードの供給がない限りだんだん悪化する

そのタスクは、どんな種類のタスクですか?

まず聞いて

はい

一つ目のチャットの最中に思いついた別のこと、序盤の各ステップの抽出済みキーワードを見ると、うまく発展していくケースとそうでないケースで差があるのでは。それを使ってうまくいかなさそうな状況を検知してより良くするためのアドバイスを出せるのでは

序盤
(追記: このキーワード抽出を見て「そうか、やりたいことは『序盤のデザイン』だ、と思った)

その人間は、どんな種類の人間ですか?

それはさておき、機械学習でやるか、ルールベースでやるか

その機械学習は、どんな種類の機械学習ですか?

色々な特徴量から二値分類する。どんな特徴量が必要かというと、直前の入力や、質問、キーワードの消耗具合、会話の長さ、とかかな

その質問は、どんな種類の質問ですか?

質問によって気づきを促す確率の高さって異なると思うんだ

その質問について、他に何かありますか?

(2つ目のチャットを開始する)

思い出した、質問によっては回答の選択肢を押し込みたいのだった。具体的には「ここは終わるのに良いところですか?」は「はい」を出して、それを押すと終了するようにしたい

あなたが価値を感じているのは何ですか?

ストンと綺麗に終わると気持ちがいい。だらだら続くのを切り上げるのより良い。

その気持ちは、どんな種類の気持ちですか?

きちんと終わった感じ。それで思い出したけど、チャットシステム側の判断で入力欄を消したい。

そのチャットシステム側は、どんな種類のチャットシステム側ですか?

プログラムの判断でってこと。

その判断は、どんな種類の判断ですか?

ここで対話は終了だ、と判断したら入力欄を消して、終わらせる。

その対話について、他に何かありますか?

(一旦離れる)

あなたはこの会話で何が起きて欲しいですか?

序盤のデザインについて考えたい

その序盤は、どんな種類の序盤ですか?

この対話の序盤において、上手く軌道に乗れないで墜落しちゃう人がいる、うまく軌道に乗せる手助けをしたい

その序盤について、他に何かありますか?

チャットシステムはキーワードに対して掘り下げ質問をするのだが、たとえば極端な例としてはまったくキーワードのない文章を入れる人がいる。そういうケースでは当然キーワードがないのだからまともな質問ができない
> この対話の序盤において、上手く軌道に乗れないで墜落しちゃう人がいる、うまく軌道に乗せる手助けをしたい
この序盤は、どのあたりにありますか?

特に初めて使う時だね、過去ログを見ることをおすすめしてるのだけど、見ないで起動してしまい「何が起きて欲しい?」に「別に」とか入れたりする。まあそういう極端なケースはさておき、ある程度ログを読んでる人でもNGKWを多用しすぎてキーワード枯渇に陥ったりする
> この対話の序盤において、上手く軌道に乗れないで墜落しちゃう人がいる、うまく軌道に乗せる手助けをしたい
あなたはこの序盤をどう知るのですか?

(なんでこんなに序盤にフォーカスするんだろう?)

序盤がうまくいってないことをどうやって知るかというと、おそらくうまくいってるログといってないログを比較すると抽出されたキーワード数の伸びに大きな差があってそれで判断できると思う

その序盤は、どこにありますか?

🙁
> 序盤がうまくいってないことをどうやって知るかというと、おそらくうまくいってるログといってないログを比較すると抽出されたキーワード数の伸びに大きな差があってそれで判断できると思う
この序盤は、何のようですか?

既にでてるけど、ロケットの打ち上げのようなもので、ある程度の速度を出さないと墜落してしまうんだ

そのロケットは、どんな種類のロケットですか?

月にたどり着くためのロケット

そのロケットについて、他に何かありますか?

速度が足りないことは検知できるけど、検知した時に何をすれば良いかわからない

その速度は、どんな種類の速度ですか?

キーワードの増加の速度

その速度について、他に何かありますか?

逆にどんどん減らしちゃう人もいる

その人は、どんな種類の人ですか?

キーワード抽出の評価を厳格にやりすぎて、ちょっとでもおかしいとどんどんNGKWしちゃう。キーワード抽出エンジンの学習データを作るお仕事をしてるわけじゃなくてこのチャットシステムを使うことで気づき(月)に到達することが目的なはずなのに、逆効果な行動をしてしまう

そのチャットシステムは、どんな種類のチャットシステムですか?

人間のまだ言語化してないものを取り出す

あなたが価値を感じているのは何ですか?

このチャットシステムを使うことで、まだ言語化できてなかったことが言語化できたり、盲点に気づいたり、そういうことが起きる、うまく使ってる僕は高確率で起こせるので、他のユーザにもうまく使えるようにして気づきを体験してほしい

そのチャットシステムについて、他に何かありますか?

うーん、使い慣れるのに練習が必要なのかな?
> このチャットシステムを使うことで、まだ言語化できてなかったことが言語化できたり、盲点に気づいたり、そういうことが起きる、うまく使ってる僕は高確率で起こせるので、他のユーザにもうまく使えるようにして気づきを体験してほしい
このチャットシステムは、何のようですか?

24時間いつでもチャットで話せてるカウンセラーなのだけど、日本語がちょっとぎこちない。日本語のミスをいちいち指摘してたら話が進まない。
> このチャットシステムを使うことで、まだ言語化できてなかったことが言語化できたり、盲点に気づいたり、そういうことが起きる、うまく使ってる僕は高確率で起こせるので、他のユーザにもうまく使えるようにして気づきを体験してほしい
このチャットシステムは、どこから来るのですか?

(ここで一旦次のタスクへ)

あなたはこの会話で何が起きて欲しいですか?

よくないキーワードを弾く機能について考えたい

そのキーワードは、どんな種類のキーワードですか?

このシステムが質問に使うやつ

そのやつは、どんな種類のやつですか?

NGKW やつ

そのシステムは、どんな種類のシステムですか?

キーワードに質問することで掘り下げていく

そのキーワードについて、他に何かありますか?

でも、別のチャットで話したようにキーワード少なすぎになる人がしばしばいるんだよな…キーワードを減らす方向の修正より増やす方向を優先すべきなのかも?

そのキーワードは、何のようですか?

魚を釣り上げるための釣り針

その釣り針は、どんな種類の釣り針ですか?

たくさんあった方が釣れる可能性は上がるが、ダメな釣り針が増えても意味はない
> でも、別のチャットで話したようにキーワード少なすぎになる人がしばしばいるんだよな…キーワードを減らす方向の修正より増やす方向を優先すべきなのかも?
このキーワードは、どこにありますか?

明らかにダメなキーワードってのがいくつか見つかってる、過去ログをNGKWで検索すると110件ほど。中には僕からするとダメじゃないものもあるが「つ」みたいなダメなやつもある

そのキーワードは、どのあたりにありますか?

データファイルの中に散らばってるので、集計スクリプトを書けば集められる。
> 明らかにダメなキーワードってのがいくつか見つかってる、過去ログをNGKWで検索すると110件ほど。中には僕からするとダメじゃないものもあるが「つ」みたいなダメなやつもある
あなたはこのキーワードをどう知るのですか?

NGKWコマンドの対象になってるもの。後は明示的にコマンドになってなくてもスコアが伸びてないものとかも候補かも。

その集計スクリプトは、どんな種類の集計スクリプトですか?

過去ログを全部なめて、コマンドの対象になってるキーワードを集めて、出力する。

その過去ログは、どんな種類の過去ログですか?

このシステムの保存されたログ

そのシステムについて、他に何かありますか?

色んな人が使ってくれることで、色々な失敗キーワードが見つかる

その失敗キーワードは、どんな種類の失敗キーワードですか?

キーワード抽出の失敗で、変な切り出され方をしたもの

そのキーワード抽出は、どんな種類のキーワード抽出ですか?

ある程度長い文章なら割と良いのだけど、短い言葉だとそこから無理やり抽出しようとして変なものを取り出してしまったりする。見つかったキーワードの良さが最大100点で正規化されるから、ゴミキーワードが1つだけ見つかるような入力だと100点のゴミキーワードになってしまう。

あなたが価値を感じているのは何ですか?

良いキーワードを抽出できることが大事

そのキーワードは、どこから来るのですか?

ユーザの入力が短い時にはスコアを下げるとかすればいいのか?そうとも限らないよなぁ、一単語で完璧なキーワードを入れることもある。やはりキーワードの良さを機械学習するしかないか

そのキーワードは何が起こるとよいですか?

悪いキーワードが、たとえ抽出されても低いスコアになれば良い

それにはそのキーワードに何が起こる必要がありますか?

そのキーワードが悪いことを判定できれば良い

そのキーワードはそれができますか?

そういう機械学習を組めばできる

その機械学習は、どんな種類の機械学習ですか?

二値分類でNGかそうでないかを学習させて、確率値を係数に使えばいい

その係数は、どんな種類の係数ですか?

良いキーワードの時1、悪いキーワードの時0になる

その良いキーワードは、どんな種類の良いキーワードですか?

キーワードに対してのユーザの返答が長いものを選べばいいかな

そのユーザは、どんな種類のユーザですか?

入力を生み出す人

その入力は、どんな種類の入力ですか?

質問に対する回答

その質問は、どんな種類の質問ですか?

🙁
> 良いキーワードの時1、悪いキーワードの時0になる
この良いキーワードについて、他に何かありますか?

(次のタスクに移動する)

あなたはこの会話で何が起きて欲しいですか?

その判定は、どんな種類の判定ですか?

学習データをもとにキーワードと質問の組み合わせが自然かどうか判断する

その質問は、どんな種類の質問ですか?

与えられたいくつかの質問

その質問について、他に何かありますか?

「〜の時何が起こるか」とか、明らかにそこに入れるとおかしい種類の単語があると思うんだ

その単語は、どんな種類の単語ですか?

それを考察しないでデータから判断できるかなぁと思ったが、いまいちうまくいってないみたいなので、僕がルールベースで作るならどうするかを考えて特徴量を工夫すべきなのかな
この質問は、どこにありますか?

システムの中にプリセットで存在する

そのプリセットは、どんな種類のプリセットですか?

クリーンランゲージと呼ばれる手法から採用した

そのクリーンランゲージは、どんな種類のクリーンランゲージですか?

(次のタスクへ)

あなたはこの会話で何が起きて欲しいですか?

動きの抽出について考えたい

その抽出は、どんな種類の抽出ですか?

キーワード抽出って言った時、世の中的には名詞句を抽出することが多い。論文のキーワードとかもそうだし。なんだけど、このチャットに使うことを考えた時、動詞はしばしば名詞よりも具体的なイメージを伴っていて、捨てるには惜しい。

その名詞は、どんな種類の名詞ですか?

名詞を抽出するとこんな感じになる。動詞だと"その「使う」はどんな種類の「使う」ですか?"とかになる。質問としてありでしょ

その名詞について、他に何かありますか?

名詞はしばしば抽象概念になりがちで、抽象概念について質問された時にしばしばさらに抽象的なことを答えがち、それはあんまり良くない

あなたはその名詞をどう知るのですか?

形態素解析したらわかる
> 名詞はしばしば抽象概念になりがちで、抽象概念について質問された時にしばしばさらに抽象的なことを答えがち、それはあんまり良くない
この名詞は、どこにありますか?

ユーザの入力の中にあるので、とりあえず動詞を取り出してキーワードに加えて見るかなぁ、でも「いう」「みる」みたいないまいちなやつもあるのでフィルタが必要

そのキーワードは、どんな種類のキーワードですか?

あと、鉤括弧で括った方が良いという情報をどこに持つかだね

その鉤括弧は、どんな種類の鉤括弧ですか?

動詞に限らず、助詞を含んだ言葉とかもくくった方がいいから表示部分で判断するか

その動詞は、どんな種類の動詞ですか?

「ある」とかではなく、ユーザの能動的な動作に関するものが重要

そのユーザは、どんな種類のユーザですか?

ここまで5つのタスクそれぞれを個別のチャットで掘り下げました

チャット

一つ目は終わりのデザイン、これに関しては「ストンと綺麗に終わると気持ちがいい」という価値が目的のもので、具体的には「質問が回答の選択肢を出せるようにする」「ルールベースで、ここは終わるのに良いところですか、の、質問を出す」「はい、なら入力欄を消す」「はい、いいえの情報をとって将来は機械学習にする」

選択肢

二つ目は序盤のデザイン、これは「このチャットシステムを使うことで言語化や盲点への気づきが得られる、ということを多くのユーザに経験してもらう」で、そのために序盤で軌道に乗れない問題を解決したい

序盤

キーワード増加の速度が遅いことを検出はできるが、どうしたらいいかわからない、と書いていた。可視化すると良い?ロケット打ち上げのメタファー、各フェーズで達成すべき値がどこまで達成されてるかをパーセント表示する?

メタファー

3つ目は良くないキーワードを弾く機能。良いキーワードを抽出できることが価値。これはキーワードの良し悪しを機械学習する。

機械学習

4つ目は質問の自然さ判定で、価値の質問までまだ到達していない。具体的にはぼくがルールベースでやることを考えて特徴量を工夫すべきかな、というところ。

価値

5つ目は動きの抽出、これも価値の質問には至ってない。動詞を抽出するだけなら簡単だが、なんでもいいわけではないのでフィルタをかます必要がある。

価値

とまあここまで考えて、5つの中で最初にやるべきなのは動きの抽出だと思った。それによってキーワード抽出が増えることで序盤の進み方に好影響があるから。次がよくないキーワードを弾く仕組み。これはキーワードの質を改善して、序盤でつまずく可能性を減らす。

序盤

序盤のデザインは明確な行動が言語化できてない。先の二つが終わってからまた言語化にチャレンジすると良いと思う。で、思いつけばそれを実装して、思い付かなければ終わりのデザインに進む。

序盤

質問の自然度判定の改善は保留されてるが、放置するだけで学習データが増えていくから後回しでもまあいいかなと。

質問

おしまい

あなたはこの会話で何が起きて欲しいですか?

タスクが整理されて欲しかったのだが、最初と次にやることが決まったから目的は達成された

そのタスクについて、他に何かありますか?