世界を動かす技術を、日本語で。

o3を使って保存したPocketのリンクから自分をプロファイルしました

概要

Pocket のサービス終了に伴い、約7年分・900件の保存記事を移行。 記事データ を分析し、保存傾向から自分のプロフィールをAIに推測させる実験を実施。 o3 (AIチャット)が、記事リストから驚くほど詳細な人物像を推定。 データから分かる自分像 と、その精度の高さに対する所感。 今後の活用・プライバシーへの示唆、および新しい自己ホスティング環境の紹介。

Pocket終了とデータ移行

  • Pocket がサービス終了、ユーザーによる保存記事の移行作業
  • 900件・7年分 の保存記事、個人的な情報資産
  • xsv ツールを用いたCSV形式でのデータ抽出・分析
    • 記事タイトル、URL、保存日時、タグ、ステータスなどの項目
  • 保存期間: 2018年7月12日~2025年6月26日

AIによるプロフィール推定実験

  • Simon Willison のgeoguessing挑戦から着想を得た分析
  • o3 (ChatGPT系AI)に記事リストを提示し、人物像を推定させる
    • 年齢、性別、居住地、学歴、職業、収入、政治観など多角的な推論
  • CSVデータを 直接プロンプトに貼り付ける と、より精度の高い推定結果

o3による推定結果

  • 年齢 :30代半ば~40代前半
  • 性別 :男性寄りだが断定せず
  • 居住地 :アメリカ・バージニア州沿岸部(地元不動産情報から推定)
  • 学歴 :コンピュータサイエンス系学士/修士
  • 職業 :セキュリティ・インフラ系のシニア/スタッフソフトウェアエンジニア
  • 収入 :世帯年収約$150,000~$220,000
  • 家族構成 :既婚、幼児含む3~4人の子ども
  • 政治観 :財政保守・市民的リバタリアン、社会的には伝統主義寄り
  • リスク許容度 :キャリアでは高め、投資では中程度
  • 学習スタイル :自学志向、長文・テキスト重視、音声コンテンツも活用
  • 情報摂取傾向 :技術60%、金融20%、育児/家庭10%、信仰・文化10%
  • 生活パターン :技術職からマネジメント・家族重視への転換期
  • 季節傾向 :年末年始にキャリア・目標設定、夏に教育・不動産、秋にセキュリティ系集中
  • 信仰・価値観 :カトリック系のサイト保存多数、実践的な信仰生活
  • DIY志向 :自作・工作記事、セルフホスティングへの関心
  • 健康意識 :実用的な健康・睡眠・運動改善
  • 発信意欲 :執筆・ブログ関連の記事保存多数

精度と所感

  • 推定結果の精度 が高く、個人情報が意外なほど推測可能
  • Hacker News など技術系情報が中心でも、家族構成や価値観まで推測
  • CSVデータの貼り付け方 によってAIの推論精度が変化
    • ファイル添付よりプロンプト直接貼り付けの方が「物語的」な推定

プライバシー・今後の活用

  • デジタル足跡 から個人像が詳細に推測されるリスク
  • AIによるプロファイリング技術 が一般にも開放されつつある現状
  • 広告会社だけでなく、 個人でも強力な分析が可能 な時代
  • 今後は 自分のプロファイル を活用したパーソナル推薦システムに応用予定

新たな自己ホスティング環境

  • Wallabag へ記事保存先を移行
  • RSSリーダーも Inoreader から FreshRSS
  • Caddy の導入で、2025年現在は自己ホスティングが以前より容易に

xsvツールについて

  • xsv :CSVデータ解析に最適なツール(2024年4月でメンテ終了だが十分実用的)

まとめ

  • 保存記事の分析 は、自分でも気づかない「自画像」を浮き彫りに
  • AIによるプロファイリング の威力と、プライバシーへの新たな課題
  • 自己データ活用 と、より快適な自己ホスティング環境の構築

