{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":16,"y":16,"width":288,"height":636.6,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":36,"y":34,"width":248,"height":600.6,"fontSize":22,"fontFamily":1,"text":"User Tower\n\nInput:\n- user_id\n- age\n- gender\n- country\n- history\n(last 50\nitems)\n\nLayers:\nDense →\nReLU →\nDense →\nReLU →\nDense\n\nOutput:\n256-dim\nembedding","originalText":"User Tower\n\nInput:\n- user_id\n- age\n- gender\n- country\n- history\n(last 50\nitems)\n\nLayers:\nDense →\nReLU →\nDense →\nReLU →\nDense\n\nOutput:\n256-dim\nembedding","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":16,"y":696.6,"width":288,"height":636.6,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":36,"y":714.6,"width":248,"height":600.6,"fontSize":22,"fontFamily":1,"text":"Item Tower\n\nInput:\n- item_id\n- category\n- title\n- tags\n- price\n- age\n- creator\n\nLayers:\nDense →\nReLU →\nDense →\nReLU →\nDense\n\nOutput:\n256-dim\nembedding","originalText":"Item Tower\n\nInput:\n- item_id\n- category\n- title\n- tags\n- price\n- age\n- creator\n\nLayers:\nDense →\nReLU →\nDense →\nReLU →\nDense\n\nOutput:\n256-dim\nembedding","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":16,"y":1377.2,"width":288,"height":722.4,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":36,"y":1395.2,"width":248,"height":686.4,"fontSize":22,"fontFamily":1,"text":"Two-Tower Model\nArchitecture\n\nTRAINING (offline):\n\nuser_embedding\nitem_embedding\n\ndot_product(user,\nitem) = similarity\nscore\n\nLoss: softmax\ncross-entropy\npositive pairs: (user,\nitem_clicked)\nnegative pairs: (user,\nrandom_item) —\nin-batch negatives\n\nTraining data: 3.6T\ninteractions, sampled\nTraining time: ~8\nhours on 256 GPUs","originalText":"Two-Tower Model\nArchitecture\n\nTRAINING (offline):\n\nuser_embedding\nitem_embedding\n\ndot_product(user,\nitem) = similarity\nscore\n\nLoss: softmax\ncross-entropy\npositive pairs: (user,\nitem_clicked)\nnegative pairs: (user,\nrandom_item) —\nin-batch negatives\n\nTraining data: 3.6T\ninteractions, sampled\nTraining time: ~8\nhours on 256 GPUs","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":16,"y":2143.6,"width":288,"height":68,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":36,"y":2163.2999999999997,"width":248,"height":28.6,"fontSize":22,"fontFamily":1,"text":"SERVING (online):","originalText":"SERVING (online):","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-9"}],"updated":0,"link":null,"locked":false,"id":"shape-8","type":"rectangle","seed":625,"x":16,"y":2255.6,"width":288,"height":379.2,"customData":{"revealStep":5}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-9","type":"text","seed":698,"x":36,"y":2273.6,"width":248,"height":343.2,"fontSize":22,"fontFamily":1,"text":"1. User logs in → look\nup user_embedding\n(precomputed or\non-the-fly)\n2. Query ANN index\nwith user_embedding\n3. ANN returns\ntop-1000 nearest\nitem_embeddings\n4. These are the\ncollaborative filtering\ncandidates","originalText":"1. User logs in → look\nup user_embedding\n(precomputed or\non-the-fly)\n2. Query ANN index\nwith user_embedding\n3. ANN returns\ntop-1000 nearest\nitem_embeddings\n4. These are the\ncollaborative filtering\ncandidates","textAlign":"left","verticalAlign":"middle","containerId":"shape-8","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":5}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-6"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-11"}],"updated":0,"link":null,"locked":false,"id":"shape-10","type":"rectangle","seed":771,"x":16,"y":2678.7999999999997,"width":288,"height":407.8,"customData":{"revealStep":6}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-6"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-11","type":"text","seed":844,"x":36,"y":2696.7999999999997,"width":248,"height":371.8,"fontSize":22,"fontFamily":1,"text":"Why \"Two-Tower\"?\nUser and item\nembeddings are\ncomputed\nINDEPENDENTLY\nItem embeddings\nprecomputed and\nstored in ANN index\nAt serving time, only\ncompute user\nembedding (fast)\nThen ANN lookup is\nO(log N) not O(N)","originalText":"Why \"Two-Tower\"?\nUser and item\nembeddings are\ncomputed\nINDEPENDENTLY\nItem embeddings\nprecomputed and\nstored in ANN index\nAt serving time, only\ncompute user\nembedding (fast)\nThen ANN lookup is\nO(log N) not O(N)","textAlign":"left","verticalAlign":"middle","containerId":"shape-10","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":6}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}