macOS内部のEntityTagging_Family.mlmodelcファイルには、photosPersonPosteriorProbabilityGivenSaturdayNightという特徴量名が実際に存在します。これは、2人の人物が土曜日の夜の写真に共に写り込む頻度が、「家族であるか」を判断するための144個の数値シグナルの1つであることを意味する、具体的な事実です。セキュリティ研究チーム8rank.aiのDario Pasquini氏とMichał Bazyli氏は、このファイルを解析し、Appleがサーバーへの送信なしにデバイス内で機械学習により家族関係を推定していることを明らかにするとともに、その結果をユーザーが直接確認できるオープンソースツールiKnowを公開しました 1。
macOS 13(2022年)以降のすべてのMacには、knowledgeconstructiondとintelligenceplatformdという2つのデーモン(バックグラウンドで自動的に実行されるシステムプログラム)が搭載されています。これらのデーモンは、連絡先、写真内の顔、カレンダー、メッセージの相手などを照合し、デバイス内で個人知識グラフ(接続ネットワーク)を構築します。8rank.aiチームがmacOS 26.6.2バージョンを解析した結果、ユーザーと周囲の人物との関係・位置・行動パターンを組み合わせた推論データが実際に保存されていることが判明しました 1, 2。
同じ苗字、住所、写真への出現頻度:144個のシグナルで構成される分類器
家族や友人関係の推定に使用される分類器として、EntityTagging_Family.mlmodelcとEntityTagging_FamilyAndFriends.mlmodelcという2つのファイルがあります。8rank.aiチームは、これらのファイルが二値XGBoost分類器(数値入力を受け取り、特定の関係である確率を計算する機械学習モデル)であることを確認しました 1, 2。両モデルは、決まった順序を持つ144個の数値特徴量を入力として受け取ります。これらの特徴量は、識別情報、通信、写真の3つのグループに分類されます。
識別情報に関連する20個のシグナルには、同じ苗字、自宅と職場の住所、メールアドレスのドメイン、生年月日、あだ名、お気に入りやVIPへの指定有無、iCloudファミリー共有への参加有無、年齢差などが含まれます。通信に関連する40個のシグナルは、長期的および短期的な連絡頻度、曜日と時間帯、連絡場所、平日と週末の条件付き頻度、主要な連絡手段などを測定します。この際、メッセージの本文そのものは特徴量の計算には使用されません。写真に関連する84個のシグナルは、同じ写真フレーム内に共に写り込んだ頻度を、曜日、時間帯、場所別に細分化して計算します 1。
分類器が計算したスコアは、グラフ本体ではなく、entityTagging.dbという別のファイルに保存されます。1人につき1行ずつ記録され、母・父・兄弟・姉妹・息子・娘・パートナー・同僚・友人など17の関係列に区分され、毎日再計算されます 1, 2。ただし、8rank.aiチームが確認したモデルが接続している列は17列のうち2列に相当し、残りの15列を埋める仕組みや、この確率がグラフの信頼度へ変換される経路については、今回の解析では追跡できませんでした 1, 2。
8rank.ai解析用Macでの出力:母の列のみ最高スコアに到達
「家族推定データ」と聞くと、完成された家族名簿を思い浮かべやすいですが、実際の分類器による出力は、確定していない確率に近いものです。8rank.aiチームは、解析用Macからスコア表を直接読み出した結果を公開しました。解析の結果、母の列でのみ最高スコアに到達し、その他の人物の一部には、兄弟・姉妹・子など複数の家族関係の列に低いスコアが同時に付与されていました。スコア表に記録された値は、0.125、0.25、0.5、0.96といった少数の離散値を示し、多くの人物は初期値から逸脱していませんでした。同窓会や未確認の項目には、スコアが付与されませんでした 1。
こうした出力形態は、当該データが確定した家族情報ではなく、複数の低いシグナルが重なることでスコアが形成される、未完了の推定結果であることを示しています。分類器のスコアがグラフの信頼度にどう結び付くかは、今回の解析では確認されなかったため、スコア表の値を確定的な判定結果として解釈することは困難です。
人物識別のプロセスとデータの保存場所

