2 ポイント 投稿者 GN⁺ 2025-07-08 | 1件のコメント | WhatsAppで共有
  • Pocket終了を前に保存記事を移行していたところ、2018-07-12から2025-06-26までの約7年間で蓄積された878件のPocketリンクが個人プロファイル推定データになり得ることを確認
  • o3には保存したURL一覧だけを使って、年齢、性別、居住地、学歴、職業、収入、政治的傾向、家族構成、健康上の関心といった個人属性を推定するよう依頼
  • 結果は30代半ば〜40代前半、coastal VA在住、シニア/スタッフ級ソフトウェアエンジニア、既婚で幼い子どもが複数いる、などとなり、年齢・所在地・家族規模はかなり正確に当たっていた
  • CSVをファイル添付した場合より、プロンプト本文に直接貼り付けた場合のほうがo3の回答は説得力があり、ファイル添付ではPythonによる標本分析に過度に固定される傾向があった
  • 単なる「いいね」や保存リンクの痕跡だけでも意味のある推論が可能であり、こうした分析能力がGoogleやFacebookのような広告企業を超えてほぼ誰にでも開かれていることを実感

Pocketの保存一覧が実験データになる

  • Pocketの終了予定を受けて保存記事を移行していたところ、保存リンク一覧が個人の嗜好データとして使えるほど十分に大きいことを確認
  • xsvでPocketのエクスポートCSVを手早く確認
    • カラムは title, url, time_added, tags, status
    • サンプル項目には The Uncertain Future of American Libraries という保存記事が含まれていた
    • 保存項目の総数は878件
    • 保存期間は2018-07-12から2025-06-26まで
  • Simon Willisonのo3ジオゲッシング実験を思い出し、URL一覧だけで自分について何が分かるのか試すことにした

o3に任せたプロファイリング依頼

  • 一時的なChatGPT会話でo3を使い、ChatGPTのmemory機能は使用しなかった
  • Pocketに保存した記事一覧をもとに自分をプロファイリングしてほしいと依頼
  • 推論の次元は個人情報から生活パターンまで幅広く設定
    • 年齢、性別、地理的位置
    • 学歴、業界/職務分野、役職
    • 収入帯、政治的傾向、リスク許容度
    • 学習スタイル、情報摂取の傾向
    • 関係ステータス、親かどうかと子どもの年齢
    • 健康上の関心、主な人生の転機、関心の季節的パターン

o3が作った個人プロファイル

  • o3は保存記事のテーマ、出典、保存時期をもとに、「確実な推論ではないが一貫した物語」に近いbest-guess portraitを生成
  • 主要な人口統計の推定は次の通り
    • 年齢: 30代半ば〜40代前半
    • 性別: 男性
    • 位置: coastal VA
    • 学歴: コンピュータサイエンスまたは類似分野のBS/MS
    • 職業: セキュリティとインフラに特化したシニア/スタッフ級ソフトウェアエンジニア
    • 収入: 世帯ベースで約15万〜22万ドル
    • 家族: 既婚、幼い子どもが3〜4人、そのうち少なくとも1人はtoddler
  • 根拠として、ソフトウェア、AI、サイバーセキュリティ、金融関連の技術記事と、家族生活、ホームスクーリング、Catholic practiceに関する記事が併存している点が使われた
  • 心理面や関心も比較的具体的に推定された
    • 政治的傾向: 財政面では保守的で、市民的自由を重視し、社会的には伝統主義的
    • リスク許容度: キャリアでは高く、金融では中程度
    • 学習スタイル: 自己主導型でテキスト中心、長文とオーディオを好む
    • 情報摂取の傾向: 60% deep-tech、20% 個人金融/FIRE、10% 育児・家事、10% 信仰・文化
    • 人生の流れ: 純粋なICハッカーから、技術リーダーシップと家族中心の生活、FIを志向する段階へ移行
  • より微妙な手がかりとして、信仰、プライバシーとセルフホスティング、DIY志向、Zone-2 trainingや睡眠といった健康上の関心、文章を書きたい衝動まで推定された

