惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Heimdal Security Blog
A
Arctic Wolf
K
Kaspersky official blog
V
Vulnerabilities – Threatpost
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Simon Willison's Weblog
Simon Willison's Weblog
L
LINUX DO - 热门话题
MongoDB | Blog
MongoDB | Blog
T
Threat Research - Cisco Blogs
D
Docker
爱范儿
爱范儿
T
Tenable Blog
C
Check Point Blog
B
Blog
C
Cisco Blogs
Vercel News
Vercel News
The Cloudflare Blog
T
Threatpost
NISL@THU
NISL@THU
T
Tor Project blog
V2EX - 技术
V2EX - 技术
P
Palo Alto Networks Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
T
Tailwind CSS Blog
G
GRAHAM CLULEY
P
Privacy & Cybersecurity Law Blog
SecWiki News
SecWiki News
博客园 - 司徒正美
S
Security @ Cisco Blogs
GbyAI
GbyAI
S
Secure Thoughts
Microsoft Security Blog
Microsoft Security Blog
The Register - Security
The Register - Security
Recorded Future
Recorded Future
Cloudbric
Cloudbric
Webroot Blog
Webroot Blog
N
News and Events Feed by Topic
Y
Y Combinator Blog
博客园_首页
T
Troy Hunt's Blog
The Hacker News
The Hacker News
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
U
Unit 42
AWS News Blog
AWS News Blog
PCI Perspectives
PCI Perspectives
V
Visual Studio Blog
博客园 - 聂微东
有赞技术团队
有赞技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Плохой ли я друг?
maybe_elf · 2026-05-29 · via Все публикации подряд на Хабре

Плохой ли я друг?

Средний

13 мин

7K

Я проанализировал 20 лет своей переписки и превратил 1,2 миллиона сообщений в структурированное хранилище своей жизни — чтобы завоёвывать друзей и влиять на людей. Вместо этого я узнал кое-что о своём эмоциональном состоянии, циклах привязанности и периодах полураспада дружбы.

В 2014 году Тим Урбан из WaitButWhy опубликовал «Ваша жизнь в неделях» — сетку, где каждый квадратик — это одна неделя жизни, и большая часть сетки уже заполнена. Это изображение беспокоило меня годами. Я начал отслеживать события отчасти из-за него — я хотел, чтобы сетка что-то значила, а не просто отсчитывала время. Но биометрические данные — это странное представление того, насколько насыщенной была моя жизнь. Сетка предполагает, что важны события — работа, поездки, учёба, браки — и их легко отметить. Но они едва ли отражают то, как я себя чувствовал в течение этих недель, или каким я был для окружающих меня людей. Вот что я хотел измерить.

Поэтому я попробовал вести дневник. Сначала на бумаге, затем в текстовых файлах, а потом — ежедневные заметки в Obsidian. Дневник запечатлел то, что я считал важным в день написания. В нём не было ни разговоров, которые я забыл записать, ни медленно развивающихся закономерностей, которые я не мог заметить в то время.

Устав от неумения поддерживать отношения и желая компенсировать это данными, я отправился на поиски своего рода личной CRM-системы, основанной на записях, а не на памяти — благодаря следам, оставленным моим многолетним бесцельным времяпрепровождением в интернете за последние несколько десятилетий.

Моя цифровая история

Моё присутствие в сети примерно делится на три эпохи:

  • ICQ, IRC, DC++ в 2000-х: ночные каналы для начинающих хакеров и шуток — всё это исчезло, и, вероятно, к лучшему. Десятилетнему ребёнку, которым я был в этих чатах, не нужен структурированный архив.

  • VK, Twitter, Facebook** в 2010-х: школа, университет, начало карьеры — равномерное распределение.

  • Instagram** и Telegram в 2010-2020-х годах: как ни странно, несмотря на то, что я не так часто публикую что-либо в Instagram, часто проще общаться с людьми в личных сообщениях, и всё больше людей меняют WhatsApp** на Telegram.

Вооружившись GDPR и законами о доступе к данным, я создал архив со всеми своими сообщениями, реакциями и социальными графами.

Архивы данных