家族関係を推論するためには、「この顔は、この人である」という人物識別が先行して行われる必要があります。グラフストレージには、人物エンティティと顔クラスタを接続する述語nm_hasVisualIdentifierや、名前と顔の同一性を確率で判定するnm_entityAliasRelationship構造が観察されます。2026年5月にこのストレージ構造を公開したソフトウェアエンジニアのNic Lydon氏は、別名(別名関係)がnm_confirmationConfidence(確認信頼度)スコアとともに記録される事実を抽出・提示しました 3。このプロセスは、写真内の顔とユーザーが指定した名前が一致しなくても、システムが接続を試みることを意味します。
該当するデータは、ユーザーのMac内部の~/Library/IntelligencePlatformパスに存在します。このフォルダ内には、51個のSQLiteデータベースファイルが平文(個別の暗号化なしで構造を把握できる形態)で保存されており、この場所はTCC(フルディスクアクセス権限保護機能)により保護されています 1, 2。
通信記録の範囲を正確に区別する必要があります。グラフに保存される通信メタデータは、「誰と」「いつ」「どのアプリで」「送信したか/受信したか」という情報です。Appleはメッセージ本文そのものをこのメタデータテーブルには含めません 1, 2。位置の移動や画面ロック、Wi-Fi接続状態などのシグナルも同じストレージ構造内に存在しますが、スキーマ(データ設計構造)に項目が宣言されていても、すべてのカテゴリで値が実際に収集されていることを意味するものではありません。
iKnowツールで関係スコアを直接確認する
8rank.aiチームは、ユーザーのデバイスのデータを直接確認できるようにするため、オープンソースツールiKnowを公開しました。Python標準ライブラリのみで作成されたローカルWebダッシュボードであり、実行時は127.0.0.1(自己のデバイス)にバインドし、データベースを読み取り専用で参照します。データを書き込んだりログを残したりせず、ネットワーク遮断環境でも動作するため、画面に表示される値がデバイスの外部へ送信されることはありません 1, 2。
iKnow画面で提供される主な情報は以下の通りです。
| 画面 | 表示内容 | 特徴および注意点 |
|---|---|---|
| 家族関係スコア表 | 17の関係列と上位カテゴリ(母+父→親など) | パートナーのスコアは上位カテゴリに含まれないため、個別の確認が必要 |
| 社会関係グラフ | 人・雇用主・グループチャット・共有カレンダーの接続 | 例示画面のスコアは合成データである |
| 写真顔インデックス | 同じ写真への出現で形成された顔クラスタの接続ネットワーク | 連絡先なしで写真の同時出現のみでネットワークが形成される |
| 年間連絡記録 | 送受信・通話回数および曜日別の時間分布 | メッセージ本文は含まれない |
| 削除履歴 | 削除された事実の信頼度と出所 | 削除時期に応じたデータの残留状況を確認可能 |
連絡先を削除しても、推定結果は一時的に残存する可能性があります。8rank.aiチームは、削除された接続がexpired_stable_graphテーブルへ移動し、一定期間残留する過程を確認しました。約48時間後に除去されるものと見られましたが、解析に使用したMacでははるかに古いレコードも読み取れたため、正確な保存期間は確認されていません。一例として、カレンダーの招待を通じて知った2人の人物が、グラフから除去された翌日にも、関係スコア表には残っていました 1。
macOSシステム設定画面には、ユーザーの関係スコアを閲覧したり修正したりできる公式UIが提供されていません 2。個別の公式参照手段や誤った推論の修正方法が存在しないため、iKnowのようなツールを使ってスコア表の状態を直接確認することが有用な手段です。macOS 27(27.0.1)へアップグレードした環境では、連絡先、カレンダー、Siri Suggestions、ファミリー共有、アプリ一覧から作成された行の大部分が一時的に削除された後、翌1日かけて再構築される過程が観察されました 2。
144個の数値シグナルに基づく毎日の家族関係スコア計算結果は、デバイス内のSQLiteファイルに保存されます。8rank.aiチームの解析用Macでは、母の列のみ最高スコアに達し、他は低いスコアが複数の列に散在する形で現れ、これが確定したデータベースではなく推定値であることを如実に示しました。iKnowを実行すれば、ユーザーのMacで同じスコア表を読み取り専用で開き、確認することが可能です。
参考文献
- ↩
- Mac은 누구를 가족으로 추정할까 - macOS의 개인 지식 그래프 | GeekNews · news.hada.io↩
- ↩