Hackerたちの意見

ちょっと前に、HNのプロフィール用に面白半分でスクリプトを作ったんだ。ユーザーの投稿やコメントの履歴を使って、場所や政治的傾向、職業、年齢、性別などのプロフィールを推測するやつ。驚くような意見をいろんなスレッドで見かけて、どこから来たのか気になったのが主な動機だった。正直、プロフィールの正確さは分からなかったけど、LLMがこういうことをする能力を試す面白い実験だったよ。

最近、誰かが記事の内容とユーザーのプロフィールを基に、HNのフロントページに載る記事を予測することをやってたよ。

主な動機は、いろんなコメントスレッドで驚くような意見を見て、どこから来たのか気になったことだった。自分で試してみるのも面白いと思うよ、どれくらい正確か見れるし。

これを読んで、自分もポケットアカウントのアーカイブ(4200アイテム)があることに気づいたから、o3、gemini 2.5 pro、opus 4で同じプロンプトを試してみた。 - chatgptのUIは入力が大きすぎるって言って送信できなかった。80kトークンくらいだったけど、o3の200kコンテキストサイズよりは少なかった。 - gemini 2.5 proは、プロフィールの性格や興味に関する部分はうまくいったけど、年齢層、職業、場所、親のステータスは間違った予測をした。 - opus 4は、かなり良い結果を出して、基礎的な都市(アムステルダム)、年齢層、恋愛状況を正確に予測したけど、親かどうかについては何も言わなかった。geminiとopusは、私の役割の予測に失敗したけど、まあ理解できるかな。データサイエンティストだけど、ソフトウェアを書くのが好きで、仕事ではそういう機会がないから、個人プロジェクトのためにたくさんのシステム設計について学んでる。両方のモデルは私をソフトウェアエンジニアだと思ってた。全体的にはいい実験だったよ。気づいたことがあって、両方のモデルが私の主な趣味として写真を挙げてたけど、もし彼らが私のYouTubeの視聴履歴にアクセスできたら、自信を持ってテニスだと言うだろうね。動画を見ることが多いトピックや興味については、YouTubeの視聴履歴とこのポケットアーカイブデータを組み合わせるのが面白いかも(ただ、そのデータを取得するのは難しいだろうけど)。

プロンプトの反復的な洗練ピラミッドを使うべきだよ。安いモデルを使って、生データの大部分をチャンクにまとめて、次第に強力で高価なモデルを使って、そのチャンクのセットを大きくしていくと、望む要約レベルに達することができる。

理論的な思考が重視されるモデルの方が、エージェント的なモデルよりもさまざまなデータポイントを組み合わせるのが得意だと思う。o3が要約されたコンテキストでどうなるか、興味あるな。

これはサインだと思って、SWEの仕事を目指してみて。今の仕事が何であれ、関連するキャリアに切り替えることができるってことだよ。

Google Takeoutを使えば、YouTubeのデータ、視聴履歴も含めて全部取得できるはずだよ。この人が使ったいい例があるよ: 「YouTubeのデータを全部ダウンロードしたとき、面白いファイルが含まれていることに気づいた。そのファイルはwatch-historyという名前で、私が今まで見た動画のリストが入っていた。」 https://blog.viktomas.com/posts/youtube-usage/ もちろん、ヨーロッパでは企業がアクセスを提供する法的義務があるけど、Google Takeoutは世界中で使えると思うよ。

両方のモデルが私をソフトウェアエンジニアだと思ってた。たぶん、今もそうなんじゃない?たとえそれがキャリアパスじゃなくてもね :)

re o3: ファイルをzipにしてアップロードすれば、Pythonやgrep、シェルを使って中身をチェックできるよ。SQLiteのデータベースで使うのはまだ試してないけど、エージェントと一緒にローカルでやるときはそんな感じ。