Разбор множества JSON и HTML-файлов был несложным, но и не доставлял удовольствия. Instagram дважды кодирует кириллицу через латиницу. Telegram присваивает разные внутренние идентификаторы сообщений между экспортами, сделанными в разные даты. Facebook в какой-то момент ввёл сквозное шифрование, поэтому одни и те же сообщения отображаются в трёх разных папках. Telegram позволяет экспортировать групповые чаты или только свои собственные сообщения. VK экспортирует всё без запроса. Instagram вообще не различает трансляции и личные чаты.

После преобразования в единый формат с разделителями-табуляторами пять экспортов дают разные типы сигналов. Telegram и VK — это в основном личные сообщения. Instagram добавляет взаимодействие в историях и график подписчиков. Twitter — это отдельная категория: отдельные твиты представляют собой корпус публикаций, личные сообщения — это наполовину запросы в службу поддержки, наполовину координация конференций, поэтому мне нужен был график ответов/упоминаний, чтобы улавливать реальные сигналы.

Я хотел зафиксировать ежедневную заметку по каждому разговору, профиль каждого человека, заготовку по каждому месту, хронологию жизни и все остальное, что всплывает — рецепты, коктейли, заметки о встречах.

Утопая в шуме

Прежде чем беспокоиться о классификации, нужно учитывать тот факт, что большая часть данных — это шум.

В моей самой длинной переписке — более 486 000 сообщений с моим партнёром за десять лет — контент содержит 2,4% ссылок, 9,1% медиафайлов, 1,5% сообщений только с эмодзи, 28,4% коротких фраз и 58,7% содержательного текста. Это означает, что 41% — это шум для целей этого упражнения. Фильтровать эмодзи, ссылки и медиафайлы было легко, но выявить слова-паразиты в разговорной речи — короткие слова, которые кажутся содержательными, пока вы не увидите их сотни раз в месяц, — сложнее.

Моя первая идея заключалась в фильтрации всех сообщений короче трёх слов, но многое можно сказать и двумя (он умер, мы проиграли и т. д.). Создание списка запрещённых слов из «ха-ха-ха» и других подобных выражений тоже не сработало, особенно на разных языках.

Решающим моментом стало использование выборки из пяти смещённых позиций в чате, подсчёт частоты каждого короткого слова, ручной просмотр 80 самых популярных и сопоставление списка запрещённых слов с защищённым набором коротких сообщений, относящихся к жизненным событиям.

На всех платформах и за все годы очищенный корпус содержит примерно 52 000 уникальных лемм. Показатель новизны — доля слов, которые я раньше не использовал ни в одном чате, — снижается с 2008 года и стабилизировался на уровне 6% шесть лет назад. Большая часть моего словарного запаса сформировалась в начале моих 20-х годов.

Показатель «Баллы»: количество новых уникальных слов в год (никогда ранее не использовавшихся). Показатель «Линия»: доля новых слов в общем словарном запасе за год. В 2016 году было больше всего новых слов, но низкий процент новизны, потому что общий словарный запас в том году был огромным — видимо, я был очень общительным.

Показатель «Баллы»: количество новых уникальных слов в год (никогда ранее не использовавшихся). Показатель «Линия»: доля новых слов в общем словарном запасе за год. В 2016 году было больше всего новых слов, но низкий процент новизны, потому что общий словарный запас в том году был огромным — видимо, я был очень общительным.

После фильтрации шума очищенные сообщения нуждаются в классификации: что является важным событием в жизни, что — шуткой, кто упоминается, каков эмоциональный настрой. Но прежде всего, есть более фундаментальная проблема.

Какой Саша

Большинство людей, с которыми я общаюсь, используют более одной платформы и часто не используют одни и те же имена пользователей на всех. Если бы я вёл профиль для каждого знакомого мне человека, мне пришлось бы сопоставлять их (и упоминания о них) во всех чатах.

Итак, появляются уменьшительные имена и прозвища: один и тот же Александр может превратиться в Эл, Алекс, Ксандер, Сэнди и Аlec(k). Это также может быть Саша, если он из Восточной Европы — а в славянских языках Саша — гендерно-нейтральное слово. Морфологические анализаторы помогают с падежным склонением, но не справляются со сленгом, и «Саша» в моих чатах означает несколько разных людей в зависимости от того, когда было отправлено сообщение и с кем я разговариваю.

