自動タグの具体的手法
4代目ブログ開設にあたってのマストは「機械学習による自動タグ付与」と考えてきましたが、
これもざっくりとした願望をただタスクとして横流ししているだけのように思われ、
具体的にどうやってChatGTPのような生成AI(=LLM)を活用してタグを付与するのか、
お風呂に浸かりながらちょっと考えてみました。
たとえば、2005年のアーカイブには『メテオス』のプレイ日記が大量にあります。
これらは当然「メテオス」というタグを付与してほしい。
記事内検索で「メテオス」という単語があればタグを付与する、という仕組みなら人力でも作れますが、
問題はゲームタイトルに必ずしも言及しているわけではないということです。
『メテオス』という単語は出てこないが、チャレンジモード「ヘブンズドア」については言及しており、
人が読めば明らかに『メテオス』のプレイ日記と分かるものも「メテオス」タグが欲しい。
一方、例えば今日の記事にはこのように「メテオス」という単語は登場しますが、
一例として挙げただけで明らかにプレイ日記ではありません。こういう場合はタグは付与したくない。
ここでまず、「メテオス」と「ヘブンズドア」のような親子関係にあるキーワードを紐付け、
どのキーワードをタグとして採用するかどうかを定義する必要が出てきます。
そしてそれは親子関係それぞれが世間に広く普及しているならともかく、
『メテオス』の例のようにゲームの固有名詞についてLLMが判別するのは困難でしょう。
というわけで、まずこのキーワード間の紐付けについてはある程度人力作業は不可避。
これが要するにタグつけ作業なので、当初想定していた全自動でのタグ付けはそもそも不可能であり、
相当の時間を使って自分が人力でやる必要があるということです。
まあ、各キーワードのざっくりとした分類はAIにもできるかもしれませんが……。
そしてもうひとつ、いま書いているこの記事にはメテオスという単語は出現するものの
『メテオス』のプレイ日記ではないのでタグはつけないと言ったように、
記事の主題を読み取って適切なキーワードを抽出するという作業が必ず発生します。
2014年の3代目移転でいままでタグが存在しなかったアーカイブに人力でタグを付与した際は、
この作業も人力でやりました。読まないと分からないので当時にして3800本の記事をすべて斜め読みしたわけです。
それですら1年以上かかったのに7300本ある現状で同じことができるはずがありません。
これはプログラムに頼らざるを得ないのでどうにか自動化する方法を探したいところ。
LLMでも、記事を食わせてキーワードだけ出力するというのはできる気がします。
ただ、そのためには最低限強化学習の方法を把握する必要はありそう。
ChatGTPのプライベートモードでやるにしろ自前で環境構築するにしろ、ハードルは高そうです。
前者は課金が必要になってくるし、
後者はMacbook Proですら生成が非常に遅いため時間的制約に困ることになる可能性があります。
プライベート(内容をChatGTP本体へ送信しない)で運用できるなら
月2,000円程度なら一時的に課金しちゃった方が諸々の面で良さそう。GTP-4も試せるし。
まあいずれにしろタグ付与問題はこれだけで数ヶ月は要する大きなタスクということです。
そもそもアーカイブの大半は引き続き公開しないことにする可能性大なので
今回の移転に合わせてやる必要もないと言ってしまえばそれまでですが、
まあできるかぎり足掻いてみようと思っています。