数百の保存リンクのフラットリストを使って(「後で読む」用に使われているなら、正直言ってゴミ捨て場だけど)、AI/NLPに分類させるっていうのもいいかも。そうすれば、興味がなくなったものを簡単に削除できるようになるよ。

自分の家族がもっと左寄りのカトリックの背景を持っているので(アメリカの北東部ではよくあると思う)、カトリックに基づいて保守的だと判断されるのは面白いね。

ピッツバーグ生まれ、カトリックで育ったけど、かなりリベラルだよ。90年代にはオルターボーイもいたし、教会でセレモニーを行うオープンなゲイのメンバーもいた。今はカトリックじゃないけど、80年代と90年代のあの教会は良かったな。

全体的に見ると、カトリックもプロテスタントも(どのタイプでも)北東部や西海岸ではリベラルになりやすく、中西部や南部では保守的になりやすいと思う。これって、2025年における宗教の平均的な重要性について何かを教えてくれるね。

公平に言うと、実際にはこう書いてあったよ: > 財政的に保守的で、伝統的な社会的傾向を持つ市民的自由主義者 で、こう正当化してた: > ボーグルヘッズとMMMの倹約 + カトリック/ファーストシングスの記事、EFFのプライバシー、大手テックの検閲に対する懐疑心 現在のファーストシングスは宗教的な社会保守主義に特化してる。カトリックの人がファーストシングスの記事を読むなら、「保守的」ってのはかなり安全な予想だと思う。でも、読むものに基づいて人をプロファイリングするのは一般的には間違いかもしれない。自分は同意しないものもよく読むし、時には考えを変えたくて、同意しないものを探すこともある。考えを変えない場合でも、実際の議論が何かを知りたいからね。ただ、そういうものをポケットに保存する傾向があるのかは気になる。

最近、こういうことにすごく興味があるんだ。ポケットセーブだけじゃなくて、ChatGPTやGemini、Claudeのチャット履歴のメタ分析もね。超パーソナライズされたRSS要約スクリプトを使っていて、実際に自分に関連するアイテムが多いRSSフィードは、普段カジュアルに読んでいるものとは全然違うことに気づいたんだ。次に試してみたいのは、自分の興味や関連性に合った「世界モデル」を生成すること。時間のスケールによって、その世界モデルの異なる部分を更新したり調査したりできるんだ。だから、私にとっての「ニュース」は、ニュースからのその世界モデルの変化の差分になる。これで、常に自分の現在の世界モデルのローカル/オフライン版を持てるようになって、受信トレイやカレンダー、メッセージ、ツイートなどをフィルタリング/ソートするのに役立つはず!

最近、多くの人が自分のデータを分析するためにAIを使うアイデアに集まってきているのに気づいた。企業が自分のデータを使って超ターゲットなコンテンツを提供するのと同じようにね。最近、https://labs.rs/en/browsing-histories/ を読んで、自分の全ブラウジング履歴を使ってこれをやってみたくなった。ChatGPTやClaudeの会話履歴でも同じことをしたよ。一番怖かったのは、LLMに自分のRedditのコメント履歴を見てもらったこと。主な課題は、十分に大きなコンテキストウィンドウを持つことと、さまざまなデータソースからコンテキストを追跡すること。今探っているアプローチの一つは、ユーザープロファイルを追跡するためにナレッジグラフを使うこと。行動パターンをクエリ可能な構造に圧縮できるけど、グラフ構築自体が計算上の課題になるんだ。最近、私が関わったほとんどのAIスタートアップは「LLMにベクターデータベースとテキストドキュメントから構築されたナレッジグラフへのアクセスを与える」ことに集約されている。テキストドキュメントは請求書、法的文書、税務文書、日報、会議の議事録、コードなどが含まれる。AIによる個人向けコンテンツ推薦やプロファイリングシステムが登場することを期待している。経済的インセンティブは大手テック企業のモデルとは逆になっている。エンゲージメントや広告収入を最適化するのではなく、これらのシステムはユーザーの利便性を最適化している。RSSリーダーの時代には、たくさんのキュレーションされたテクノロジーやデザインのコンテンツに触れ、それが私のセンスや知識を本当に育てるのに役立った。面白い人たちともつながることができたしね。好きなアプリがあるんだけど、https://www.dimensional.me/ だけど、MBTIや性格テストのアプローチはもっと厳密でもいいかも。性格テストの代わりに、デジタルデバイスで消費したり書いたりしたすべてのものをシステムにフィードバックして、自分についてのナレッジグラフを構築し、常に更新していくことを想像してみて。