Эвристические методы и модели NER не подойдут для тысяч упоминаний только по имени в групповых чатах. Классификатор, обученный на содержании сообщений, мог бы сработать, но обучающий набор данных пришлось бы размечать вручную из моих собственных чатов — именно ту работу, которой я пытался избежать.

Синтаксический анализ всех сообщений

Та же проблема возникает с классификацией того, что действительно важно.

Очевидный подход — это сопоставление ключевых слов с глаголами первого лица (купил, переехал, подписал), пропущенное через NER для извлечения имен и мест, но он даёт много ложных срабатываний. «Я переехал» в сообщении маме означает переезд, «Я переехал» в чате с друзьями — это дизайн интерьера, а «Я переехал» после расставания — это эмоциональный этап.

Тонкая настройка классификатора на сообщениях, размеченных вручную, дала бы мне в лучшем случае точность ~70-80% — а при 1,2 миллионах сообщений даже 1% ложноположительных результатов означает 12 000 фиктивных событий в хранилище.

Поэтому я в итоге использовал LLM как для разрешения имен, так и для классификации. При сравнении с контрольным набором из 200 событий частота ложноположительных результатов составила менее 1% при обработке фрагментов менее 6000 сообщений.

LLM не записывает данные в хранилище. Программа считывает фрагмент сообщений и создает структурированный JSON-манифест — ежедневные заметки с датами и тегами настроения, факты профиля сущности, события жизненного цикла, обновления мест и список неоднозначностей, которые она не смогла разрешить («msg 833006: ‘John’ without surname - which John?»). Детерминированный скрипт считывает этот JSON и внедряет в него заметки. Каждая заметка содержит маркер происхождения (chat::tg/chat_NNN) (msg::730372 - 730650), указывающий на источник. Хранилище происхождения SQLite отслеживает каждую выходную заметку до исходного сообщения, поэтому некорректную сессию можно аккуратно отменить. Все детерминированные операции — парсинг, фильтрация, дедупликация, отслеживание происхождения — выполняются на Python, поэтому сами сообщения не попадают в хранилище, но я всегда могу отследить их содержимое, используя оригинальные архивы в качестве источника достоверной информации.

Обучение модели обработки запросов

Файл запросов, определяющий поведение LLM, изначально имел размер 8 КБ, но быстро увеличился в десять раз, в основном из-за ошибок.

Например, модель прочитала ветку обсуждения, где я объяснял другу расчёты цен в рамках программы обновления iPhone, и добавила событие покупки в жизненную хронологию, поэтому мне пришлось добавить проверку на принадлежность от первого лица — классификация жизненных событий без явных маркеров от первого лица в исходном тексте невозможна («Я купил», «Я подписал»).

Защитный механизм — скрипт проверки, который запускается перед тем, как отметить любой чат как завершённый, — механически обнаруживает некоторые из этих ошибок: «осиротевшие» вики-ссылки, дублирующиеся цитаты, языковое смешение. Но он не может обнаружить конфабуляцию, поэтому я добавил выборку: после каждой партии случайным образом выбираются 5-10 результатов, которые затем проверяются по исходному тексту. Самооценка уверенности модели никогда не должна быть показателем качества.

Направленная тональность

На этом этапе у меня были структурированные данные: люди, места, события, хобби, рецепты. Но мне также хотелось понять, какие чувства вызывают мои отношения.

Стандартный анализ настроений присваивает каждому сообщению одну полярность: позитивную, негативную, нейтральную. Если один человек полон энтузиазма, а другой отвечает односложно, VADER пометит разговор как позитивный, но в реальности всё асимметрично: одна сторона настроена тепло, другая — нейтрально, и именно эта разница делает разговор интересным.