精度と入力方式の違い

  • 結果はかなり正確で、最初に読んだときは不気味なほどだった
  • データセットの大半はHacker Newsの記事だと思っていたにもかかわらず、o3が年齢層、所在地、家族規模のような詳細を当てた点は特に驚きだった
  • この実験は、単なる「いいね」や保存の痕跡だけでもどれほど多くを推論できるかを示している
  • 入力方式によって結果の品質は変わった
    • CSVデータをプロンプト本文に直接貼り付けた場合のほうが、応答はより正確に感じられた
    • CSVをファイル添付で送ると、o3がPythonでサンプリングと分析を行うことに固定されすぎる傾向があった
    • その方式では最終的な物語性がやや弱く感じられた

個別最適化された推薦と、誰でも使える分析能力

  • 広告企業が表明された関心にもとづいてユーザーをプロファイリングすること自体は、すでによく知られた前提になっている
  • 以前は、複数のデータポイントから意味のある結論を引き出す分析能力はGoogleやFacebookのような企業にしかないように感じられた
  • 今では、同種の技術をほぼ誰でも公に使えることのほうが、より興味深い変化だ
  • このプロファイルは個人向けコンテンツ推薦システムを動かすために使う予定
  • 移行の過程で Wallabag に移し、Inoreaderから FreshRSS への移行も行った
    • 2025年現在、セルフホスティングは以前よりずっと簡単になっており、Caddy が大きな役割を果たしたと評価している
  • CSVの探索には xsv を使用
    • 2か月前時点ではすでにメンテナンスされていないように見えるが、機能はかなり完成されていると感じた

