ここ1ヶ月くらいこればっかりやってました。
今回の方針
今回から新しく自然言語処理部門というのができたので、せっかくなので参加することにしました。
プロトコルと自然言語を相互に変換する機能をつくってしまえば、プロトコル版でつくったエージェントをそのまま自然言語に流用できて楽だろう、ということで、まずはプロトコル版をさくっとつくることにしました。
プロトコル部門
プラットフォームのバージョンが上がって、去年夏の第2回大会のエージェントはそのままでは動かないということで、まずは動くように修正をかけました。それ以外の変更点は以下の通り。
- 任意の人数で動作するようにした(これまでは15人でしか動作しなかった)
- 狩人のとき、襲撃失敗した場合に護衛先が人狼であると推定する確率を下げるパターンを追加
- 占い先・護衛先・襲撃先から、直前の追放者を除外するように変更
- パワープレイを実装
- 狂人CO ⇒ 人狼CO ⇒ 人狼のうち誰かがREQUEST(VOTE AGENT[XX]) ⇒ 狂人と人狼がそれに従う
- 再投票を実装
- 1回目投票で最高票数だった中から投票優先度が一番高い対象に投票
自然言語部門
で、今回は自然言語処理部門メインで時間を割いたつもりです。内容はこちらの資料にまとめてあります。
ソースコード
Githubで公開しています。
結果
プロトコル部門で、15人人狼、5人人狼ともに1位で、メダルをいただいてしまいました。
5人人狼はちょっとだけ自信があったのですが、15人人狼でもとれるとは。
自然言語処理部門は、今回はテストのような位置づけで順位はつかなかったのですが、結果としては満足できる感じではなかったです。
夏の本大会にむけて
次のような変更を予定しています。
プロトコル部門
- 行動パターン・推定パターンを増やしたい
- 投票先も推定理由にいれるとか
- 推定パラメータの調整
- GAT2017の参加エージェントでゲームを回しまくって、「そういう状況へのなりやすさ」を数値化
- 短時間で大量のゲーム数を稼げるプラットフォームの検討
- Azure Batchとか
自然言語部門
- プロトコル版の推定内容を見えるようにする
- いまは自然言語版からプロトコル版の推定内容をみることができない
(かわりにどんなエージェントでも中に入れることができていたが)
- いまは自然言語版からプロトコル版の推定内容をみることができない
- 人間っぽくする
- 同意/否定/要求 をする
- プロトコル版にもいれよう
- 発言タイミングを考える
- むやみやたらにすぐCOや投票宣言をするのは不自然
- 自然な発話を優先にすべき場面ではプロトコル版のtalkを呼ばない
(今はプロトコルが言うことがない場合にのみ自然言語版で質問への回答をしたりするけど、自然言語版が主になるように変更する)
- 発話に理由をつける
- ○○だから誰々に投票するよ、と言わないと投票先変更した場合に一貫性がないと感じられる
- 説得する
- 状況反応発話を増やす
- 雑談確率の調整
- 現状20%一定としているが、ターンが進むにつれ減衰させるようにしたい
- 同意/否定/要求 をする
- クライアントログを充実させる
- いまだと自分の役職でさえ表示していない・・・
- 1発話2プロトコルの認識への対応
- 現状「私は占い師です、○○に投票します」がうまく変換できない