[聞き出しチャットシステム]に関するプロジェクトメモ#pprojectindex
Scrapboxでカンバン
- WIP
- HaveBetter
- 🤔Scrapboxエクスポート時のフッタを指定可能にする
- Dynalist
- □解説のスクリーンショットを取り直す
- 会話が別れる現象
- 他のキーワードを取らない質問を能動学習でスコアを決めるようにする
- 具体的には何?
- それから終わりのデザイン
- 能動学習のうまくいかない話をしてたら本を読めという結論になった
- 🤔タスク管理チャットボット
- 🤔画面高さとバーチャルキーボードの問題
- standaloneの「ホーム画面に出す」をした時にローカルストレージは共有されるのかされないのか。
- 606da96aaff09e0000d54778
- 🤔選択肢回答だけを受け付ける
- 🤔モードの変更をメニューにつける?
Memo
- 終わりのデザイン
- 派生で「質問がコマンドボタンを作れるようにする」
- 会話ログ2021-01-30
- これの終盤はおそらく、キーワードが多くて十分発展したとみなしてシンボル間の関係を聞くモードに遷移した後、スコアの高い単語を使い果たしてるのに関係を聞くモードのままなのだと思う
- おそらくキーワードスコアの分布からそれを判断して、
- ・終わりを提案する
- ・新規チャットを提案する
- ・探索モードに戻る
- のいずれかをするのが適切だと思う。
- 質問自然度データセット
- 特徴量をもっと改善すべき
- 関連: 二つの引数をとる質問のチューニング
- 対称な質問を繰り返さない: done
- 2つの引数をとる質問についても自然さの収集が必要
- 関連: 会話中に良し悪しフィードバック
- NGフィードバックを学習データにする
- →データ量が足りないし、学習データとしての質が低い
- 能動学習で僕が教える方が良さそう
-
対象として不適切なものを分析対象から除外するignoreファイル
- (まともに使われてないログなど)
-
注目すべき対象を表現するためにスコアをいじってはいけない
- これが原因で「ユーザの発言の中に実際に繰り返し出てきたこと」と「システムが注目すべきと判断していること」の混同が起きている
- スコア=発展度, not注目度
-
「つ、つよい」という入力に対して
- 「つよい」が形容詞なのでキーワードとして選ばれない
- “その「つよい」はどんな種類の「つよい」ですか?“はアリな質問だから抽出した方が良いのでは
- 「つ」が名詞にもなりうるためキーワードに含まれてしまう
- 結果「つ」に掘り下げ質問をしてしまう
- 「つよい」が形容詞なのでキーワードとして選ばれない
-
よくないキーワードを弾く
- CUI版にはあった
- Mattermost版にする時にオフにしてそのまま
- NGKWフィードバックを使って学習しよう
- →いいキーワードなのにユーザが気づかずにNGKWしてるケースが結構多い、ユーザから学ぶとバカになる
- 明らかにダメなものだけリストに入れる形にした
-
フィードバックしたいこと
- キーワードの抽出がそもそもNG
-
微妙に買えてきたなw
-
そのwは、どこにありますか?
- NGKWコマンドで。
-
- 入力に対して選んだキーワードがNG
- 例:
- キーワードの抽出は問題ないが、ユーザが掘り下げてほしい方向性と違う
- これは事前の学習でどうこうならないかもなので、「いや、そっちじゃなくて」って言えるといいね
- NGKWコマンドとUPKWコマンドって形で実現された
- 選んだキーワードと質問の組み合わせが良くない
- NGフィードバックを学習データにする
- キーワードの抽出がそもそもNG
-
-
2つのシンボルの関係が同一だと回答されたらシンボル間の関係の質問をするのはイマイチ
- 「同じ」というボタンが出現して、それを押したらコマンドとして二つのキーワードのマージが行われたら良いのでは
- キーワードの片方が消えることで何かバグが起こりそうだからちゃんとテストする
-
-
状態遷移の仕組み
- 状態遷移図はどうやってメンテされるべきか
- どうやって柔らかくするか
- 状態に対する信念
- 会話ログ:状態遷移について
- そもそも単語ごとに持っているスコアが1次元なのは良くないのでは?という話
- キーワードと質問の選択は内積注意
- 比較的少数のパラメータで記述される
- MUSTの制約を守りつつ、BETTERの指標をなるべく良くしたい
- パラメータ探索
- 質問選択肢の選択バリエーションが多い(すべて1回以上でること)も制約
-
累積スコア計算に減衰を入れる?
- 減衰を入れた方が良いのでは?と思ったこともある
- 一方で、最初の「この対話で何が起きると良いのか」にしっかり回答してる場合、そこのキーワードを時々思い出させた方が良いかもという気もする
- これに関しては最初の回答が雑なケースもしばしば観測される
- 話してるうちにだんだん整理されて、自分が何を求めてたのか明らかになる、ってのはよくあることだから、最初の発言を重視しすぎるのもな…
-
- ユーザの長い入力を引き起こす質問が良い質問という仮説
-
- 初手でキーワードの含まれない発話をしてる人がいる。今はエラーにならないようにキーワードのない質問をとりあえずしてるけど、そもそも使い方を理解してなさそうなのでヘルプに誘導した方が良いかも
- 「キーワードを掘り下げる」を理解してないケースと、プログラムをいじめたいケースとがある
- プログラムの側から会話打ち切りできてもいいかも
- キーワードが発展する前にNGKWで削りすぎると、「泉が枯れた」ような状態になる
- たぶんNGKWを使いすぎてキーワードが枯渇し、プログラムが直近の発言から出たキーワードに飛びついて質問し、それが本題からずれてるからまたNGKWされ、という悪循環にハマっている。
- うまくキーワードがいっぱいでて賑わってる状態に誘導していくにはどうすればいいのか
- 各フェーズで達成すべき値がどこまで達成されてるかをパーセント表示する?
- キーワードが少なすぎることやNGKWのペースが早すぎることを指摘する?
- キーワードが少ない時には少し待たないとボタンが押せないようにすれば良いのでは
- いいよどみ
- 初手でキーワードの含まれない発話をしてる人がいる。今はエラーにならないようにキーワードのない質問をとりあえずしてるけど、そもそも使い方を理解してなさそうなのでヘルプに誘導した方が良いかも
-
質問が回答の一部を指定できるといい
- 「同じですか?違いますか?」は「同じ」ボタンを表示する
- 選ぶとキーワードのマージコマンドとして機能する
- 「ここは終わるのに良いところですか?」は「はい」「いいえ」の二択にする
- その選択が直接学習データに使える
- 「同じですか?違いますか?」は「同じ」ボタンを表示する
-
- 読み返してアップデート
-
キーワード抽出にRAKE的要素をつける
- 自分の過去発言/過去ログ/Scrapboxに出現する並びを長めに抽出
これは「既にあなたの中にあるけども言語化できていないもの」を言語化して取り出すことを支援するソフトウェアであり、あなたの相談に対して答えを与えるソフトウェアではありません。
キーワード: チャットボット
書き出しツールから呼び出す? ローカル環境に移動?
Keicho-Mattermostの状態遷移 Keicho-CUI: kw type 6)Keicho学習
- 相槌に関してだけキーワードを取る個数が不定(0 or 1)
- 2つの質問に分割すべきかも
pKeicho-done 入力行とキーワード抽出結果のペアが必要では?→done