Можно было бы выстроить всё с помощью классического машинного обучения — классификация эмоций для каждого говорящего, а затем объединение в пары, — но близкие дружеские отношения по умолчанию тёплые. Сигнал — это не абсолютная эмоция, а отклонение от базового уровня. Сообщение, помеченное как «радость», ничего не значит, если каждое сообщение в этих отношениях помечено как «радость». Модель должна понимать, как выглядит норма для этой конкретной пары, иначе вы получите дружескую перепалку, помеченную как «флирт».

Большая ошибка, которую я здесь совершил, заключалась в том, что я сказал LLM: «Эй, иди и пометь каждый разговор по настроению». После обработки примерно 9000 дней переписки я получил множество сентиментальных данных в свободной форме — более 5700 уникальных значений, таких как WWDC-binge-mode и garden-prep.

В итоге я переделал данные, добавив 18 тегов и три префикса направления (моё эмоциональное состояние, состояние собеседника и взаимное):

5695 дней в беседах. Каждый кружок соответствует одному тегу настроения. Размер кружка равен количеству дней.

5695 дней в беседах. Каждый кружок соответствует одному тегу настроения. Размер кружка равен количеству дней.

Учитывая, что в основном это друзья и родственники, ожидалось 66% M:warm. Интересные данные — это изменение со временем. Дружба, переходящая от M:playful к M:transactional за 18 месяцев, — это дрейф, и я не думаю, что смог бы заметить это в отдельной переписке.

Что показывают данные

Но заметил ли я что-нибудь ещё? Наиболее очевидным кажется объём сообщений — в данный момент это может быть менее очевидно, и иногда случаются жизненные обстоятельства, работа или праздники, но, безусловно, снижение должно что-то значить.

Ежемесячные сообщения близкому другу, 2013-2020 гг.

Ежемесячные сообщения близкому другу, 2013-2020 гг.

Интересно, что количество сообщений может уменьшиться, но их средняя длина может также увеличиться — так что дружба не умирает, она просто меняет форму.

Средняя длина сообщения на одного отправителя в трёх различных типах взаимоотношений.

Средняя длина сообщения на одного отправителя в трёх различных типах взаимоотношений.

Если не сообщения и их длина, то что? Рассмотрим совпадение словарного запаса — в некоторых моих отношениях оно увеличилось с 69,5% общих слов до 8,7%. Теперь мы используем почти исключительно непересекающийся словарный запас. Случайное сообщение от любого из нас можно легко идентифицировать по одному лишь выбору слов.

Сближение лексики в шести типах взаимоотношений.

Сближение лексики в шести типах взаимоотношений.

Значит ли это, что мы больше не друзья? Не обязательно, но это означает, что наши интересы гораздо больше различаются, чем раньше — что тоже может быть хорошо.

Ещё один интересный показатель — это количество сессий по сравнению с количеством сообщений за сессию. Взаимодействие с моим партнёром распадается на тысячи микро-проверок (количество сессий увеличивается, количество сообщений за сессию уменьшается), в то время как чаты с другим близким другом сжимаются из множества небольших сессий в день в содержательные беседы несколько раз в месяц (количество сессий уменьшается, количество сообщений за сессию увеличивается).

Количество сессий и сообщений за сессию, партнёр и близкий друг.

Количество сессий и сообщений за сессию, партнёр и близкий друг.

Я также посмотрел время ответа, но оно больше говорит о привычках использования телефона, чем о чувствах человека. Разница между чатами невелика и увеличивается с длиной ответа — лучшим показателем было бы время от получения сообщения до его прочтения, но ни один из экспортированных графиков данных этого не предоставляет.

Медианное время реакции по четырём типам взаимоотношений.

Медианное время реакции по четырём типам взаимоотношений.

По иронии судьбы, в среднем я отвечаю на первое сообщение в сессии с большой задержкой, но затем отвечаю на все последующие сообщения быстрее, чем любой другой человек в моей выборке отвечает мне — у меня слишком много времени или мне больше нечем заняться? Разница незначительна для моего партнёра и ближайших друзей и увеличивается для второстепенных контактов.

В большинстве разговоров, когда один человек пишет длинное сообщение, другой отвечает ему тоже длинно — это называется языковой адаптацией. Я обнаружил несколько чатов, в которых происходило обратное: чем длиннее я писал, тем короче они отвечали.

