結論:DB系サイト + 自動生成コンテンツ
---
DB系サイトはAPI使うなどしてDBにデータ溜め込んで、レコード数分のページを生成。大量ページによってロングテールキーワード(要はコンテンツが存在しないような過疎ってるキーワード)を大量に拾う戦略がベースにあるんだけど、
問題としてコンテンツの絶対量が足りないってなりがちというのがある。
検索エンジンは仕組み的にインデックスというのがあって、インデックスされないとそもそも検索エンジンに補足されてないので検索結果に100%表示されない。
このインデックスにはコンテンツの絶対量が基準としてあるっぽい、っていうのが個人的理解(おそらくSEOやってる人たち的にも共通理解なような気はする、ドメインパワーでゴリ押せばインデックスされそうな気はするけど)
で、DB系サイトはAPIとか叩いてデータ集めるんだけど、その場合提供APIの仕様的に長々とした文章は拾えないことが多い。
仮に拾えたとしてもそういった長い文章をまんま使ってしまうとコピーコンテンツ扱いなどの問題もありそうなので良くない(だいたいそういったAPIは自社で作ってるコンテンツの検索に使うみたいなものが多いので)
そこでコンテンツの絶対量を確保するために自動生成コンテンツを使おうという考え。要は昔のSEOで言うところのワードサラダを自動生成で補おうということ
自動生成のやり方
GPT-2をファインチューニングしちゃえばいいと思った。
色々自動生成のサービスはあるけど、DB系サイトはページ数命なのでかなりの回数使うハメになる。そうなると費用も大きくなるのでできれば避けたい、のでGPT-2を使っちゃおうという考え
GPT-2日本語版のモデルを無料提供してくれている人や企業があるのでそれを使う
調べた限りはこのどっちかあたりなのかなと思った。
あとでどうやってモデル生成してるのか見る、多いのはwikipedia使うケースっぽい。後者はwikipedia + 独自データらしい。
ファインチューニングのやり方は知らないのでググる
ファインチューニング自体は上記の学習済みモデルに、自分が使いたい分野のデータを食わせてそれ用に最適化するという話
ファインチューニング用のデータ集め
これはもうスクレイピングするしか無いと思った。
別にそのまま使ってネット上に公開するわけではないのでセーフかなという認識。
robots.txt見て禁止されてなかったら、後は頻度調整して集めればいいかなと思った
こういう学習データはあればあるだけいいとは思うけど、色々調べた感じファインチューニングするなら最低1000件ぐらいあればいけるのかなという印象だった
---
もしこの目論見が上手く行けば、DB系サイトの問題点である
- コンテンツ量少なくてインデックスされない
- オリジナリティの低いコンテンツでペナ食らう
この二つを解決できるのではと思っている。
あとは単純に訴求等の問題点だけど、そのへんはアクセス集まってから改善案考えればいいと思った。例えばアクセス多いページは自分でコンテンツ作って差し替えるとかでもいいわけだし
大規模ページ抱えられると検索エンジンに対して色々検証かけやすいので面白いなと思った
追記:
googleはBERTっていうのを検索エンジンに使ってるらしい
GPT-2とかもそうだけど、質問文を投げたら答えが返ってくるような仕組みになってる(例えば織田信長を殺したのは?とGPT-2の学習済みモデルに投げたら明智光秀と返ってきたりする)
- 質問文投げる→それに対する回答が生成される→その答えと似たようなことを記述しているサイトを探す→検索結果として出す
みたいになっていそうな気がした。
だとすればGPT-2に想定する検索キーワードを投げて自動生成したら、検索エンジンに対する最適解みたいな文章生成できたりするのではとか雑に思った
流石に学習させたデータもちがければGPT-2とBERTの違いもあるし、そろそろGPT-4出るとか言われているぐらいなわけだから、抱えているパラメータ数も違うわけで、そこまで単純な話ではないと思うけど、ちょっとした考察
GPT-2は単に学習済みデータから文字列生成みたいなことも出来るらしいけど、それよりは文字列投げて続きの文章を生成するみたいな形で使った方がいいかもしれないなという話