2178 lines
274 KiB
Plaintext
2178 lines
274 KiB
Plaintext
{
|
||
"cells": [
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "d07d1982",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003215,
|
||
"end_time": "2026-06-14T17:01:42.399278+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:42.396063+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"# Asset Embeddings: Word2Vec Applied to Portfolios\n",
|
||
"\n",
|
||
"**Chapter 10: Text Feature Engineering**\n",
|
||
"**Section Reference**: See Section 10.2 for distributional hypothesis and Word2Vec\n",
|
||
"\n",
|
||
"**Docker image**: `ml4t-py312`\n",
|
||
"\n",
|
||
"> **Docker required**: This notebook uses `gensim`, which has no Python 3.14 support.\n",
|
||
"> Run with:\n",
|
||
"> ```bash\n",
|
||
"> docker compose --profile py312 run --rm py312 python 10_text_feature_engineering/02_asset_embeddings.py\n",
|
||
"> ```\n",
|
||
"\n",
|
||
"## Purpose\n",
|
||
"This notebook demonstrates how Word2Vec—the foundational NLP embedding method—\n",
|
||
"extends beyond text to financial assets. Just as words appearing in similar\n",
|
||
"contexts have similar meanings, stocks appearing in similar portfolios may\n",
|
||
"share fundamental characteristics.\n",
|
||
"\n",
|
||
"We train Word2Vec on institutional 13F holdings data, treating:\n",
|
||
"- **Portfolios** as sentences (ordered sequences of words)\n",
|
||
"- **Stocks** as words (tokens in those sentences)\n",
|
||
"- **Position ordering** as word order (stocks ranked by holding size)\n",
|
||
"\n",
|
||
"## Learning Objectives\n",
|
||
"After completing this notebook, you will be able to:\n",
|
||
"- Apply Word2Vec (skip-gram) to non-text data\n",
|
||
"- Create \"portfolio sentences\" from institutional holdings\n",
|
||
"- Train asset embeddings using gensim Word2Vec\n",
|
||
"- Find economically similar stocks using embedding distance\n",
|
||
"- Understand the bridge between NLP and quantitative finance\n",
|
||
"\n",
|
||
"## Academic Foundation\n",
|
||
"- **Gabaix, Koijen, Richmond & Yogo (2025)** \"Asset Embeddings\"\n",
|
||
" NBER WP 33651. They show portfolio holdings contain \"all relevant information\n",
|
||
" for asset pricing\" and demonstrate Word2Vec, BERT, and recommender systems\n",
|
||
" on institutional holdings data.\n",
|
||
"\n",
|
||
"## Prerequisites\n",
|
||
"- Section 10.2 of the chapter (distributional hypothesis, Word2Vec).\n",
|
||
"- `01_word2vec_training.py` for the Skip-gram mechanics on text.\n",
|
||
"- 13F bulk 2024Q3 holdings panel under `data/equities/positioning/13f/bulk/2024Q3/`\n",
|
||
" (downloaded via `data/equities/positioning/13f_download.py --mode bulk --quarters 2024Q3`)."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 1,
|
||
"id": "1cc219e7",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:42.406658Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:42.406463Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:48.221493Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:48.220967Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 5.819952,
|
||
"end_time": "2026-06-14T17:01:48.222067+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:42.402115+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"\"\"\"Asset Embeddings: Word2Vec Applied to Portfolios — train stock embeddings from institutional 13F holdings data.\"\"\"\n",
|
||
"\n",
|
||
"import json\n",
|
||
"import warnings\n",
|
||
"from dataclasses import dataclass\n",
|
||
"\n",
|
||
"import matplotlib.pyplot as plt\n",
|
||
"import numpy as np\n",
|
||
"import polars as pl\n",
|
||
"from gensim.models import Word2Vec\n",
|
||
"from sklearn.manifold import TSNE\n",
|
||
"\n",
|
||
"from data import load_13f_stock_features\n",
|
||
"from utils.config import ML4T_DATA_PATH\n",
|
||
"from utils.paths import get_chapter_dir\n",
|
||
"from utils.reproducibility import set_global_seeds\n",
|
||
"\n",
|
||
"warnings.filterwarnings(\"ignore\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 2,
|
||
"id": "9cdb9d4f",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:48.228402Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:48.228263Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:48.230070Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:48.229739Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.005367,
|
||
"end_time": "2026-06-14T17:01:48.230369+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:48.225002+00:00",
|
||
"status": "completed"
|
||
},
|
||
"tags": [
|
||
"parameters"
|
||
]
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# Production defaults — Papermill injects overrides for CI\n",
|
||
"SEED = 42\n",
|
||
"MAX_INSTITUTIONS = 500 # top-K institutions by holdings count from 2024Q3 bulk filing\n",
|
||
"QUARTER = \"2024Q3\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 3,
|
||
"id": "d2079313",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:48.236358Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:48.236255Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:48.484705Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:48.484206Z"
|
||
},
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.252048,
|
||
"end_time": "2026-06-14T17:01:48.485118+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:48.233070+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"======================================================================\n",
|
||
"EXPERIMENT CONFIGURATION\n",
|
||
"======================================================================\n",
|
||
"{\n",
|
||
" \"random_seed\": 42,\n",
|
||
" \"embedding_dim\": 100,\n",
|
||
" \"window_size\": 5,\n",
|
||
" \"min_count\": 5,\n",
|
||
" \"sg\": 1,\n",
|
||
" \"epochs\": 10,\n",
|
||
" \"workers\": 1,\n",
|
||
" \"benchmark\": {\n",
|
||
" \"position_ranges\": [\n",
|
||
" [\n",
|
||
" 2,\n",
|
||
" 10\n",
|
||
" ],\n",
|
||
" [\n",
|
||
" 10,\n",
|
||
" 50\n",
|
||
" ],\n",
|
||
" [\n",
|
||
" 50,\n",
|
||
" 200\n",
|
||
" ]\n",
|
||
" ],\n",
|
||
" \"samples_per_range\": 25,\n",
|
||
" \"bootstrap_iterations\": 1000\n",
|
||
" }\n",
|
||
"}\n",
|
||
"======================================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Reproducibility — single source of seeds for Python random, NumPy, and (if installed) Torch.\n",
|
||
"set_global_seeds(SEED)\n",
|
||
"\n",
|
||
"CONFIG = {\n",
|
||
" \"random_seed\": SEED,\n",
|
||
" \"embedding_dim\": 100,\n",
|
||
" \"window_size\": 5,\n",
|
||
" \"min_count\": 5,\n",
|
||
" \"sg\": 1, # Skip-gram\n",
|
||
" \"epochs\": 10,\n",
|
||
" \"workers\": 1, # Single worker for reproducibility (multi-threaded Word2Vec is non-deterministic)\n",
|
||
" \"benchmark\": {\n",
|
||
" \"position_ranges\": [(2, 10), (10, 50), (50, 200)],\n",
|
||
" \"samples_per_range\": 25,\n",
|
||
" \"bootstrap_iterations\": 1000,\n",
|
||
" },\n",
|
||
"}\n",
|
||
"\n",
|
||
"print(\"=\" * 70)\n",
|
||
"print(\"EXPERIMENT CONFIGURATION\")\n",
|
||
"print(\"=\" * 70)\n",
|
||
"print(json.dumps(CONFIG, indent=2))\n",
|
||
"print(\"=\" * 70)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "3be8ca30",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002744,
|
||
"end_time": "2026-06-14T17:01:48.490849+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:48.488105+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## The Core Insight: Portfolios as Sentences\n",
|
||
"\n",
|
||
"In NLP, Word2Vec learns that words appearing in similar contexts have similar\n",
|
||
"meanings. The **skip-gram** objective predicts context words given a target word.\n",
|
||
"\n",
|
||
"Gabaix et al. (2025) apply this to portfolios:\n",
|
||
"\n",
|
||
"| NLP Domain | Finance Domain |\n",
|
||
"|------------|----------------|\n",
|
||
"| Sentence | Portfolio (stocks ordered by weight) |\n",
|
||
"| Word | Stock |\n",
|
||
"| Context window | Nearby positions (similar weights) |\n",
|
||
"| Similar meaning | Similar investment characteristics |\n",
|
||
"\n",
|
||
"**Key insight**: Investors assign similar portfolio weights to stocks with\n",
|
||
"similar characteristics. If AAPL and MSFT often appear as the 2nd and 3rd\n",
|
||
"largest positions in tech-focused portfolios, they should have similar embeddings."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "eb8e52f9",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.00301,
|
||
"end_time": "2026-06-14T17:01:48.496624+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:48.493614+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Load and Prepare Holdings Data\n",
|
||
"\n",
|
||
"Every institutional investor managing over $100M must file quarterly 13F-HR\n",
|
||
"disclosures with the SEC. We use the bulk 2024Q3 filing window and select the\n",
|
||
"largest 500 institutions by number of holdings — enough portfolios to give\n",
|
||
"Word2Vec a meaningful co-occurrence signal, while keeping training tractable."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 4,
|
||
"id": "2ec182c7",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:48.503272Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:48.503043Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:49.094355Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:49.093936Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.595399,
|
||
"end_time": "2026-06-14T17:01:49.094790+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:48.499391+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Loading 13F bulk holdings from equities/positioning/13f/bulk/2024Q3/institutional_holdings.parquet...\n",
|
||
"Loaded: 2,863,210 holdings across 7,355 institutions\n",
|
||
"Selected top-500 institutions: 1,806,379 holdings, 29,746 unique stocks\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Stocks with name metadata: 31,603\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"bulk_path = (\n",
|
||
" ML4T_DATA_PATH\n",
|
||
" / \"equities\"\n",
|
||
" / \"positioning\"\n",
|
||
" / \"13f\"\n",
|
||
" / \"bulk\"\n",
|
||
" / QUARTER\n",
|
||
" / \"institutional_holdings.parquet\"\n",
|
||
")\n",
|
||
"print(f\"Loading 13F bulk holdings from {bulk_path.relative_to(ML4T_DATA_PATH)}...\")\n",
|
||
"holdings_full = pl.read_parquet(bulk_path)\n",
|
||
"print(\n",
|
||
" f\"Loaded: {holdings_full.height:,} holdings across {holdings_full['cik'].n_unique():,} institutions\"\n",
|
||
")\n",
|
||
"\n",
|
||
"# Pick the top-K institutions by holdings count — this favours diversified funds\n",
|
||
"# whose portfolios provide the richest co-occurrence signal.\n",
|
||
"institution_sizes = holdings_full.group_by(\"cik\").len().sort(\"len\", descending=True)\n",
|
||
"selected_ciks = institution_sizes.head(MAX_INSTITUTIONS)[\"cik\"].to_list()\n",
|
||
"holdings = holdings_full.filter(pl.col(\"cik\").is_in(selected_ciks))\n",
|
||
"\n",
|
||
"print(\n",
|
||
" f\"Selected top-{MAX_INSTITUTIONS:,} institutions: {holdings.height:,} holdings, \"\n",
|
||
" f\"{holdings['cusip'].n_unique():,} unique stocks\"\n",
|
||
")\n",
|
||
"\n",
|
||
"stock_features = load_13f_stock_features()\n",
|
||
"cusip_to_name = dict(zip(stock_features[\"cusip\"], stock_features[\"issuer_name\"], strict=False))\n",
|
||
"# Augment from bulk holdings issuer column for stocks not in the curated stock_features file\n",
|
||
"for cusip, name in zip(holdings[\"cusip\"].to_list(), holdings[\"issuer\"].to_list(), strict=False):\n",
|
||
" if cusip and cusip not in cusip_to_name and name:\n",
|
||
" cusip_to_name[cusip] = name\n",
|
||
"print(f\"Stocks with name metadata: {len(cusip_to_name):,}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 5,
|
||
"id": "cda7f708",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:49.101355Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:49.101219Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:49.143132Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:49.142716Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.045796,
|
||
"end_time": "2026-06-14T17:01:49.143517+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.097721+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div><style>\n",
|
||
".dataframe > thead > tr,\n",
|
||
".dataframe > tbody > tr {\n",
|
||
" text-align: right;\n",
|
||
" white-space: pre-wrap;\n",
|
||
"}\n",
|
||
"</style>\n",
|
||
"<small>shape: (10, 3)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>company_name</th><th>total_value_kusd</th><th>n_positions</th></tr><tr><td>str</td><td>i64</td><td>u32</td></tr></thead><tbody><tr><td>"VANGUARD GROUP INC"</td><td>5584478889705</td><td>4351</td></tr><tr><td>"BlackRock, Inc."</td><td>4763739178160</td><td>5176</td></tr><tr><td>"STATE STREET CORP"</td><td>2457609922723</td><td>4296</td></tr><tr><td>"FMR LLC"</td><td>1643409181326</td><td>5481</td></tr><tr><td>"MORGAN STANLEY"</td><td>1379356122725</td><td>7927</td></tr><tr><td>"JPMORGAN CHASE & CO"</td><td>1311920220697</td><td>7424</td></tr><tr><td>"GEODE CAPITAL MANAGEMENT, LLC"</td><td>1234954211679</td><td>4534</td></tr><tr><td>"BANK OF AMERICA CORP /DE/"</td><td>1204606558843</td><td>7218</td></tr><tr><td>"GOLDMAN SACHS GROUP INC"</td><td>621073615672</td><td>4822</td></tr><tr><td>"NORTHERN TRUST CORP"</td><td>610871342670</td><td>4411</td></tr></tbody></table></div>"
|
||
],
|
||
"text/plain": [
|
||
"shape: (10, 3)\n",
|
||
"┌───────────────────────────────┬──────────────────┬─────────────┐\n",
|
||
"│ company_name ┆ total_value_kusd ┆ n_positions │\n",
|
||
"│ --- ┆ --- ┆ --- │\n",
|
||
"│ str ┆ i64 ┆ u32 │\n",
|
||
"╞═══════════════════════════════╪══════════════════╪═════════════╡\n",
|
||
"│ VANGUARD GROUP INC ┆ 5584478889705 ┆ 4351 │\n",
|
||
"│ BlackRock, Inc. ┆ 4763739178160 ┆ 5176 │\n",
|
||
"│ STATE STREET CORP ┆ 2457609922723 ┆ 4296 │\n",
|
||
"│ FMR LLC ┆ 1643409181326 ┆ 5481 │\n",
|
||
"│ MORGAN STANLEY ┆ 1379356122725 ┆ 7927 │\n",
|
||
"│ JPMORGAN CHASE & CO ┆ 1311920220697 ┆ 7424 │\n",
|
||
"│ GEODE CAPITAL MANAGEMENT, LLC ┆ 1234954211679 ┆ 4534 │\n",
|
||
"│ BANK OF AMERICA CORP /DE/ ┆ 1204606558843 ┆ 7218 │\n",
|
||
"│ GOLDMAN SACHS GROUP INC ┆ 621073615672 ┆ 4822 │\n",
|
||
"│ NORTHERN TRUST CORP ┆ 610871342670 ┆ 4411 │\n",
|
||
"└───────────────────────────────┴──────────────────┴─────────────┘"
|
||
]
|
||
},
|
||
"execution_count": 5,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Top institutions by total reported holding value.\n",
|
||
"holdings.group_by(\"company_name\").agg(\n",
|
||
" pl.col(\"value_thousands\").sum().alias(\"total_value_kusd\"),\n",
|
||
" pl.col(\"cusip\").n_unique().alias(\"n_positions\"),\n",
|
||
").sort(\"total_value_kusd\", descending=True).head(10)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "37fad1f7",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.002883,
|
||
"end_time": "2026-06-14T17:01:49.149420+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.146537+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Create Portfolio Sentences\n",
|
||
"\n",
|
||
"Following Gabaix et al. (2025), we convert each portfolio into a \"sentence\":\n",
|
||
"1. Group holdings by institution (CIK)\n",
|
||
"2. For each institution, order stocks by holding value (descending)\n",
|
||
"3. The ordered list of stock IDs becomes a \"sentence\"\n",
|
||
"\n",
|
||
"This preserves the key insight: stocks with similar portfolio weights\n",
|
||
"(similar \"positions\" in the sentence) should have similar embeddings."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 6,
|
||
"id": "bbef6d86",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:49.155737Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:49.155617Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:49.388406Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:49.387810Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.236557,
|
||
"end_time": "2026-06-14T17:01:49.388777+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.152220+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Number of portfolios (institutions): 500\n",
|
||
"Total stock-position pairs: 965,271\n",
|
||
"Portfolio size — min / median / max: 82 / 1447 / 22037\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Build one portfolio sentence per institution.\n",
|
||
"# A single cik can submit multiple 13F-HR filings within a quarter (amendments,\n",
|
||
"# multiple subsidiaries); collapse to one position per (cik, cusip) by keeping\n",
|
||
"# the largest reported holding value, then sort positions descending by value.\n",
|
||
"portfolio_positions = (\n",
|
||
" holdings.group_by([\"cik\", \"cusip\"])\n",
|
||
" .agg(pl.col(\"value_thousands\").max())\n",
|
||
" .sort([\"cik\", \"value_thousands\"], descending=[False, True])\n",
|
||
")\n",
|
||
"\n",
|
||
"portfolio_sentences = portfolio_positions.group_by(\"cik\", maintain_order=True).agg(\n",
|
||
" pl.col(\"cusip\").alias(\"stocks\")\n",
|
||
")\n",
|
||
"\n",
|
||
"sentences = portfolio_sentences[\"stocks\"].to_list()\n",
|
||
"sentence_lengths = [len(s) for s in sentences]\n",
|
||
"\n",
|
||
"print(f\"Number of portfolios (institutions): {len(sentences):,}\")\n",
|
||
"print(f\"Total stock-position pairs: {sum(sentence_lengths):,}\")\n",
|
||
"print(\n",
|
||
" f\"Portfolio size — min / median / max: {min(sentence_lengths)} / \"\n",
|
||
" f\"{int(np.median(sentence_lengths))} / {max(sentence_lengths)}\"\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 7,
|
||
"id": "82eb6c7c",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:49.440260Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:49.440113Z",
|
||
"iopub.status.idle": "2026-06-14T17:01:49.446535Z",
|
||
"shell.execute_reply": "2026-06-14T17:01:49.445981Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.055204,
|
||
"end_time": "2026-06-14T17:01:49.447048+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.391844+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Preview portfolio: BANK OF NOVA SCOTIA (CIK 0000009631) — top-10 positions\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div><style>\n",
|
||
".dataframe > thead > tr,\n",
|
||
".dataframe > tbody > tr {\n",
|
||
" text-align: right;\n",
|
||
" white-space: pre-wrap;\n",
|
||
"}\n",
|
||
"</style>\n",
|
||
"<small>shape: (10, 3)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>position</th><th>cusip</th><th>issuer</th></tr><tr><td>i64</td><td>str</td><td>str</td></tr></thead><tbody><tr><td>1</td><td>"67066G104"</td><td>"NVIDIA CORPORATION"</td></tr><tr><td>2</td><td>"594918104"</td><td>"MICROSOFT CORP"</td></tr><tr><td>3</td><td>"891160509"</td><td>"TORONTO DOMINION BK ONT"</td></tr><tr><td>4</td><td>"780087102"</td><td>"ROYAL BK CDA"</td></tr><tr><td>5</td><td>"037833100"</td><td>"APPLE INC"</td></tr><tr><td>6</td><td>"136069101"</td><td>"CANADIAN IMPERIAL BANK OF CO"</td></tr><tr><td>7</td><td>"78462F103"</td><td>"SPDR S&P 500 ETF TR"</td></tr><tr><td>8</td><td>"063671101"</td><td>"BANK MONTREAL QUE"</td></tr><tr><td>9</td><td>"29250N105"</td><td>"ENBRIDGE INC"</td></tr><tr><td>10</td><td>"87807B107"</td><td>"TC ENERGY CORP"</td></tr></tbody></table></div>"
|
||
],
|
||
"text/plain": [
|
||
"shape: (10, 3)\n",
|
||
"┌──────────┬───────────┬──────────────────────────────┐\n",
|
||
"│ position ┆ cusip ┆ issuer │\n",
|
||
"│ --- ┆ --- ┆ --- │\n",
|
||
"│ i64 ┆ str ┆ str │\n",
|
||
"╞══════════╪═══════════╪══════════════════════════════╡\n",
|
||
"│ 1 ┆ 67066G104 ┆ NVIDIA CORPORATION │\n",
|
||
"│ 2 ┆ 594918104 ┆ MICROSOFT CORP │\n",
|
||
"│ 3 ┆ 891160509 ┆ TORONTO DOMINION BK ONT │\n",
|
||
"│ 4 ┆ 780087102 ┆ ROYAL BK CDA │\n",
|
||
"│ 5 ┆ 037833100 ┆ APPLE INC │\n",
|
||
"│ 6 ┆ 136069101 ┆ CANADIAN IMPERIAL BANK OF CO │\n",
|
||
"│ 7 ┆ 78462F103 ┆ SPDR S&P 500 ETF TR │\n",
|
||
"│ 8 ┆ 063671101 ┆ BANK MONTREAL QUE │\n",
|
||
"│ 9 ┆ 29250N105 ┆ ENBRIDGE INC │\n",
|
||
"│ 10 ┆ 87807B107 ┆ TC ENERGY CORP │\n",
|
||
"└──────────┴───────────┴──────────────────────────────┘"
|
||
]
|
||
},
|
||
"execution_count": 7,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Show the first portfolio's top-10 positions as a readable preview.\n",
|
||
"preview_cik = portfolio_sentences[\"cik\"][0]\n",
|
||
"preview_name = holdings.filter(pl.col(\"cik\") == preview_cik)[\"company_name\"].first()\n",
|
||
"preview_rows = [\n",
|
||
" {\"position\": i + 1, \"cusip\": cusip, \"issuer\": cusip_to_name.get(cusip, \"Unknown\")[:40]}\n",
|
||
" for i, cusip in enumerate(sentences[0][:10])\n",
|
||
"]\n",
|
||
"print(f\"\\nPreview portfolio: {preview_name} (CIK {preview_cik}) — top-10 positions\")\n",
|
||
"pl.DataFrame(preview_rows)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "9add62c4",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.005393,
|
||
"end_time": "2026-06-14T17:01:49.458290+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.452897+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Train Word2Vec on Portfolios\n",
|
||
"\n",
|
||
"We use gensim's Word2Vec with the **skip-gram** architecture (sg=1),\n",
|
||
"following the paper's methodology.\n",
|
||
"\n",
|
||
"Key parameters:\n",
|
||
"- `vector_size=100`: Embedding dimension\n",
|
||
"- `window=5`: Context window (positions within 5 of target)\n",
|
||
"- `sg=1`: Skip-gram (predict context from target word)\n",
|
||
"- `min_count=5`: Only stocks appearing in 5+ portfolios"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 8,
|
||
"id": "d0c356f7",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:01:49.465305Z",
|
||
"iopub.status.busy": "2026-06-14T17:01:49.465095Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:17.145847Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:17.145365Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 27.68518,
|
||
"end_time": "2026-06-14T17:02:17.146471+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:01:49.461291+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Training Word2Vec on portfolio sentences...\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Vocabulary size (stocks): 10,887\n",
|
||
"Embedding dimension: 100\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Train Word2Vec\n",
|
||
"print(\"Training Word2Vec on portfolio sentences...\")\n",
|
||
"\n",
|
||
"EMBEDDING_DIM = CONFIG[\"embedding_dim\"]\n",
|
||
"WINDOW_SIZE = CONFIG[\"window_size\"]\n",
|
||
"MIN_COUNT = CONFIG[\"min_count\"]\n",
|
||
"\n",
|
||
"model = Word2Vec(\n",
|
||
" sentences=sentences,\n",
|
||
" vector_size=EMBEDDING_DIM,\n",
|
||
" window=WINDOW_SIZE,\n",
|
||
" min_count=MIN_COUNT,\n",
|
||
" sg=CONFIG[\"sg\"], # Skip-gram\n",
|
||
" workers=CONFIG[\"workers\"],\n",
|
||
" epochs=CONFIG[\"epochs\"],\n",
|
||
" seed=SEED,\n",
|
||
")\n",
|
||
"\n",
|
||
"print(f\"Vocabulary size (stocks): {len(model.wv):,}\")\n",
|
||
"print(f\"Embedding dimension: {model.wv.vector_size}\")\n",
|
||
"\n",
|
||
"# How widely each in-vocab stock is held — used downstream to disambiguate\n",
|
||
"# name searches and to pick the most-held stocks for the t-SNE plot.\n",
|
||
"occurrence_counts: dict[str, int] = {c: 0 for c in model.wv.key_to_index}\n",
|
||
"for sentence in sentences:\n",
|
||
" for cusip in sentence:\n",
|
||
" if cusip in occurrence_counts:\n",
|
||
" occurrence_counts[cusip] += 1"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "a51fce79",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003134,
|
||
"end_time": "2026-06-14T17:02:17.153208+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.150074+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Why Skip-Gram Works for Portfolios\n",
|
||
"\n",
|
||
"The skip-gram objective learns embeddings by predicting context words from\n",
|
||
"a target word. For portfolios:\n",
|
||
"\n",
|
||
"**Training example**: If Berkshire holds [AAPL, AMEX, KO, BAC, OXY] in order\n",
|
||
"of position size, and we mask position 3 (KO), we predict KO from its\n",
|
||
"context (AMEX position 2, BAC position 4).\n",
|
||
"\n",
|
||
"**Result**: Stocks that appear in similar positions across many portfolios\n",
|
||
"get similar embeddings—they share investment characteristics valued by\n",
|
||
"institutional investors.\n",
|
||
"\n",
|
||
"Gabaix et al. (2025) note: \"Investors assign similar portfolio weights to\n",
|
||
"assets with similar asset embeddings, according to portfolio theory.\""
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8d6725d8",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.00304,
|
||
"end_time": "2026-06-14T17:02:17.159458+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.156418+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Finding Similar Stocks\n",
|
||
"\n",
|
||
"With embeddings learned, we can find stocks closest in embedding space.\n",
|
||
"These are stocks that institutional investors treat similarly."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 9,
|
||
"id": "0dcfad4f",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:17.166585Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:17.166444Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:17.170453Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:17.169951Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.00849,
|
||
"end_time": "2026-06-14T17:02:17.170982+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.162492+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"import re\n",
|
||
"\n",
|
||
"\n",
|
||
"def neighbours_frame(query: str, top_k: int = 10) -> pl.DataFrame:\n",
|
||
" \"\"\"Return the top-k embedding neighbours of `query` (CUSIP or whole-word name match).\"\"\"\n",
|
||
" if query in model.wv:\n",
|
||
" cusip = query\n",
|
||
" else:\n",
|
||
" # Whole-word match against issuer name to avoid PINEAPPLE matching \"APPLE\".\n",
|
||
" pattern = re.compile(rf\"\\b{re.escape(query.upper())}\\b\")\n",
|
||
" matching = [c for c, n in cusip_to_name.items() if n and pattern.search(n.upper())]\n",
|
||
" if not matching:\n",
|
||
" return pl.DataFrame(\n",
|
||
" {\n",
|
||
" \"probe\": [query],\n",
|
||
" \"rank\": [0],\n",
|
||
" \"cusip\": [None],\n",
|
||
" \"issuer\": [\"<not found>\"],\n",
|
||
" \"similarity\": [None],\n",
|
||
" }\n",
|
||
" )\n",
|
||
" # Prefer the in-vocabulary match with the largest holding presence (= most-held stock).\n",
|
||
" in_vocab = [c for c in matching if c in model.wv]\n",
|
||
" if in_vocab:\n",
|
||
" in_vocab.sort(key=lambda c: -occurrence_counts.get(c, 0))\n",
|
||
" cusip = in_vocab[0]\n",
|
||
" else:\n",
|
||
" cusip = matching[0]\n",
|
||
" if cusip not in model.wv:\n",
|
||
" return pl.DataFrame(\n",
|
||
" {\n",
|
||
" \"probe\": [query],\n",
|
||
" \"rank\": [0],\n",
|
||
" \"cusip\": [cusip],\n",
|
||
" \"issuer\": [\"<below min_count>\"],\n",
|
||
" \"similarity\": [None],\n",
|
||
" }\n",
|
||
" )\n",
|
||
" label = f\"{cusip_to_name.get(cusip, 'Unknown')} ({cusip})\"\n",
|
||
" rows = []\n",
|
||
" for rank, (sim_cusip, similarity) in enumerate(\n",
|
||
" model.wv.most_similar(cusip, topn=top_k), start=1\n",
|
||
" ):\n",
|
||
" rows.append(\n",
|
||
" {\n",
|
||
" \"probe\": label,\n",
|
||
" \"rank\": rank,\n",
|
||
" \"cusip\": sim_cusip,\n",
|
||
" \"issuer\": cusip_to_name.get(sim_cusip, \"Unknown\")[:40],\n",
|
||
" \"similarity\": float(similarity),\n",
|
||
" }\n",
|
||
" )\n",
|
||
" return pl.DataFrame(rows)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 10,
|
||
"id": "85410ce5",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:17.178604Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:17.178461Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:17.253960Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:17.253613Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.080238,
|
||
"end_time": "2026-06-14T17:02:17.254796+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.174558+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div><style>\n",
|
||
".dataframe > thead > tr,\n",
|
||
".dataframe > tbody > tr {\n",
|
||
" text-align: right;\n",
|
||
" white-space: pre-wrap;\n",
|
||
"}\n",
|
||
"</style>\n",
|
||
"<small>shape: (32, 5)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>probe</th><th>rank</th><th>cusip</th><th>issuer</th><th>similarity</th></tr><tr><td>str</td><td>i64</td><td>str</td><td>str</td><td>f64</td></tr></thead><tbody><tr><td>"APPLE INC (037833100)"</td><td>1</td><td>"594918104"</td><td>"MICROSOFT CORP"</td><td>0.942825</td></tr><tr><td>"APPLE INC (037833100)"</td><td>2</td><td>"67066G104"</td><td>"NVIDIA CORPORATION"</td><td>0.934403</td></tr><tr><td>"APPLE INC (037833100)"</td><td>3</td><td>"023135106"</td><td>"AMAZON COM INC"</td><td>0.921583</td></tr><tr><td>"APPLE INC (037833100)"</td><td>4</td><td>"78462F103"</td><td>"SPDR S&P 500 ETF TR"</td><td>0.876225</td></tr><tr><td>"APPLE INC (037833100)"</td><td>5</td><td>"922908363"</td><td>"VANGUARD INDEX FDS"</td><td>0.838898</td></tr><tr><td>"APPLE INC (037833100)"</td><td>6</td><td>"02079K305"</td><td>"ALPHABET INC"</td><td>0.838032</td></tr><tr><td>"APPLE INC (037833100)"</td><td>7</td><td>"46090E103"</td><td>"INVESCO QQQ TR"</td><td>0.837434</td></tr><tr><td>"APPLE INC (037833100)"</td><td>8</td><td>"464287200"</td><td>"ISHARES TR"</td><td>0.835377</td></tr><tr><td>"MICROSOFT CORP (594918104)"</td><td>1</td><td>"037833100"</td><td>"APPLE INC"</td><td>0.942825</td></tr><tr><td>"MICROSOFT CORP (594918104)"</td><td>2</td><td>"67066G104"</td><td>"NVIDIA CORPORATION"</td><td>0.933469</td></tr><tr><td>…</td><td>…</td><td>…</td><td>…</td><td>…</td></tr><tr><td>"COCA COLA CONS INC (191098102)"</td><td>7</td><td>"87724P106"</td><td>"TAYLOR MORRISON HOME CORP"</td><td>0.702547</td></tr><tr><td>"COCA COLA CONS INC (191098102)"</td><td>8</td><td>"840441109"</td><td>"SOUTHSTATE CORPORATION"</td><td>0.695017</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>1</td><td>"30231G102"</td><td>"EXXON MOBIL CORP"</td><td>0.871174</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>2</td><td>"02079K305"</td><td>"ALPHABET INC"</td><td>0.870962</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>3</td><td>"02079K107"</td><td>"ALPHABET INC"</td><td>0.865719</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>4</td><td>"532457108"</td><td>"ELI LILLY & CO"</td><td>0.863814</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>5</td><td>"084670702"</td><td>"BERKSHIRE HATHAWAY INC DEL"</td><td>0.861917</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>6</td><td>"22160K105"</td><td>"COSTCO WHSL CORP NEW"</td><td>0.851516</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>7</td><td>"92826C839"</td><td>"VISA INC"</td><td>0.85046</td></tr><tr><td>"JPMORGAN CHASE & CO. (46625H100)"</td><td>8</td><td>"91324P102"</td><td>"UNITEDHEALTH GROUP INC"</td><td>0.850435</td></tr></tbody></table></div>"
|
||
],
|
||
"text/plain": [
|
||
"shape: (32, 5)\n",
|
||
"┌──────────────────────────────────┬──────┬───────────┬──────────────────────────────┬────────────┐\n",
|
||
"│ probe ┆ rank ┆ cusip ┆ issuer ┆ similarity │\n",
|
||
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
|
||
"│ str ┆ i64 ┆ str ┆ str ┆ f64 │\n",
|
||
"╞══════════════════════════════════╪══════╪═══════════╪══════════════════════════════╪════════════╡\n",
|
||
"│ APPLE INC (037833100) ┆ 1 ┆ 594918104 ┆ MICROSOFT CORP ┆ 0.942825 │\n",
|
||
"│ APPLE INC (037833100) ┆ 2 ┆ 67066G104 ┆ NVIDIA CORPORATION ┆ 0.934403 │\n",
|
||
"│ APPLE INC (037833100) ┆ 3 ┆ 023135106 ┆ AMAZON COM INC ┆ 0.921583 │\n",
|
||
"│ APPLE INC (037833100) ┆ 4 ┆ 78462F103 ┆ SPDR S&P 500 ETF TR ┆ 0.876225 │\n",
|
||
"│ APPLE INC (037833100) ┆ 5 ┆ 922908363 ┆ VANGUARD INDEX FDS ┆ 0.838898 │\n",
|
||
"│ APPLE INC (037833100) ┆ 6 ┆ 02079K305 ┆ ALPHABET INC ┆ 0.838032 │\n",
|
||
"│ APPLE INC (037833100) ┆ 7 ┆ 46090E103 ┆ INVESCO QQQ TR ┆ 0.837434 │\n",
|
||
"│ APPLE INC (037833100) ┆ 8 ┆ 464287200 ┆ ISHARES TR ┆ 0.835377 │\n",
|
||
"│ MICROSOFT CORP (594918104) ┆ 1 ┆ 037833100 ┆ APPLE INC ┆ 0.942825 │\n",
|
||
"│ MICROSOFT CORP (594918104) ┆ 2 ┆ 67066G104 ┆ NVIDIA CORPORATION ┆ 0.933469 │\n",
|
||
"│ … ┆ … ┆ … ┆ … ┆ … │\n",
|
||
"│ COCA COLA CONS INC (191098102) ┆ 7 ┆ 87724P106 ┆ TAYLOR MORRISON HOME CORP ┆ 0.702547 │\n",
|
||
"│ COCA COLA CONS INC (191098102) ┆ 8 ┆ 840441109 ┆ SOUTHSTATE CORPORATION ┆ 0.695017 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 1 ┆ 30231G102 ┆ EXXON MOBIL CORP ┆ 0.871174 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 2 ┆ 02079K305 ┆ ALPHABET INC ┆ 0.870962 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 3 ┆ 02079K107 ┆ ALPHABET INC ┆ 0.865719 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 4 ┆ 532457108 ┆ ELI LILLY & CO ┆ 0.863814 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 5 ┆ 084670702 ┆ BERKSHIRE HATHAWAY INC DEL ┆ 0.861917 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 6 ┆ 22160K105 ┆ COSTCO WHSL CORP NEW ┆ 0.851516 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 7 ┆ 92826C839 ┆ VISA INC ┆ 0.85046 │\n",
|
||
"│ JPMORGAN CHASE & CO. (46625H100) ┆ 8 ┆ 91324P102 ┆ UNITEDHEALTH GROUP INC ┆ 0.850435 │\n",
|
||
"└──────────────────────────────────┴──────┴───────────┴──────────────────────────────┴────────────┘"
|
||
]
|
||
},
|
||
"execution_count": 10,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"neighbour_tables = {\n",
|
||
" query: neighbours_frame(query, top_k=8)\n",
|
||
" for query in [\"APPLE\", \"MICROSOFT\", \"COCA COLA\", \"JPMORGAN\"]\n",
|
||
"}\n",
|
||
"\n",
|
||
"# Concatenate into one display table.\n",
|
||
"pl.concat(neighbour_tables.values())"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "416375a8",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.012052,
|
||
"end_time": "2026-06-14T17:02:17.283124+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.271072+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Visualizing Asset Embeddings\n",
|
||
"\n",
|
||
"We use t-SNE to project the 100-dimensional embeddings to 2D.\n",
|
||
"Stocks that cluster together share similar institutional ownership patterns."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 11,
|
||
"id": "e1853e72",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:17.314564Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:17.314325Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:17.331470Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:17.330603Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.036749,
|
||
"end_time": "2026-06-14T17:02:17.332033+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.295284+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Visualizing 10,887 stock embeddings...\n",
|
||
"Selected 500 most widely-held stocks for visualization\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Get all embeddings\n",
|
||
"all_cusips = list(model.wv.key_to_index.keys())\n",
|
||
"all_embeddings = np.array([model.wv[c] for c in all_cusips])\n",
|
||
"print(f\"Visualizing {len(all_cusips):,} stock embeddings...\")\n",
|
||
"\n",
|
||
"# Take top 500 stocks by occurrence count (computed earlier).\n",
|
||
"top_cusips = sorted(occurrence_counts.keys(), key=lambda c: occurrence_counts[c], reverse=True)[\n",
|
||
" :500\n",
|
||
"]\n",
|
||
"# Use dict lookup (O(1)) instead of list.index() (O(n)) for efficiency\n",
|
||
"cusip_to_idx = {c: i for i, c in enumerate(all_cusips)}\n",
|
||
"top_indices = [cusip_to_idx[c] for c in top_cusips]\n",
|
||
"subset_embeddings = all_embeddings[top_indices]\n",
|
||
"subset_cusips = [all_cusips[i] for i in top_indices]\n",
|
||
"\n",
|
||
"print(f\"Selected {len(subset_cusips)} most widely-held stocks for visualization\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 12,
|
||
"id": "beefaab3",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:17.345449Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:17.345232Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.120665Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.120175Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.782921,
|
||
"end_time": "2026-06-14T17:02:18.121181+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:17.338260+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Running t-SNE dimensionality reduction...\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# t-SNE projection\n",
|
||
"print(\"Running t-SNE dimensionality reduction...\")\n",
|
||
"tsne = TSNE(n_components=2, perplexity=30, random_state=SEED, max_iter=1000)\n",
|
||
"embeddings_2d = tsne.fit_transform(subset_embeddings)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 13,
|
||
"id": "6fdc81ff",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.130117Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.129803Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.347133Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.346643Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.221949,
|
||
"end_time": "2026-06-14T17:02:18.347436+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.125487+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 1200x1000 with 1 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Visualize\n",
|
||
"fig, ax = plt.subplots(figsize=(12, 10))\n",
|
||
"\n",
|
||
"# Plot all points\n",
|
||
"ax.scatter(embeddings_2d[:, 0], embeddings_2d[:, 1], alpha=0.5, s=20, c=\"#64748b\")\n",
|
||
"\n",
|
||
"# Highlight recognizable stocks\n",
|
||
"highlight_keywords = [\n",
|
||
" \"APPLE\",\n",
|
||
" \"MICROSOFT\",\n",
|
||
" \"NVIDIA\",\n",
|
||
" \"AMAZON\",\n",
|
||
" \"GOOGLE\",\n",
|
||
" \"META\",\n",
|
||
" \"TESLA\",\n",
|
||
" \"BERKSHIRE\",\n",
|
||
" \"JPMORGAN\",\n",
|
||
" \"EXXON\",\n",
|
||
"]\n",
|
||
"highlighted = [\n",
|
||
" (i, cusip_to_name.get(c, \"\"))\n",
|
||
" for i, c in enumerate(subset_cusips)\n",
|
||
" if cusip_to_name.get(c, \"\")\n",
|
||
" and any(kw in cusip_to_name.get(c, \"\").upper() for kw in highlight_keywords)\n",
|
||
"]\n",
|
||
"# Order labels top-to-bottom by 2D y-coordinate, then fan them out to the right\n",
|
||
"# with leader lines so they no longer stack at the highlight cluster.\n",
|
||
"highlighted.sort(key=lambda t: -embeddings_2d[t[0], 1])\n",
|
||
"x_max = embeddings_2d[:, 0].max()\n",
|
||
"y_min, y_max = embeddings_2d[:, 1].min(), embeddings_2d[:, 1].max()\n",
|
||
"n_h = max(len(highlighted), 1)\n",
|
||
"for slot, (i, name) in enumerate(highlighted):\n",
|
||
" x_pt, y_pt = embeddings_2d[i, 0], embeddings_2d[i, 1]\n",
|
||
" ax.scatter(x_pt, y_pt, s=100, c=\"#ef4444\", zorder=5)\n",
|
||
" short_name = name[:20] + \"...\" if len(name) > 20 else name\n",
|
||
" label_x = x_max + 0.10 * (x_max - embeddings_2d[:, 0].min())\n",
|
||
" label_y = y_max - slot * (y_max - y_min) / max(n_h - 1, 1)\n",
|
||
" ax.annotate(\n",
|
||
" short_name,\n",
|
||
" xy=(x_pt, y_pt),\n",
|
||
" xytext=(label_x, label_y),\n",
|
||
" fontsize=9,\n",
|
||
" alpha=0.9,\n",
|
||
" ha=\"left\",\n",
|
||
" va=\"center\",\n",
|
||
" arrowprops=dict(arrowstyle=\"-\", color=\"#ef4444\", lw=0.6, alpha=0.6),\n",
|
||
" )\n",
|
||
"\n",
|
||
"ax.set_xlabel(\"t-SNE Dimension 1\")\n",
|
||
"ax.set_ylabel(\"t-SNE Dimension 2\")\n",
|
||
"ax.set_title(\n",
|
||
" \"Asset Embeddings from Word2Vec on Portfolios\\n\"\n",
|
||
" \"(Stocks with similar institutional ownership cluster together)\"\n",
|
||
")\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7e28bbcf",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003669,
|
||
"end_time": "2026-06-14T17:02:18.355020+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.351351+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Managed Portfolio Benchmark: Masked Asset Prediction\n",
|
||
"\n",
|
||
"This is the key empirical test from Gabaix et al. (2025). The benchmark asks:\n",
|
||
"**Can embeddings predict which stock belongs in a portfolio?**\n",
|
||
"\n",
|
||
"Methodology:\n",
|
||
"1. For each test portfolio, mask one position (e.g., the 5th largest holding)\n",
|
||
"2. Use the surrounding context to predict which stock was masked\n",
|
||
"3. Report accuracy@k: Is the true stock in the top k predictions?\n",
|
||
"\n",
|
||
"This directly tests the Word2Vec hypothesis: stocks appearing in similar\n",
|
||
"portfolio positions should have similar embeddings."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 14,
|
||
"id": "e0647949",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.363237Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.363088Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.365162Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.364841Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.006741,
|
||
"end_time": "2026-06-14T17:02:18.365487+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.358746+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"======================================================================\n",
|
||
"MANAGED PORTFOLIO BENCHMARK: Masked Asset Prediction\n",
|
||
"======================================================================\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Managed Portfolio Benchmark Introduction\n",
|
||
"print(\"=\" * 70)\n",
|
||
"print(\"MANAGED PORTFOLIO BENCHMARK: Masked Asset Prediction\")\n",
|
||
"print(\"=\" * 70)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8f4fb052",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.003528,
|
||
"end_time": "2026-06-14T17:02:18.372653+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.369125+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Predict Masked Asset\n",
|
||
"Given a portfolio with one position masked, use surrounding context to predict the hidden stock."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 15,
|
||
"id": "13c94d59",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.380727Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.380587Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.383313Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.382926Z"
|
||
},
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.007353,
|
||
"end_time": "2026-06-14T17:02:18.383562+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.376209+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def predict_masked_asset(portfolio: list, mask_position: int, model, window: int = 5) -> list:\n",
|
||
" \"\"\"\n",
|
||
" Predict the masked asset using context from surrounding positions.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" portfolio: List of CUSIPs ordered by holding value\n",
|
||
" mask_position: Index of position to mask (0-indexed)\n",
|
||
" model: Trained Word2Vec model\n",
|
||
" window: Context window size\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" List of (cusip, score) tuples for top predictions\n",
|
||
" \"\"\"\n",
|
||
" if mask_position >= len(portfolio):\n",
|
||
" return []\n",
|
||
"\n",
|
||
" # Get context window (positions around the masked one)\n",
|
||
" start = max(0, mask_position - window)\n",
|
||
" end = min(len(portfolio), mask_position + window + 1)\n",
|
||
"\n",
|
||
" context = []\n",
|
||
" for i in range(start, end):\n",
|
||
" if i != mask_position and portfolio[i] in model.wv:\n",
|
||
" context.append(portfolio[i])\n",
|
||
"\n",
|
||
" if not context:\n",
|
||
" return []\n",
|
||
"\n",
|
||
" # Predict using context - average context embeddings and find similar\n",
|
||
" try:\n",
|
||
" predictions = model.wv.most_similar(positive=context, topn=100)\n",
|
||
" return predictions\n",
|
||
" except KeyError:\n",
|
||
" return []"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "7f41bf59",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.003552,
|
||
"end_time": "2026-06-14T17:02:18.390693+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.387141+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"### HitRecord and Benchmark Evaluation\n",
|
||
"Track per-sample prediction outcomes and aggregate benchmark metrics."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 16,
|
||
"id": "b2600394",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.398648Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.398523Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.400828Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.400498Z"
|
||
},
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.006827,
|
||
"end_time": "2026-06-14T17:02:18.401111+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.394284+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"@dataclass\n",
|
||
"class HitRecord:\n",
|
||
" \"\"\"Record of a single masked asset prediction outcome.\"\"\"\n",
|
||
"\n",
|
||
" bucket: str # Position range label\n",
|
||
" hit1: int # 1 if rank <= 1, else 0\n",
|
||
" hit5: int # 1 if rank <= 5, else 0\n",
|
||
" hit10: int # 1 if rank <= 10, else 0\n",
|
||
" rr: float # Reciprocal rank (1/rank if found, 0 otherwise)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "8938b48b",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.003573,
|
||
"end_time": "2026-06-14T17:02:18.408379+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.404806+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Run Benchmark Evaluation\n",
|
||
"Sample masked positions across portfolios and compute accuracy metrics."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 17,
|
||
"id": "6d2d4e29",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.416196Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.416077Z",
|
||
"iopub.status.idle": "2026-06-14T17:02:18.420773Z",
|
||
"shell.execute_reply": "2026-06-14T17:02:18.420402Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.009094,
|
||
"end_time": "2026-06-14T17:02:18.421055+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.411961+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"def evaluate_benchmark(\n",
|
||
" portfolios: list,\n",
|
||
" model,\n",
|
||
" position_ranges: list = [(2, 10), (10, 50), (50, 200)],\n",
|
||
" samples_per_range: int = 100,\n",
|
||
") -> tuple[dict, list[HitRecord]]:\n",
|
||
" \"\"\"\n",
|
||
" Run the masked asset prediction benchmark with robust sampling.\n",
|
||
"\n",
|
||
" Since we have few portfolios but many stocks per portfolio, we sample\n",
|
||
" multiple masked positions from each portfolio for statistical power.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" portfolios: List of portfolio sentences\n",
|
||
" model: Trained Word2Vec model\n",
|
||
" position_ranges: List of (start, end) tuples defining position ranges to test\n",
|
||
" samples_per_range: Number of masked positions to sample per range\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" Tuple of (aggregate_metrics_dict, list_of_hit_records)\n",
|
||
" - aggregate_metrics: Dictionary with accuracy metrics by position range\n",
|
||
" - hit_records: Per-sample outcomes for correct bootstrap CI computation\n",
|
||
" \"\"\"\n",
|
||
" # Collect per-sample hit records for proper bootstrap\n",
|
||
" hit_records: list[HitRecord] = []\n",
|
||
"\n",
|
||
" np.random.seed(SEED)\n",
|
||
"\n",
|
||
" for portfolio in portfolios:\n",
|
||
" for start, end in position_ranges:\n",
|
||
" label = f\"pos_{start + 1}-{end}\"\n",
|
||
"\n",
|
||
" # Get valid positions in this range\n",
|
||
" valid_positions = [\n",
|
||
" i for i in range(start, min(end, len(portfolio))) if portfolio[i] in model.wv\n",
|
||
" ]\n",
|
||
"\n",
|
||
" if not valid_positions:\n",
|
||
" continue\n",
|
||
"\n",
|
||
" # Sample positions to test\n",
|
||
" n_samples = min(samples_per_range, len(valid_positions))\n",
|
||
" test_positions = np.random.choice(valid_positions, n_samples, replace=False)\n",
|
||
"\n",
|
||
" for mask_pos in test_positions:\n",
|
||
" true_asset = portfolio[mask_pos]\n",
|
||
"\n",
|
||
" predictions = predict_masked_asset(portfolio, mask_pos, model)\n",
|
||
" if not predictions:\n",
|
||
" continue\n",
|
||
"\n",
|
||
" # Find rank of true asset\n",
|
||
" pred_cusips = [p[0] for p in predictions]\n",
|
||
" if true_asset in pred_cusips:\n",
|
||
" rank = pred_cusips.index(true_asset) + 1\n",
|
||
" hit_records.append(\n",
|
||
" HitRecord(\n",
|
||
" bucket=label,\n",
|
||
" hit1=int(rank <= 1),\n",
|
||
" hit5=int(rank <= 5),\n",
|
||
" hit10=int(rank <= 10),\n",
|
||
" rr=1.0 / rank,\n",
|
||
" )\n",
|
||
" )\n",
|
||
" else:\n",
|
||
" hit_records.append(HitRecord(bucket=label, hit1=0, hit5=0, hit10=0, rr=0.0))\n",
|
||
"\n",
|
||
" # Aggregate metrics from raw records\n",
|
||
" results = {}\n",
|
||
" for start, end in position_ranges:\n",
|
||
" label = f\"pos_{start + 1}-{end}\"\n",
|
||
" bucket_records = [r for r in hit_records if r.bucket == label]\n",
|
||
" n = len(bucket_records)\n",
|
||
" if n > 0:\n",
|
||
" results[label] = {\n",
|
||
" \"hits@1\": sum(r.hit1 for r in bucket_records) / n,\n",
|
||
" \"hits@5\": sum(r.hit5 for r in bucket_records) / n,\n",
|
||
" \"hits@10\": sum(r.hit10 for r in bucket_records) / n,\n",
|
||
" \"mrr\": sum(r.rr for r in bucket_records) / n,\n",
|
||
" \"total\": n,\n",
|
||
" }\n",
|
||
" else:\n",
|
||
" results[label] = {\"hits@1\": 0, \"hits@5\": 0, \"hits@10\": 0, \"mrr\": 0, \"total\": 0}\n",
|
||
"\n",
|
||
" return results, hit_records"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 18,
|
||
"id": "2c44628a",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:02:18.428817Z",
|
||
"iopub.status.busy": "2026-06-14T17:02:18.428693Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.127303Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.126732Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 62.716893,
|
||
"end_time": "2026-06-14T17:03:21.141585+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:02:18.424692+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Running masked asset prediction benchmark...\n",
|
||
"Testing position ranges [(2, 10), (10, 50), (50, 200)]\n",
|
||
"Sampling 25 positions per range from each portfolio.\n",
|
||
"\n"
|
||
]
|
||
},
|
||
{
|
||
"data": {
|
||
"text/html": [
|
||
"<div><style>\n",
|
||
".dataframe > thead > tr,\n",
|
||
".dataframe > tbody > tr {\n",
|
||
" text-align: right;\n",
|
||
" white-space: pre-wrap;\n",
|
||
"}\n",
|
||
"</style>\n",
|
||
"<small>shape: (3, 6)</small><table border=\"1\" class=\"dataframe\"><thead><tr><th>position_range</th><th>hits_at_1</th><th>hits_at_5</th><th>hits_at_10</th><th>mrr</th><th>n</th></tr><tr><td>str</td><td>f64</td><td>f64</td><td>f64</td><td>f64</td><td>i64</td></tr></thead><tbody><tr><td>"pos_3-10"</td><td>0.195411</td><td>0.346193</td><td>0.432173</td><td>0.271056</td><td>3966</td></tr><tr><td>"pos_11-50"</td><td>0.014337</td><td>0.06656</td><td>0.120465</td><td>0.04963</td><td>12485</td></tr><tr><td>"pos_51-200"</td><td>0.00048</td><td>0.00512</td><td>0.01632</td><td>0.008578</td><td>12500</td></tr></tbody></table></div>"
|
||
],
|
||
"text/plain": [
|
||
"shape: (3, 6)\n",
|
||
"┌────────────────┬───────────┬───────────┬────────────┬──────────┬───────┐\n",
|
||
"│ position_range ┆ hits_at_1 ┆ hits_at_5 ┆ hits_at_10 ┆ mrr ┆ n │\n",
|
||
"│ --- ┆ --- ┆ --- ┆ --- ┆ --- ┆ --- │\n",
|
||
"│ str ┆ f64 ┆ f64 ┆ f64 ┆ f64 ┆ i64 │\n",
|
||
"╞════════════════╪═══════════╪═══════════╪════════════╪══════════╪═══════╡\n",
|
||
"│ pos_3-10 ┆ 0.195411 ┆ 0.346193 ┆ 0.432173 ┆ 0.271056 ┆ 3966 │\n",
|
||
"│ pos_11-50 ┆ 0.014337 ┆ 0.06656 ┆ 0.120465 ┆ 0.04963 ┆ 12485 │\n",
|
||
"│ pos_51-200 ┆ 0.00048 ┆ 0.00512 ┆ 0.01632 ┆ 0.008578 ┆ 12500 │\n",
|
||
"└────────────────┴───────────┴───────────┴────────────┴──────────┴───────┘"
|
||
]
|
||
},
|
||
"execution_count": 18,
|
||
"metadata": {},
|
||
"output_type": "execute_result"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Run the benchmark\n",
|
||
"SAMPLES_PER_RANGE = CONFIG[\"benchmark\"][\"samples_per_range\"]\n",
|
||
"POSITION_RANGES = CONFIG[\"benchmark\"][\"position_ranges\"]\n",
|
||
"print(\"\\nRunning masked asset prediction benchmark...\")\n",
|
||
"print(f\"Testing position ranges {POSITION_RANGES}\")\n",
|
||
"print(f\"Sampling {SAMPLES_PER_RANGE} positions per range from each portfolio.\\n\")\n",
|
||
"\n",
|
||
"benchmark_results, hit_records = evaluate_benchmark(\n",
|
||
" sentences,\n",
|
||
" model,\n",
|
||
" position_ranges=POSITION_RANGES,\n",
|
||
" samples_per_range=SAMPLES_PER_RANGE,\n",
|
||
")\n",
|
||
"\n",
|
||
"# Display results\n",
|
||
"benchmark_table = pl.DataFrame(\n",
|
||
" [\n",
|
||
" {\n",
|
||
" \"position_range\": label,\n",
|
||
" \"hits_at_1\": metrics[\"hits@1\"],\n",
|
||
" \"hits_at_5\": metrics[\"hits@5\"],\n",
|
||
" \"hits_at_10\": metrics[\"hits@10\"],\n",
|
||
" \"mrr\": metrics[\"mrr\"],\n",
|
||
" \"n\": metrics[\"total\"],\n",
|
||
" }\n",
|
||
" for label, metrics in benchmark_results.items()\n",
|
||
" ]\n",
|
||
")\n",
|
||
"benchmark_table"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 19,
|
||
"id": "0704ceeb",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.169005Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.166908Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.176133Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.175591Z"
|
||
},
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.027902,
|
||
"end_time": "2026-06-14T17:03:21.178452+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.150550+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"======================================================================\n",
|
||
"COMPARISON TO RANDOM BASELINE (with Bootstrap CI)\n",
|
||
"======================================================================\n",
|
||
"\n",
|
||
"Vocabulary size: 10,887 stocks\n",
|
||
"\n",
|
||
"Random baseline (analytical):\n",
|
||
" Hits@1: 0.0092% (= 1/10,887)\n",
|
||
" Hits@5: 0.0459% (= 5/10,887)\n",
|
||
" Hits@10: 0.0919% (= 10/10,887)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Compare to random baseline with bootstrap confidence intervals\n",
|
||
"print(\"\\n\" + \"=\" * 70)\n",
|
||
"print(\"COMPARISON TO RANDOM BASELINE (with Bootstrap CI)\")\n",
|
||
"print(\"=\" * 70)\n",
|
||
"\n",
|
||
"vocab_size = len(model.wv)\n",
|
||
"random_hits1 = 1 / vocab_size\n",
|
||
"random_hits5 = 5 / vocab_size\n",
|
||
"random_hits10 = 10 / vocab_size\n",
|
||
"\n",
|
||
"print(f\"\\nVocabulary size: {vocab_size:,} stocks\")\n",
|
||
"print(\"\\nRandom baseline (analytical):\")\n",
|
||
"print(f\" Hits@1: {random_hits1:.4%} (= 1/{vocab_size:,})\")\n",
|
||
"print(f\" Hits@5: {random_hits5:.4%} (= 5/{vocab_size:,})\")\n",
|
||
"print(f\" Hits@10: {random_hits10:.4%} (= 10/{vocab_size:,})\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "19c920c1",
|
||
"metadata": {
|
||
"lines_to_next_cell": 2,
|
||
"papermill": {
|
||
"duration": 0.006071,
|
||
"end_time": "2026-06-14T17:03:21.195657+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.189586+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"### Bootstrap Confidence Intervals\n",
|
||
"Compute CIs for benchmark metrics using raw per-sample hit records."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 20,
|
||
"id": "2c78992e",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.205536Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.205412Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.475331Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.474723Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.275058,
|
||
"end_time": "2026-06-14T17:03:21.475873+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.200815+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Bootstrap confidence intervals (1000 iterations):\n"
|
||
]
|
||
},
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
" pos_3-10: Hits@5 = 34.6% [95% CI: 33.3% - 36.2%] (n=3966)\n",
|
||
" pos_11-50: Hits@5 = 6.7% [95% CI: 6.2% - 7.1%] (n=12485)\n",
|
||
" pos_51-200: Hits@5 = 0.5% [95% CI: 0.4% - 0.6%] (n=12500)\n",
|
||
"\n",
|
||
"SUMMARY\n",
|
||
" Word2Vec Hits@5 (avg over position buckets): 13.9%\n",
|
||
" Random baseline Hits@5: 0.0459%\n",
|
||
" Improvement over random: 303x [95% CI: 289x – 319x]\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"def bootstrap_metrics(\n",
|
||
" hit_records: list[HitRecord], n_iterations: int = 1000, confidence: float = 0.95\n",
|
||
") -> dict:\n",
|
||
" \"\"\"\n",
|
||
" Compute bootstrap confidence intervals for benchmark metrics.\n",
|
||
"\n",
|
||
" Uses raw per-sample hit records for correct uncertainty estimation,\n",
|
||
" preserving the actual sampling distribution rather than reconstructing\n",
|
||
" from aggregate rates.\n",
|
||
"\n",
|
||
" Args:\n",
|
||
" hit_records: List of HitRecord with per-sample outcomes\n",
|
||
" n_iterations: Number of bootstrap samples\n",
|
||
" confidence: Confidence level (default 95%)\n",
|
||
"\n",
|
||
" Returns:\n",
|
||
" Dictionary with mean and CI for each position bucket\n",
|
||
" \"\"\"\n",
|
||
" alpha = (1 - confidence) / 2\n",
|
||
"\n",
|
||
" # Group records by bucket\n",
|
||
" buckets = {}\n",
|
||
" for record in hit_records:\n",
|
||
" if record.bucket not in buckets:\n",
|
||
" buckets[record.bucket] = []\n",
|
||
" buckets[record.bucket].append(record)\n",
|
||
"\n",
|
||
" bootstrap_stats = {}\n",
|
||
" for label, records in buckets.items():\n",
|
||
" if not records:\n",
|
||
" continue\n",
|
||
"\n",
|
||
" # Extract raw hit5 indicators (actual per-sample outcomes)\n",
|
||
" hits5_indicators = np.array([r.hit5 for r in records])\n",
|
||
" n = len(hits5_indicators)\n",
|
||
"\n",
|
||
" # Bootstrap resampling on raw indicators\n",
|
||
" boot_means = []\n",
|
||
" for _ in range(n_iterations):\n",
|
||
" sample_idx = np.random.choice(n, size=n, replace=True)\n",
|
||
" boot_means.append(np.mean(hits5_indicators[sample_idx]))\n",
|
||
"\n",
|
||
" # Compute percentile CI\n",
|
||
" lower = np.percentile(boot_means, alpha * 100)\n",
|
||
" upper = np.percentile(boot_means, (1 - alpha) * 100)\n",
|
||
"\n",
|
||
" bootstrap_stats[label] = {\n",
|
||
" \"mean\": np.mean(hits5_indicators),\n",
|
||
" \"ci_lower\": lower,\n",
|
||
" \"ci_upper\": upper,\n",
|
||
" \"n\": n,\n",
|
||
" }\n",
|
||
"\n",
|
||
" return bootstrap_stats\n",
|
||
"\n",
|
||
"\n",
|
||
"print(\n",
|
||
" f\"\\nBootstrap confidence intervals ({CONFIG['benchmark']['bootstrap_iterations']} iterations):\"\n",
|
||
")\n",
|
||
"boot_stats = bootstrap_metrics(\n",
|
||
" hit_records, n_iterations=CONFIG[\"benchmark\"][\"bootstrap_iterations\"]\n",
|
||
")\n",
|
||
"\n",
|
||
"for label, stats in boot_stats.items():\n",
|
||
" print(\n",
|
||
" f\" {label}: Hits@5 = {stats['mean']:.1%} \"\n",
|
||
" f\"[95% CI: {stats['ci_lower']:.1%} - {stats['ci_upper']:.1%}] \"\n",
|
||
" f\"(n={stats['n']})\"\n",
|
||
" )\n",
|
||
"\n",
|
||
"# Compute improvement over random\n",
|
||
"avg_hits5 = np.mean([m[\"hits@5\"] for m in benchmark_results.values() if m[\"total\"] > 0])\n",
|
||
"improvement = avg_hits5 / random_hits5\n",
|
||
"\n",
|
||
"# CI on improvement\n",
|
||
"avg_ci_lower = np.mean([s[\"ci_lower\"] for s in boot_stats.values()])\n",
|
||
"avg_ci_upper = np.mean([s[\"ci_upper\"] for s in boot_stats.values()])\n",
|
||
"improvement_lower = avg_ci_lower / random_hits5\n",
|
||
"improvement_upper = avg_ci_upper / random_hits5\n",
|
||
"\n",
|
||
"print(\"\\nSUMMARY\")\n",
|
||
"print(f\" Word2Vec Hits@5 (avg over position buckets): {avg_hits5:.1%}\")\n",
|
||
"print(f\" Random baseline Hits@5: {random_hits5:.4%}\")\n",
|
||
"print(\n",
|
||
" f\" Improvement over random: {improvement:.0f}x [95% CI: {improvement_lower:.0f}x – {improvement_upper:.0f}x]\"\n",
|
||
")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 21,
|
||
"id": "48785878",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.485288Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.485094Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.716660Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.715960Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.23654,
|
||
"end_time": "2026-06-14T17:03:21.717071+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.480531+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"data": {
|
||
"image/png": "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",
|
||
"text/plain": [
|
||
"<Figure size 1200x500 with 2 Axes>"
|
||
]
|
||
},
|
||
"metadata": {},
|
||
"output_type": "display_data"
|
||
}
|
||
],
|
||
"source": [
|
||
"# Visualize benchmark results\n",
|
||
"fig, axes = plt.subplots(1, 2, figsize=(12, 5))\n",
|
||
"\n",
|
||
"# Left: Accuracy by position range\n",
|
||
"labels = list(benchmark_results.keys())\n",
|
||
"hits5 = [m[\"hits@5\"] for m in benchmark_results.values()]\n",
|
||
"hits10 = [m[\"hits@10\"] for m in benchmark_results.values()]\n",
|
||
"\n",
|
||
"ax = axes[0]\n",
|
||
"x = np.arange(len(labels))\n",
|
||
"width = 0.35\n",
|
||
"ax.bar(x - width / 2, hits5, width, label=\"Hits@5\", color=\"#3b82f6\")\n",
|
||
"ax.bar(x + width / 2, hits10, width, label=\"Hits@10\", color=\"#10b981\")\n",
|
||
"ax.axhline(y=random_hits5, color=\"red\", linestyle=\"--\", label=f\"Random@5 ({random_hits5:.2%})\")\n",
|
||
"ax.set_xlabel(\"Position Range\")\n",
|
||
"ax.set_ylabel(\"Accuracy\")\n",
|
||
"ax.set_title(\"Masked Asset Prediction Accuracy\")\n",
|
||
"ax.set_xticks(x)\n",
|
||
"ax.set_xticklabels(labels, rotation=15)\n",
|
||
"ax.legend()\n",
|
||
"ax.set_ylim(0, max(max(hits10), 0.01) * 1.3)\n",
|
||
"\n",
|
||
"# Right: MRR by position range\n",
|
||
"mrrs = [m[\"mrr\"] for m in benchmark_results.values()]\n",
|
||
"ax = axes[1]\n",
|
||
"ax.bar(x, mrrs, color=\"#8b5cf6\")\n",
|
||
"ax.set_xlabel(\"Position Range\")\n",
|
||
"ax.set_ylabel(\"Mean Reciprocal Rank\")\n",
|
||
"ax.set_title(\"Mean Reciprocal Rank by Position\")\n",
|
||
"ax.set_xticks(x)\n",
|
||
"ax.set_xticklabels(labels, rotation=15)\n",
|
||
"\n",
|
||
"plt.tight_layout()\n",
|
||
"plt.show()"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "f9502702",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004,
|
||
"end_time": "2026-06-14T17:03:21.725309+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.721309+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Benchmark Interpretation\n",
|
||
"\n",
|
||
"- **Hits@k**: fraction of times the true masked stock appears in the top-k\n",
|
||
" nearest neighbours of the surrounding context.\n",
|
||
"- **MRR**: mean reciprocal rank of the true stock; bounded by 1.\n",
|
||
"\n",
|
||
"Two patterns are worth checking against the table above:\n",
|
||
"\n",
|
||
"1. The position-bucket effect — top positions (the largest holdings) are more\n",
|
||
" consistently held across funds, so their context is predictive; lower\n",
|
||
" positions are noisier and Hits@k typically falls.\n",
|
||
"2. The lift over the analytical random baseline (`5 / vocab_size`) — even a\n",
|
||
" single-quarter Word2Vec model on 500 portfolios should be one-to-two\n",
|
||
" orders of magnitude above random, well outside the bootstrap CI.\n",
|
||
"\n",
|
||
"This is the same masked-asset benchmark Gabaix et al. (2025)\n",
|
||
"use to compare Word2Vec, BERT, and recommender-system embeddings."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "e0c04e84",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003849,
|
||
"end_time": "2026-06-14T17:03:21.732982+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.729133+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Connection to the Paper\n",
|
||
"\n",
|
||
"Gabaix et al. (2025) compare three embedding methods:\n",
|
||
"\n",
|
||
"1. **Recommender Systems (RS)**: PCA on investor-asset holdings matrix\n",
|
||
"2. **Word2Vec**: Skip-gram on portfolio sentences (what we did here)\n",
|
||
"3. **BERT**: Transformer with attention for contextualized embeddings\n",
|
||
"\n",
|
||
"Their key findings:\n",
|
||
"- **4D embeddings explain >50% of valuation variation** (vs 15% for characteristics)\n",
|
||
"- Word2Vec excels at the **managed portfolio benchmark** (predicting masked assets)\n",
|
||
"- Text embeddings from OpenAI/Cohere perform **poorly**—portfolio data captures\n",
|
||
" information that company descriptions cannot\n",
|
||
"\n",
|
||
"Our implementation demonstrates the Word2Vec approach, showing how NLP methods\n",
|
||
"transfer directly to financial data."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "84991625",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.004218,
|
||
"end_time": "2026-06-14T17:03:21.741131+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.736913+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Applications\n",
|
||
"\n",
|
||
"Asset embeddings enable practical applications:\n",
|
||
"\n",
|
||
"### 1. Stock Substitution\n",
|
||
"Find replacement stocks when constraints prevent trading the original.\n",
|
||
"\n",
|
||
"### 2. Portfolio Diversification\n",
|
||
"Measure true diversification: positions far apart in embedding space\n",
|
||
"are more diversified than those close together.\n",
|
||
"\n",
|
||
"### 3. Crowding Detection\n",
|
||
"Track how embeddings evolve; stocks moving toward dense regions\n",
|
||
"may face crowding-related headwinds.\n",
|
||
"\n",
|
||
"### 4. Risk Modeling\n",
|
||
"Embedding similarity captures relationships not visible in returns covariance."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 22,
|
||
"id": "dfb931b1",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.750316Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.750140Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.754039Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.753423Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.009245,
|
||
"end_time": "2026-06-14T17:03:21.754412+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.745167+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Portfolio Diversification Analysis\n",
|
||
"==================================================\n",
|
||
"Sample portfolio:\n",
|
||
" - EXXON MOBIL CORP\n",
|
||
" - CONOCOPHILLIPS\n",
|
||
" - FREEPORT-MCMORAN INC\n",
|
||
" - MCKESSON CORP\n",
|
||
" - PEPSICO INC\n",
|
||
"\n",
|
||
"Average pairwise similarity: 0.648\n",
|
||
"(Lower = more diversified in terms of institutional ownership patterns)\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Demo: Portfolio diversification analysis\n",
|
||
"print(\"\\nPortfolio Diversification Analysis\")\n",
|
||
"print(\"=\" * 50)\n",
|
||
"\n",
|
||
"# Take 5 random widely-held stocks\n",
|
||
"sample_cusips = np.random.choice(subset_cusips[:100], size=5, replace=False)\n",
|
||
"sample_names = [cusip_to_name.get(c, \"Unknown\")[:25] for c in sample_cusips]\n",
|
||
"\n",
|
||
"print(\"Sample portfolio:\")\n",
|
||
"for name in sample_names:\n",
|
||
" print(f\" - {name}\")\n",
|
||
"\n",
|
||
"# Compute pairwise similarities\n",
|
||
"sims = []\n",
|
||
"for i, c1 in enumerate(sample_cusips):\n",
|
||
" for c2 in sample_cusips[i + 1 :]:\n",
|
||
" sims.append(model.wv.similarity(c1, c2))\n",
|
||
"\n",
|
||
"print(f\"\\nAverage pairwise similarity: {np.mean(sims):.3f}\")\n",
|
||
"print(\"(Lower = more diversified in terms of institutional ownership patterns)\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "markdown",
|
||
"id": "fccb9952",
|
||
"metadata": {
|
||
"papermill": {
|
||
"duration": 0.003903,
|
||
"end_time": "2026-06-14T17:03:21.762277+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.758374+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"source": [
|
||
"## Key Takeaways\n",
|
||
"\n",
|
||
"1. **Word2Vec applies beyond text**: Portfolios as sentences, stocks as words.\n",
|
||
"\n",
|
||
"2. **Skip-gram learns from position ordering**: Stocks at similar portfolio\n",
|
||
" positions (by weight) get similar embeddings.\n",
|
||
"\n",
|
||
"3. **Gabaix et al. (2025) frame holdings as informationally sufficient** for\n",
|
||
" asset pricing. This notebook does not reproduce that proof; it\n",
|
||
" implements one of the paper's embedding methods (Skip-gram on portfolio\n",
|
||
" sentences) and reproduces the masked-asset benchmark protocol on a\n",
|
||
" single-quarter 13F snapshot of ~500 portfolios. The notebook's own\n",
|
||
" measurements are the Hits@k and MRR values printed above, with\n",
|
||
" bootstrap CIs and the vs-random improvement multiple.\n",
|
||
"\n",
|
||
"4. **Paper-reported comparisons (not measured here)**: Gabaix et al. (2025)\n",
|
||
" report 4D embeddings explaining >50% of valuation variation versus\n",
|
||
" ~15% for characteristics, and report that text-only embeddings from\n",
|
||
" OpenAI/Cohere underperform portfolio-derived embeddings on the same\n",
|
||
" benchmark. These numbers come from the paper, not from this notebook's\n",
|
||
" benchmark run; see the paper for the full set of comparisons.\n",
|
||
"\n",
|
||
"5. **Practical applications**: Stock substitution, diversification,\n",
|
||
" crowding detection, and enhanced risk models."
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 23,
|
||
"id": "87a5d24a",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.771086Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.770901Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.784944Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.784347Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.019262,
|
||
"end_time": "2026-06-14T17:03:21.785448+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.766186+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"\n",
|
||
"Model saved to: 10_text_feature_engineering/output/asset_embeddings/asset_word2vec.model\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Save model and results to output directory\n",
|
||
"chapter_dir = get_chapter_dir(10)\n",
|
||
"output_dir = chapter_dir / \"output\" / \"asset_embeddings\"\n",
|
||
"output_dir.mkdir(parents=True, exist_ok=True)\n",
|
||
"model_path = output_dir / \"asset_word2vec.model\"\n",
|
||
"model.save(str(model_path))\n",
|
||
"print(f\"\\nModel saved to: {model_path}\")"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 24,
|
||
"id": "dc250f1c",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.795353Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.795239Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.798125Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.797729Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.008008,
|
||
"end_time": "2026-06-14T17:03:21.798451+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.790443+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"# JSON artifact for reproducibility verification\n",
|
||
"results_artifact = {\n",
|
||
" \"config\": CONFIG,\n",
|
||
" \"data_summary\": {\n",
|
||
" \"portfolios\": len(sentences),\n",
|
||
" \"vocabulary_size\": len(model.wv),\n",
|
||
" \"embedding_dim\": EMBEDDING_DIM,\n",
|
||
" \"min_count\": MIN_COUNT,\n",
|
||
" },\n",
|
||
" \"benchmark_results\": {\n",
|
||
" label: {\n",
|
||
" \"hits_at_5\": m[\"hits@5\"],\n",
|
||
" \"hits_at_10\": m[\"hits@10\"],\n",
|
||
" \"mrr\": m[\"mrr\"],\n",
|
||
" \"n_samples\": m[\"total\"],\n",
|
||
" }\n",
|
||
" for label, m in benchmark_results.items()\n",
|
||
" },\n",
|
||
" \"random_baseline\": {\n",
|
||
" \"hits_at_5\": random_hits5,\n",
|
||
" \"hits_at_10\": random_hits10,\n",
|
||
" \"vocab_size\": vocab_size,\n",
|
||
" },\n",
|
||
" \"bootstrap_ci\": {\n",
|
||
" label: {\n",
|
||
" \"mean\": stats[\"mean\"],\n",
|
||
" \"ci_lower_95\": stats[\"ci_lower\"],\n",
|
||
" \"ci_upper_95\": stats[\"ci_upper\"],\n",
|
||
" \"n\": stats[\"n\"],\n",
|
||
" }\n",
|
||
" for label, stats in boot_stats.items()\n",
|
||
" },\n",
|
||
" \"improvement_over_random\": {\n",
|
||
" \"point_estimate\": improvement,\n",
|
||
" \"ci_lower_95\": improvement_lower,\n",
|
||
" \"ci_upper_95\": improvement_upper,\n",
|
||
" },\n",
|
||
"}"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 25,
|
||
"id": "793c478a",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.807150Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.807038Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.809317Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.808932Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.007122,
|
||
"end_time": "2026-06-14T17:03:21.809691+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.802569+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [],
|
||
"source": [
|
||
"json_file = output_dir / \"results.json\"\n",
|
||
"with open(json_file, \"w\") as f:\n",
|
||
" json.dump(results_artifact, f, indent=2)"
|
||
]
|
||
},
|
||
{
|
||
"cell_type": "code",
|
||
"execution_count": 26,
|
||
"id": "e06eddee",
|
||
"metadata": {
|
||
"execution": {
|
||
"iopub.execute_input": "2026-06-14T17:03:21.818150Z",
|
||
"iopub.status.busy": "2026-06-14T17:03:21.818048Z",
|
||
"iopub.status.idle": "2026-06-14T17:03:21.823081Z",
|
||
"shell.execute_reply": "2026-06-14T17:03:21.822759Z"
|
||
},
|
||
"papermill": {
|
||
"duration": 0.010072,
|
||
"end_time": "2026-06-14T17:03:21.823670+00:00",
|
||
"exception": false,
|
||
"start_time": "2026-06-14T17:03:21.813598+00:00",
|
||
"status": "completed"
|
||
}
|
||
},
|
||
"outputs": [
|
||
{
|
||
"name": "stdout",
|
||
"output_type": "stream",
|
||
"text": [
|
||
"Results saved to:\n",
|
||
" - 10_text_feature_engineering/output/asset_embeddings/results.md\n",
|
||
" - 10_text_feature_engineering/output/asset_embeddings/results.json\n"
|
||
]
|
||
}
|
||
],
|
||
"source": [
|
||
"# Markdown summary\n",
|
||
"results_file = output_dir / \"results.md\"\n",
|
||
"with open(results_file, \"w\") as f:\n",
|
||
" f.write(\"# Asset Embeddings Results\\n\\n\")\n",
|
||
" f.write(\"## Method\\n\")\n",
|
||
" f.write(\"- Word2Vec (skip-gram) trained on portfolio sentences\\n\")\n",
|
||
" f.write(\"- Portfolios = sentences, stocks = words, position order = word order\\n\")\n",
|
||
" f.write(f\"- Random seed: {SEED}\\n\\n\")\n",
|
||
" f.write(\"## Data Summary\\n\")\n",
|
||
" f.write(f\"- Portfolios (institutions): {len(sentences):,}\\n\")\n",
|
||
" f.write(f\"- Vocabulary (stocks): {len(model.wv):,}\\n\")\n",
|
||
" f.write(f\"- Embedding dimension: {EMBEDDING_DIM}\\n\")\n",
|
||
" f.write(f\"- Context window: {WINDOW_SIZE}\\n\")\n",
|
||
" f.write(f\"- Min count (stock must appear in N portfolios): {MIN_COUNT}\\n\\n\")\n",
|
||
" f.write(\"## Managed Portfolio Benchmark\\n\")\n",
|
||
" f.write(\"Masked asset prediction (paper's key test for Word2Vec):\\n\\n\")\n",
|
||
" f.write(\"| Position Range | Hits@5 | 95% CI | Hits@10 | MRR | N |\\n\")\n",
|
||
" f.write(\"|----------------|--------|--------|---------|-----|---|\\n\")\n",
|
||
" for label, m in benchmark_results.items():\n",
|
||
" ci = boot_stats.get(label, {})\n",
|
||
" ci_str = f\"[{ci.get('ci_lower', 0):.1%}-{ci.get('ci_upper', 0):.1%}]\" if ci else \"N/A\"\n",
|
||
" f.write(\n",
|
||
" f\"| {label} | {m['hits@5']:.1%} | {ci_str} | {m['hits@10']:.1%} | {m['mrr']:.3f} | {m['total']} |\\n\"\n",
|
||
" )\n",
|
||
" f.write(\"\\n### Random Baseline Comparison\\n\")\n",
|
||
" f.write(f\"- Vocabulary size: {vocab_size:,} stocks\\n\")\n",
|
||
" f.write(f\"- Random Hits@5: {random_hits5:.4%} (= 5/{vocab_size:,})\\n\")\n",
|
||
" f.write(\n",
|
||
" f\"- **Improvement over random: {improvement:.0f}x** [95% CI: {improvement_lower:.0f}x - {improvement_upper:.0f}x]\\n\\n\"\n",
|
||
" )\n",
|
||
" f.write(\"## Key Insight\\n\")\n",
|
||
" f.write(\"Word2Vec on portfolio data learns stock representations that capture\\n\")\n",
|
||
" f.write(\"institutional investor behavior. The masked asset prediction benchmark\\n\")\n",
|
||
" f.write(\"demonstrates the method's practical utility for portfolio construction.\\n\\n\")\n",
|
||
" f.write(\"Reference: Gabaix et al. (2025).\\n\")\n",
|
||
"\n",
|
||
"print(\"Results saved to:\")\n",
|
||
"print(f\" - {results_file}\")\n",
|
||
"print(f\" - {json_file}\")"
|
||
]
|
||
}
|
||
],
|
||
"metadata": {
|
||
"jupytext": {
|
||
"cell_metadata_filter": "tags,-all"
|
||
},
|
||
"kernelspec": {
|
||
"display_name": "Python 3 (ipykernel)",
|
||
"language": "python",
|
||
"name": "python3"
|
||
},
|
||
"language_info": {
|
||
"codemirror_mode": {
|
||
"name": "ipython",
|
||
"version": 3
|
||
},
|
||
"file_extension": ".py",
|
||
"mimetype": "text/x-python",
|
||
"name": "python",
|
||
"nbconvert_exporter": "python",
|
||
"pygments_lexer": "ipython3",
|
||
"version": "3.12.13"
|
||
},
|
||
"papermill": {
|
||
"default_parameters": {},
|
||
"duration": 102.543298,
|
||
"end_time": "2026-06-14T17:03:22.746872+00:00",
|
||
"environment_variables": {},
|
||
"exception": null,
|
||
"input_path": "10_text_feature_engineering/02_asset_embeddings.ipynb",
|
||
"output_path": "10_text_feature_engineering/02_asset_embeddings.ipynb",
|
||
"parameters": {},
|
||
"start_time": "2026-06-14T17:01:40.203574+00:00",
|
||
"version": "2.7.0"
|
||
},
|
||
"ml4t_provenance": {
|
||
"source_py_blob": "5e5bb7ff083e16f426e06d9abd92d1cfbb7405ae",
|
||
"executed_at": "2026-06-14T17:03:23.132695+00:00",
|
||
"executor": "py312-docker",
|
||
"production": true,
|
||
"parameters": {},
|
||
"notes": "executed-state finalization batch (2026-06-13 run)"
|
||
}
|
||
},
|
||
"nbformat": 4,
|
||
"nbformat_minor": 5
|
||
}
|