Я не обнаружил никакого эмоционального заражения между разговорами — общение с одним человеком не оказывало заметного влияния на настроение моего следующего разговора в тот же день. Грусть не проникает сквозь чаты, но и теплота тоже, поэтому все разговоры идут по своим независимым путям.

Существует теория, что количество вопросов уменьшается по мере развития романтических отношений — вы перестаёте спрашивать, потому что уже знаете ответ. Данные по моему партнёру немного подтверждают это (с 8,8% до 8,3% за девять лет). Но данные по моей близкой подруге и матери показывают обратное: количество вопросов увеличилось с 11% до 18,5% и с 8,5% до 17,3% соответственно, по мере того как эти разговоры становились реже. Когда вы общаетесь с кем-то лишь изредка, большая часть ваших сообщений — это поиск информации. Частота вопросов является обратным показателем пропускной способности отношений.

Частота вопросов в зависимости от отношений. Линия партнёрских отношений плавно снижается, как и предсказывал Пирсон. В каждом случае уменьшения числа отношений наблюдается обратная тенденция.

Частота вопросов в зависимости от отношений. Линия партнёрских отношений плавно снижается, как и предсказывал Пирсон. В каждом случае уменьшения числа отношений наблюдается обратная тенденция.

Многие люди, которые пытались анализировать свои чаты раньше, создавали облака тегов — то, что, я надеюсь, мне больше никогда не придётся видеть, — поэтому я сосредоточился на частоте ласковых обращений. Это хорошо работает с чатом с партнёром — есть три чётких этапа в лексике, каждый из которых отслеживает определённые стадии отношений и условий проживания:

Частота использования ласковых выражений в чате с партнёром, 2016-2026 гг.

Частота использования ласковых выражений в чате с партнёром, 2016-2026 гг.

Тоска и признания в любви сменяются уменьшительными и ласковыми словами, а затем — сигналами одобрения и шутками. Когда вы находитесь врозь, эмоции передаётся текстом, но когда вы вместе, в основном фиксируются логистические моменты, поскольку эмоциональные вещи обсуждаются лично.

Изучив свой близкий круг общения, я расширил его и посмотрел на ежегодное сокращение контактов — количество контактов, которые прекращаются после каждого года. Переезд в другой город (2016) или за границу (2017) в мои 20 лет стал более значительным событием, приведшим к исчезновению дружбы, чем переезд в другой город (2023) или за границу (2025) в мои 30 лет. Без переездов я теряю около 20 человек в год.

Люди, чьё последнее сообщение было отправлено в том году.

Люди, чьё последнее сообщение было отправлено в том году.

Медианная продолжительность дружбы в наборе данных составляет три года, но 41 человек замолчал на 3+ года, а затем снова появился.

Тем не менее, большинство этих контактов не обязательно являются друзьями. Британский антрополог Робин Данбар обнаружил корреляцию между размером мозга приматов и средним размером социальной группы, а затем экстраполировал это, предположив, что люди могут комфортно поддерживать 150 стабильных отношений. Затем он подсчитал, что люди поддерживают отношения концентрическими слоями — примерно 5 человек, которым вы позвоните в кризисной ситуации, 15 близких друзей, 50 постоянных контактов и 150 активных знакомых.

Слои, определённые Данбаром, измерялись в продольном направлении.

Слои, определённые Данбаром, измерялись в продольном направлении.

Моя группа поддержки и активная сеть со временем сокращаются. Но общее количество дней общения в год оставалось практически неизменным на уровне ~360 в течение шести лет подряд — пандемия тоже не изменила этого, хотя казалось, что они должны были бы увеличиться, учитывая количество координации для пьяных посиделок по Zoom. Даже несмотря на то, что за годы я потерял 75% своей сети, я не освободил ни одного дня общения, а просто продолжал перераспределять те же ~360 дней между меньшим количеством людей.

Разговоры с близкими друзьями эмоционально разнообразны — на диаграмме рассеяния эмоционального разнообразия и концентрации доминирующих эмоций большинство людей группируются в левом нижнем углу (одна доминирующая эмоция, низкое разнообразие). Мой партнёр и близкие друзья находятся в правом верхнем углу (много эмоций, ни одна не является доминирующей). Деловые разговоры с коллегами расположены в самом левом нижнем углу.

