主観と感情
今まで、感情は不要だと考えて自分のプログラムからは外してた
感情と主観の違いを考えている。
原始的には「わたしはそれを好きだ、嫌いだ」 #好き嫌い 二値分類だと情報がないものはニュートラルになる
心地よいものばかりを摂取するようになる。
ここに「同じものばかりを嫌う」「新しいものを好む」という要素を加わる。
この新しいものを好む要素も人それぞれパラメータが違うので主観になる。
通知に対するフィルタ
ユーザの好き嫌いの判断を学習データとして
「好きそうなもの」を通す
データのないものはニュートラル
このシステム
「まだ学習データの少ないもの」をコンピュータが主観的に「面白い」と思う
「これ面白くない?」って人間に見せてくる
その反応から学習する
好き嫌いファクターだけで選択すると普通の学習
好奇心ファクターだけで選択をすると能動学習
どちらも僕の実感としては面白くない
適度な混合割合で混ぜた時に僕が面白くなるポイントがあるに違いない
それは僕は面白いが他の人が面白いとは限らない
→主観的面白さ
好き嫌いのフィードバックの他に「面白いね」もフィードバックできるようにする
よりユーザが面白いと思うようにパラメータを調整していくことができる
そうするとその通知画面を見ることが面白いので教師データが集まり始める
生のTwitterのタイムラインよりもこちらが面白くなれば良い
APIでデータを流し込めればScrapboxや書籍のデータも入れられる
好き嫌いモジュールはUCB1でいうところの期待値を担当
これに対してサンプル数を担当するモジュールが必要
つまり「初めて見るからポジティブ、何度も見たからネガティブ」のモジュールが必要
素朴に実装すると過去の入力を全部取っておいて照らし合わせることになって高コストか?
まずは実現するのが大事だからコストは度外視しよう
過去のデータに対してk近傍を見つけてその距離の遠さでデータの目新しさが決まる
人間の場合、子供の時に、面白いと思ったことを繰り返しまくって嫌がられることによって事後的に繰り返さない挙動を獲得するのか
人間とのインタラクションは大事だが、インタラクションなしで動くときはどうか
面白そうなものをフィルタしておいて、再度読み返す?
リソースの配分が行動であってどのデータを学習対象にするか自分で選ぶようになる
例えばデータを読み込んで処理をすることに時間リソースが必要であって、24時間に発生するデータすべてを処理することに24時間以上かかる場合、取捨選択が必要になる
例えば他人のScrapboxをクロールするアクションは、頻繁にやっても変化がないので「退屈」になる、その結果頻度が下がって、適当なところでバランスする
Twitterのフォロワーすべての発言を追うことが退屈であれば、より面白い人を残して退屈な人をリムーブすることになる
わからない単語を辞書で引いたり、Wikipediaを読んだりすることは、文脈のつながっていない断片を読むことより面白いかもしれない 面白いと思ったものを抜き書きしたり、思ったことをメモしたりする、それを面白いと思いそうな人にシェアしたりする
抜書きは何のために作るのか?
より低コストでインプットできる濃縮された情報源を作る行為
リンクの発見をやる時に、人間は過去のすべてのデータから類似判定をするのではなく直近のインプットだけからやることが行われている、それが濃縮の効果
直近のインプットでないものも稀にリンク成功するけど、それはなぜか
それを担当するモジュールがあるか、
もしくは夢の中でランダムに過去の記憶がピックアップされて直近の記憶に積まれている
履歴をリーズナブルな値に制限すれば計算量が制限できる
Scrapboxのページは、タイトルを持っているので少し高級な構造、まずはもっと原始的な形があるはず
日付をタイトルとしたページ
日記をつければ良い
日々、色々なウェブページを読んで、面白かったものを日記にまとめるボット
単なる好き嫌いフィルタではなく、目新しいものを混ぜ込もう、という発想
これはGunosyなどのニュースキュレーションが考えていた方向性に近いかも知れない
僕の関心事は知識のより良い蓄積方法であって、ニュースにあまり関心がない
どちらかというと古今東西の古典の名著を入力源としたシステムが作りたい
好奇心モジュールを作る上で過去の入力を記憶しておくことが必要という話、過去のこれと関連しそう
Dropoutなしで内積が大きいとき、それは「過去のデータに似たものがある」ということで「目新しくない」になる。
Dropoutを入れることで「一見似ていないのだけど次元削減したら似てる」が発見される、これがアナロジーの発見。