1件のコメント

 
GN⁺ 2025-07-08
Hacker News の意見
  • この記事を読んで、自分にも Pocket アカウントのアーカイブがあることを思い出したので、4,200件の項目を o3、Gemini 2.5 Pro、Opus 4 に同じプロンプトで入れてみた
    ChatGPT UI は入力が大きすぎるとして送信をブロックした。約8万トークンで、o3 の20万コンテキスト長よりは小さかったにもかかわらずそうだった
    Gemini 2.5 Pro は性格や関心分野のプロフィールはよく当てたが、年代・職種・所在地・親かどうかの予測は外した
    Opus 4 ははるかに印象的に当てていて、居住拠点の都市である Amsterdam、年代、交際状況まで正確に予測したが、親かどうかには触れなかった
    どちらのモデルも私の職種を当てることには失敗したが、理解はできる。実際にはデータサイエンティストだが、ソフトウェアを書くのが好きなのでソフトウェア工学の実務について多く読み、会社ではそうした仕事をする機会がないため個人プロジェクトでコーディングしているうちに、システム設計などを多く学ぶ必要があった。だから両方とも私をソフトウェアエンジニアだと見た
    全体として面白い実験で、どちらのモデルも写真を私の主な趣味として挙げた点が目を引いた。ただし YouTube の視聴履歴まで見ていたら、おそらくテニスだと自信を持って言ったと思う。普段、文章より動画で消費しているテーマや関心は、YouTube 視聴履歴と Pocket アーカイブを組み合わせると興味深そうだが、そのデータを得るのは簡単ではなさそう

    • Google Takeout で視聴履歴を含む YouTube データをすべて取得できそう
      この記事が良い例:

      When I downloaded all my YouTube data, I’ve noticed an interesting file included. That file was named watch-history and it contained a list of all the videos I’ve ever watched.
      https://blog.viktomas.com/posts/youtube-usage/
      ヨーロッパ在住なら、企業にはデータアクセス権を提供する法的義務があるが、Google Takeout は世界中で機能するようだ

    • Google Takeout から履歴をエクスポートして、自分が見たすべての YouTube 動画についてこれを試せた:
      https://takeout.google.com/settings/takeout/custom/youtube?p...
      その後、pupjq を組み合わせて HTML ファイルから動画タイトルをパースした:
      cat watch-history.html \
      | pup '.outer-cell .mdl-grid .content-cell:nth-child(2) json{}' \
      | jq -r '.[] .children[0] | select(.tag != "br") | select(.text | startswith("https://www.youtube.com/watch?v=";) | not) | .text' \
      > videos.txt
    • それほど関心が大きいなら、シグナルとして受け止めて ソフトウェアエンジニア職にも挑戦してみる価値はある
      今の会社での仕事が、関連する職務ラダーへ移れないという意味ではない
    • プロンプトは反復的な精製ピラミッドのように使うべき。安価なモデルで元データの大部分をチャンクごとに圧縮し、徐々により強力で高価なモデルをより大きなチャンク集合に適用して、望む要約レベルまで進める方式
    • 2つのモデルがソフトウェアエンジニアだと見たなら、キャリアパスではなくても、たぶんある程度は当たっているのかもしれない :)
  • 自分の Pocket エクスポートから学んだ最大のことは、記事の99%が未読状態だったということ。これで、強迫的なリンク収集以外に私について何を推測できるのかはよく分からない :D

    • 何年も Pocket を使うことで、自分に「仕事に戻ってもよい」という許可を与えていた
    • 読んだものと読んでいないものを比べると、表明された選好と顕示選好の違いが見えるかもしれない。普通、人の未読の山はだいたい願望に近いものだと思う
      こうしたデータはたくさんありそうで、たとえば Amazon の推薦グラフでも、ウィッシュリストの項目と購入項目に異なる重みを付けられるはず
    • 読んだかどうかにかかわらず、それらのリンクを保存したのには理由があったはず
  • 最近、多くの人が、企業が私たちのデータで超高精度なコンテンツを提供するのと同じように、AIで自分のデータを分析するというアイデアに収れんしているように感じる
    最近 https://labs.rs/en/browsing-histories/ を読んで、自分の全ブラウジング履歴で試してみた
    ChatGPT/Claude の会話履歴にも同じことをしたし、いちばん怖かったのは LLM に自分の Reddit コメント履歴を見せたことだった
    主な難しさは、十分に大きなコンテキストウィンドウと、複数のデータソースにまたがる文脈の追跡にある。私が探っている方法の一つは、ユーザープロフィールを追跡するためにナレッジグラフを使うこと。行動パターンをクエリ可能な構造に圧縮できるが、グラフ構築自体が計算問題に変わる
    最近一緒に仕事をした AI スタートアップの大半は、結局「テキスト文書の束から作ったベクトルデータベースとナレッジグラフに LLM のアクセス権を与える」という形に行き着いた。テキスト文書は請求書、法律文書、税務書類、日報、会議の録音起こし、コードなどになり得る
    AI ベースの個人向けコンテンツ推薦やプロファイリングシステムが出てきてほしい。経済的インセンティブはビッグテックのモデルとは逆だ。エンゲージメントと広告収益を最適化する代わりに、ユーザーの効用を最適化する
    RSS リーダーの時代には、キュレーションされた技術・デザイン系コンテンツに多く触れられ、そのおかげでこの分野での好みや知識をかなり伸ばすことができた。面白くて魅力的な人たちとつながる助けにもなった
    好きなアプリとして https://www.dimensional.me/ があるが、MBTI や性格診断的なアプローチはもっと厳密にできる。性格診断ではなく、自分がデジタル機器で消費し、書き、行っているすべてをシステムに入れ、自分についてのナレッジグラフを継続的に更新していく、と想像できる

    • RSS 時代がどれほど役に立っていたかを気づかせてくれた。複数の記事ソースをフォローし、関心度に応じて大まかに優先順位を付けていた
      高校生の頃に何千本もの記事を読みながら、技術がどう動くのかについてのメンタルモデルをどんどんうまく作れるようになり、本当に有用だった。多くのことは変わったが、当時作ったモデルのかなりの部分は今でもかなり正確で、関心のある場所をさらに深掘りするときに役立つ
    • 「エンゲージメントや広告収益ではなくユーザーの効用に最適化される」と言うけれど、本当にそうだろうか、それとも快適な牢獄の中に居続ける手助けをするだけだろうか?
      もちろんエンゲージメントの牢獄よりは快適な牢獄のほうがましだが、時にはそこから出る必要があるかもしれない
      RSS リーダー時代のキュレーションは、いつも自分と意見が合うわけではない人たちがしてくれていたものではなかったか?
  • HN アカウントをプロファイリングしてからいじる、似たようなツールを作った: https://hn-wrapped.kadoa.com/
    面白いし、時々怖くもある
    追記: ユーザー名は大文字小文字を区別する

    • ユーザーコメントの最初のページだけをサンプリングするより、もっと多く見ればずっと面白く、あるいは洞察的になりそう
      それでもかなり正確だった:
      Predictions
      Personal Projects
      After a deep dive into archaic data storage, you'll finally release 'Magnetic Tape Master 3000' – a web-based app that simulates data retrieval from a reel-to-reel, complete with authentic 'whirring' sound effects. It'll be a niche hit with historical computing enthusiasts and anyone who misses the good old days of physical media.
    • 「あなたのコメントには詳しい技術説明や訂正がよく出てくるので、あなたは技術に深くのめり込んだ人か、単に部屋でいちばん賢い人でいるのが好きな人だと見られます。正直、両方でしょうね。」
      完全に容赦ない
    • ちゃんと見抜かれた感じがする

      Your profile reads like a 'Hacker News Bingo' card: NASA, PhD, Python, 'Ask HN' about cheating, and a strong opinion on Reddit's community. The only thing missing is a post about your custom ergonomic keyboard made from recycled space shuttle parts.

    • 予測結果:
      「あなたは、これまで知られていなかった HN のアップボート・ブラックホールを発見することになります。経済的不安定性についてのよく整理された繊細なコメントはすべて忘却の彼方へ吸い込まれ、『Show HN: Rustで作った自分のTODOリスト』は500ポイントを獲得する、そんな場所です。」
      ひどいけど、よくできている
    • 会社のプラットフォームでユーザーをプロファイリングするときに似たようなものを使っている。一般に LLM は過度に「親切」なので、ユーザーをローストさせると、重要だったり興味深かったり矛盾していたりする情報がよりうまく表に出た
      そのうえかなり笑える
  • 最近こういうものに本当に関心がある。Pocket の保存記事だけでなく、ChatGPT/Gemini/Claude の会話履歴のメタ分析も含まれる
    超パーソナライズされた RSS 要約スクリプトを使っているのだが、実際に自分に関係のある項目がいちばん多い RSS フィードは、自分がなんとなく読んでいるものとはかなり違うことに気づいた
    次にやってみようとしているのは、自分の関心や関連性に合った生成的な世界モデルを作ること。その世界モデルの別々の部分を、異なる周期で更新・調査できる
    そうすると、自分にとっての「ニュース」とは、ニュースによってその世界モデルがどう変わったかの差分になる。また、現在の世界モデルのローカル・オフライン版を常に持てるので、受信箱・カレンダー・メッセージ・ツイートなどをローカルモデルでフィルタリングしたり並べ替えたりするのに役立ちそう

    • 面白そう。もう少し詳しく説明してもらえる?
  • 以前、楽しみと好奇心から、HN プロフィールに対してこういうことをする小さなスクリプトを作った。投稿とコメント履歴を使って、居住地、政治的傾向、キャリア、年齢、性別のようなプロフィールを推測した
    主な動機は、いくつかのコメントスレッドで驚くような見解を見かけ、それがどこから来たのか気になったことだった。プロフィールがどれほど正確だったかはまったく分からないが、LLM がこうしたことをできる能力を見るうえで興味深い実験だった

    • 最近、誰かが記事内容とユーザープロフィールをもとに、HN のトップページに上がる投稿を予測するためにこれを使っていた
    • 少なくとも自分自身に対して実行すれば、どれくらい正確か確認できるので面白そう
    • これ覚えている。自分についてはかなり正確だったが、少し甘すぎた。例えば、自分が世界を救うだろうとか、そんな感じだった
  • もう少し左派寄りのカトリック家庭を背景に持つ立場からすると、カトリックだから保守派だと判断したのは興味深い。米国北東部にはそういうカトリックのほうが多い気がする

    • 全体として見ると、カトリックもプロテスタントも、どの宗派であれ北東部・西海岸ではよりリベラルである可能性が高く、中西部・南部ではより保守的である可能性が高いと思う
      これは、2025年における宗教の平均的な重要性について何かを物語っている
    • ピッツバーグ生まれでカトリックとして育ち、かなりリベラルだ。90年代にはすでに女性の侍者もいたし、教会で儀式を挙げたオープンなゲイのメンバーもいた
      今はカトリックではないが、80〜90年代のあの教会は良い教会だった
    • 公平に言うと、実際にはこう言っていた:

      Fiscally conservative / civil-libertarian with traditionalist social leaning
      そして根拠として挙げていたのはこうだった:
      Bogleheads & MMM frugality + Catholic/First Things pieces, EFF privacy, skepticism of Big Tech censorship
      現在のFirst Thingsは、宗教的な社会保守主義に関するメディアに近い。誰かがカトリックで、First Things の記事を読んでいるなら、「保守派」という予測はかなり堅い
      ただし、読んでいるものだけで人をプロファイリングするのは、全般的には誤りになり得ると思う。私は同意しない記事もよく読むし、考えを変えることもある。変えない場合でも、実際の主張が何なのか知りたくて意図的に探して読むこともある。ただ、そういう記事を Pocket に保存したかどうかは気になる

  • 数百件の保存リンクがフラットなリストとしてあるなら、「あとで読む」という名前の正直な投げ込み場だろうから、AIや自然言語処理ですべて分類させ、もう興味のない項目を簡単に削除できるようにできる

  • 興味深い記事だ。妙なことに、Pocketをもっと使っておけばよかったと思った
    余談だが、LLMの応答に見られる標準的な口調には本当にうんざりしてきている。おしゃべりな出力の典型的な形式は見分けられるだろう:
    陳腐な前置き!普通の人間が言いそうないくつもの言葉のあとに、結局2足す2は4だという核心的な応答が続く。人間らしく聞こえるそれっぽい言葉がさらに続く!
    もちろん、内部的には実際そういう仕組みなのだということは理解している。LLMは学習の性質上、要点にたどり着くまで冗長に手探りしなければならないからだ。だが、余計な部分の後処理で取り除ける見込みはないのだろうか?別の言語コーパス機械を使うのではなく、推論エンジンの内部で実際の答えだけを蒸留したい
    昔からあるインターネットのレシピ問題と同じだ。欲しいのはこれだ:
    500g wheat flour
    280ml water
    10g salt
    10g yeast
    でも実際に受け取るのはこれだ:
    It was at the age of five, sitting
    on my grandmother’s lap in the
    cool autumn sun on West Virginia
    that I first tasted the perfect loaf…

    • 文脈なしにレシピをどう信頼するのか?
      人は自分が欲しいものは一つだと言うが、実際の行動とお金は別のところへ向かう
      不要な余計話があることには同意する。だが、「レシピだけくれ」が人々の本当に望んでいることだとは思わない。そしてこの見方が特殊な例外だとも思わない。実際、ああいう文脈がまったくないレシピを受け取って作りたいと思ったことがあっただろうか?
    • これはChatGPTのような汎用LLMアプリの問題だ。幅広い訴求力を持たなければならないので、平均的なユーザーが望むものと違う回答を求めると難しくなる
      OpenAIは、ChatGPTの出力をより設定可能にする作業をしていると言っていた
    • 最後に「簡潔に答えて」と付けるとかなりうまくいく
      専門家ではないが、「考える」モデルでは、その簡潔化の段階が最後に起きてほしい。内部では好きなだけ冗長に考えてもいいが、私には答えだけをくれればいい
    • 参考までに、o3はほとんどの他のLLMよりも要点に早く到達するようだ。あまりにそうなので、広いテーマを尋ねるとかなり圧縮してしまい、正確に何を言っているのか把握しにくいこともある
  • LLMで自分のタブを全部整理する可能性を考えていた。私はスマホで「:D」という件数表示をあまりにも長く放置してきた、ひどいタブ収集家の一人だ
    普段は定期的に一掃するが、長い間そうする動機がなかった。Pocketから取り出したように、タブをCSVのようなものへ簡単にダンプする方法さえあればいい

    • 最近、整理されていないブックマークでこれを試してみた。並列API呼び出しを初めて使ったときだった
      gpt-4-nanoのスレッド10本がブックマークを10件ずつのバッチで分類し、数分でブックマーク10,000件を処理した