Каждая точка обозначает человека, с которым я разговаривал. Размер кружка равен объёму разговора.

Каждая точка обозначает человека, с которым я разговаривал. Размер кружка равен объёму разговора.

Я бы описал себя как «поддерживающего друга». Данные говорят, что я в равной степени «друг, дающий советы» — наставничество (50 асимметричных дней) почти соответствует поддержке (59). Если когда кому-то нужна моя помощь, я рефлексирую и пытаюсь объяснять, а не слушать. Я этого не знал.

Когда я путешествую, разговоры со всеми становятся более тёплыми (69,8% против 65,9% дома) и менее формальными (9,3% против 13,2%) — скорее всего, потому что мне не нужно думать о работе.

Мнения о днях поездок и днях, проведённых дома.

Мнения о днях поездок и днях, проведённых дома.

Я также могу чётко определить период моей жизни, когда я работал с 9 до 5: пик активности в переписке сместился с полуночи на полдень.

Время появления сообщений по часам, 2013-2026.

Время появления сообщений по часам, 2013-2026.

Люди, активные вечером, как правило, имеют больше друзей, но более низкого качества. В «ночные» годы у меня было около 300 активных контактов, но в «дневные» годы их число упало до ~60.

Подождите, но почему?

Моя социальная жизнь за два десятилетия умещается в 70 МБ — меньше, чем одна серия фотографий на iPhone.

Я начал это делать, потому что сетка Тима Урбана меня раздражала своей пустотой: школьные годы, каникулы, работа, отмеченные на конечной временной шкале, не вызывали у меня чувства удовлетворения от жизни. Каждый квадратик — это одна неделя, и в большинстве моих квадратиков ничего не было написано.

Теперь она прописана, но не в формате «переехал в Лондон» или «женился» — я бы и без посторонней помощи это запомнил. Первое сообщение от человека, который позже стал одним из моих самых близких друзей, или ночь, когда групповой чат не давал всем уснуть от смеха, или рецепт, которым кто-то поделился вскользь, и который я до сих пор использую каждую неделю.

Я понял, что моя жизнь никогда не была пустой. Моя память просто была очень избирательной.

Визуализация графа в Obsidian 2D плохо работала с 7000 узлами, поэтому я перевёл его в трёхмерное пространство в Vision Pro.

Скопления воспоминаний имеют форму, поэтому я решил пройтись по ним.

Скопления воспоминаний имеют форму, поэтому я решил пройтись по ним.

Это интересная техническая задача — представьте себе, как сократить количество вычислений с 26 миллионов в тике до 50 тысяч с помощью алгоритма, заимствованного из моделирования столкновений галактик, чтобы достичь 60 кадров в секунду, — но это заслуживает отдельного поста. 

Это исследование не изменило того, как я общаюсь с людьми. Я по-прежнему склоняюсь к даче советов, когда кому-то нужно, чтобы его выслушали, по-прежнему показываю разным людям разные стороны себя, по-прежнему оставляю половину своих бесед непрочитанными на несколько дней. Но я погрузился в ностальгическую кроличью нору, которой не ожидал, и узнал о своих отношениях то, чего не мог бы увидеть, общаясь по одному чату за раз. Теперь я знаю, как выглядят мои модели поведения со стороны — предполагая, что кто-то другой удосужится провести свои чаты по тому же десятиэтапному алгоритму и поискать меня.

В качестве побочного эффекта, теперь у меня есть всё необходимое, чтобы быть лучшим другом — даты последнего контакта и динамику настроений, их надежды и страхи, имена их питомцев (часто) и детей (иногда), аллергии и любимые блюда. Эта работа ответила на множество вопросов, о существовании которых я даже не подозревал.

А я плохой друг? Я думал, что мне придется спросить 400 человек, чтобы это выяснить — оказывается, достаточно было десяти.

Meta Platforms*, а также принадлежащие ей социальные сети Facebook**, WhatsApp** и Instagram**:
* — признана экстремистской организацией, её деятельность в России запрещена;
** — запрещены в России.