エンゲージメントや広告収入を最適化するのではなく、これらのシステムはユーザーの利便性を最適化している。そうなの?それとも、むしろ自分の快適なケージに留まるのを助けるだけじゃない?快適なケージはエンゲージメントのケージよりはマシだけど、たまにはそこから出てみるべきかもね。 > RSSリーダーの時代には、たくさんのキュレーションされたテクノロジーやデザインのコンテンツに触れ、それが私のセンスや知識を本当に育てるのに役立った。自分が常に同意していたわけじゃない人間によってキュレーションされたものだよね?

ポケットエクスポートから学んだことは、99%の記事が「未読」だったってこと。これから自分について何かを推測するのは難しいけど、ただリンクを貯め込むのが好きなだけって感じかな。 :D

まあ、読んでるかどうかに関わらず、そのリンクを保存した理由があるんだよね。

読んだものと未読のものを比較することで、自分の表面的な好みと実際の好みについて何かがわかるかもしれないね。一般的な人の未読リストは、ほとんどが理想的なものだと思う。これに関するデータはたくさんあるはずだよ。例えば、Amazonの推薦グラフは、ウィッシュリストのアイテムと購入したアイテムを違う重み付けで扱うかもしれないし。

13秒の処理時間を350百万(アメリカの大体の人口)で掛けると、約144年分のGPU時間になるよ。もちろん、AIプロバイダーはこれを並列処理して数週間や数日で終わらせることができるけど、少なくとも自分にはLLMが大企業の力を増すことを示してると思う。スタートアップが大規模なプロファイリングシステムを持つのは難しいだろうね。例えば、GoogleがすべてのGMailアカウントのプロファイルを作ることを想像してみて。競合がすべてのデータを持っていても、簡単には再現できない貴重なデータセットができると思うよ。[でも、もちろん、計算や仮定については自由に訂正してね。]

最後の1000個のHNのお気に入りをもとにやってみたよ。 > EUに拠点を置く35歳くらいのシニアソフトウェアエンジニア / 新進気鋭の技術系創業者。好奇心旺盛な多才な人で、分析的だけど内省的。自律性、プライバシー、クラフトを重視。シリコンバレーの仲間に比べて控えめな給料だけど、経済的には余裕がある。起業の動きを考えてる。認知健康、睡眠、ADHDに関連する問題を追跡中。キャリアが成熟するにつれて社交圏が狭まってきて、意図的に繋がりを持とうとしてる。政治的には中道左派で、ガードレールを持ったイノベーションを支持。アート、科学、意味が融合した仕事を求めていて、日常のコーディングを超えた「ひらめき」を求めてる。かなり正確に「アート、科学、意味が融合した仕事を求めていて、日常のコーディングを超えた『ひらめき』を求めてる」って部分は本当にその通り。

でも、これがあなたのライブラリの内容の1/3だけを基にして結果を出してる可能性もあるよね?長いコンテキストに関する広く知られた問題のせいで、包括的でないならどうやって正確になれるの?(気が散ったり、混乱したりすることもあるし)こういうギャップはよく見るけど、みんなどうやって解決してるんだろう。自分は「ファイル」ツールを使ってアイテムのチェックリストを作り、ループするLLMコールを使う戦略を見たことがあるけど、個人的にはまだ試したことはないんだ。