wachynaky commited on
Commit
86fc06a
·
verified ·
1 Parent(s): 0ad226b

redisign lateral meny to works fine on mobile - Initial Deployment

Browse files
Files changed (2) hide show
  1. README.md +7 -5
  2. index.html +619 -19
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Mecagoenlos
3
- emoji: 🚀
4
- colorFrom: gray
5
- colorTo: indigo
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: mecagoenlos
3
+ emoji: 🐳
4
+ colorFrom: purple
5
+ colorTo: gray
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,619 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="es">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>¿Se está transformando Google en un motor de recomendación?</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ /* Lateral Menu Styles */
11
+ .lateral-menu {
12
+ position: fixed;
13
+ left: 0;
14
+ top: 0;
15
+ width: 250px;
16
+ height: 100vh;
17
+ background-color: #2e2e2a;
18
+ box-shadow: 2px 0 15px rgba(0,0,0,0.2);
19
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
20
+ z-index: 1000;
21
+ border-right: 1px solid #3a3a35;
22
+ transform: translateX(-100%);
23
+ overflow-y: auto;
24
+ }
25
+
26
+ @media (max-width: 768px) {
27
+ .lateral-menu {
28
+ transform: translateX(-100%);
29
+ width: 280px;
30
+ }
31
+ .lateral-menu.active {
32
+ transform: translateX(0);
33
+ }
34
+ .menu-overlay {
35
+ position: fixed;
36
+ top: 0;
37
+ left: 0;
38
+ right: 0;
39
+ bottom: 0;
40
+ background: rgba(0,0,0,0.5);
41
+ z-index: 999;
42
+ opacity: 0;
43
+ pointer-events: none;
44
+ transition: opacity 0.3s ease;
45
+ }
46
+ .menu-overlay.active {
47
+ opacity: 1;
48
+ pointer-events: all;
49
+ }
50
+ }
51
+
52
+ .lateral-menu::after {
53
+ content: '';
54
+ position: absolute;
55
+ right: -3px;
56
+ top: 0;
57
+ height: 100%;
58
+ width: 6px;
59
+ background: linear-gradient(90deg,
60
+ rgba(255,255,255,0.05) 0%,
61
+ rgba(255,255,255,0.1) 50%,
62
+ rgba(255,255,255,0.05) 100%);
63
+ border-radius: 2px;
64
+ }
65
+
66
+ .lateral-menu.active {
67
+ transform: translateX(0);
68
+ box-shadow: 5px 0 25px rgba(0,0,0,0.3);
69
+ }
70
+
71
+ .lateral-menu.active {
72
+ transform: translateX(0);
73
+ }
74
+
75
+ .menu-toggle {
76
+ position: fixed;
77
+ left: 10px;
78
+ top: 10px;
79
+ z-index: 1001;
80
+ background: #faff69;
81
+ color: #2e2e2a;
82
+ border: none;
83
+ padding: 12px 18px;
84
+ border-radius: 50px;
85
+ cursor: pointer;
86
+ font-weight: bold;
87
+ box-shadow: 0 4px 8px rgba(0,0,0,0.3);
88
+ transition: all 0.3s ease;
89
+ display: flex;
90
+ align-items: center;
91
+ gap: 8px;
92
+ }
93
+
94
+ @media (max-width: 768px) {
95
+ .menu-toggle {
96
+ left: 15px;
97
+ top: 15px;
98
+ z-index: 1002;
99
+ }
100
+ }
101
+
102
+ .menu-toggle:hover {
103
+ background: #e0e65e;
104
+ transform: scale(1.05);
105
+ box-shadow: 0 6px 12px rgba(0,0,0,0.4);
106
+ }
107
+
108
+ .menu-toggle::after {
109
+ content: "MENU";
110
+ font-size: 1rem;
111
+ font-weight: 700;
112
+ }
113
+
114
+ .lateral-menu-content {
115
+ padding: 20px;
116
+ padding-top: 80px;
117
+ }
118
+
119
+ .lateral-menu h3 {
120
+ color: #faff69;
121
+ margin-bottom: 15px;
122
+ font-size: 1.1rem;
123
+ }
124
+
125
+ .lateral-menu ul {
126
+ list-style: none;
127
+ padding: 0;
128
+ }
129
+
130
+ .lateral-menu li {
131
+ margin-bottom: 10px;
132
+ }
133
+
134
+ .lateral-menu a {
135
+ color: #d1d1d1;
136
+ text-decoration: none;
137
+ transition: color 0.2s;
138
+ display: block;
139
+ padding: 5px 0;
140
+ }
141
+
142
+ .lateral-menu a:hover {
143
+ color: #faff69;
144
+ }
145
+
146
+ .prose img {
147
+ border-radius: 0.5rem;
148
+ box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
149
+ margin: 1.5rem auto;
150
+ max-width: 100%;
151
+ height: auto;
152
+ }
153
+
154
+ .prose a {
155
+ color: #faff69;
156
+ text-decoration: none;
157
+ font-weight: 500;
158
+ transition: color 0.2s;
159
+ }
160
+
161
+ .prose a:hover {
162
+ color: #e0e65e;
163
+ text-decoration: underline;
164
+ }
165
+
166
+ .prose blockquote {
167
+ border-left: 4px solid #faff69;
168
+ padding-left: 1rem;
169
+ margin: 1.5rem 0;
170
+ color: #d1d1d1;
171
+ font-style: italic;
172
+ background-color: rgba(250, 255, 105, 0.05);
173
+ }
174
+
175
+ .no-scroll {
176
+ overflow: hidden;
177
+ }
178
+
179
+ .prose h2, .prose h3 {
180
+ scroll-margin-top: 100px;
181
+ }
182
+
183
+ .toc-item {
184
+ position: relative;
185
+ padding-left: 1rem;
186
+ }
187
+
188
+ .toc-item::before {
189
+ content: "";
190
+ position: absolute;
191
+ left: 0;
192
+ top: 50%;
193
+ transform: translateY(-50%);
194
+ width: 6px;
195
+ height: 6px;
196
+ background-color: #faff69;
197
+ border-radius: 50%;
198
+ }
199
+
200
+ .toc-item:hover::before {
201
+ background-color: #e0e65e;
202
+ }
203
+
204
+ @media (max-width: 768px) {
205
+ .article-container {
206
+ flex-direction: column;
207
+ }
208
+
209
+ .toc-container {
210
+ width: 100%;
211
+ position: static;
212
+ margin-bottom: 2rem;
213
+ }
214
+ }
215
+ </style>
216
+ </head>
217
+ <body class="bg-[#242420] text-gray-100">
218
+ <!-- Menu Toggle Button -->
219
+ <button class="menu-toggle" id="menuToggle">
220
+ <i class="fas fa-bars"></i>
221
+ </button>
222
+
223
+ <!-- Lateral Menu -->
224
+ <div class="lateral-menu" id="lateralMenu">
225
+ <div class="menu-overlay" id="menuOverlay"></div>
226
+ <div class="lateral-menu-content">
227
+ <h3>Menu</h3>
228
+ <ul>
229
+ <li><a href="#"><i class="fas fa-home mr-2"></i>Home</a></li>
230
+ <li><a href="#"><i class="fas fa-newspaper mr-2"></i>Articles</a></li>
231
+ <li><a href="#"><i class="fas fa-search mr-2"></i>Search</a></li>
232
+ <li><a href="#"><i class="fas fa-bookmark mr-2"></i>Bookmarks</a></li>
233
+ <li><a href="#"><i class="fas fa-cog mr-2"></i>Settings</a></li>
234
+ </ul>
235
+
236
+ <h3>Categories</h3>
237
+ <ul>
238
+ <li><a href="#"><i class="fas fa-hashtag mr-2"></i>SEO</a></li>
239
+ <li><a href="#"><i class="fab fa-google mr-2"></i>Google</a></li>
240
+ <li><a href="#"><i class="fas fa-code mr-2"></i>Algorithms</a></li>
241
+ <li><a href="#"><i class="fas fa-chart-line mr-2"></i>Analytics</a></li>
242
+ </ul>
243
+ </div>
244
+ </div>
245
+
246
+ <!-- Header -->
247
+ <header class="bg-[#242420] shadow-sm sticky top-0 z-10 border-b border-[#3a3a35]">
248
+ <div class="container mx-auto px-4 py-4 flex justify-between items-center">
249
+ <div class="flex items-center space-x-2">
250
+ <i class="fas fa-search text-[#faff69] text-xl"></i>
251
+ <h1 class="text-xl font-bold text-[#faff69]">SEO Insights</h1>
252
+ </div>
253
+ <nav>
254
+ <ul class="flex space-x-6">
255
+ <li><a href="#" class="text-white hover:text-[#faff69] transition">Inicio</a></li>
256
+ <li><a href="#" class="text-white hover:text-[#faff69] transition">Artículos</a></li>
257
+ <li><a href="#" class="text-white hover:text-[#faff69] transition">Acerca de</a></li>
258
+ <li><a href="#" class="text-white hover:text-[#faff69] transition">Contacto</a></li>
259
+ </ul>
260
+ </nav>
261
+ <button class="md:hidden text-gray-600">
262
+ <i class="fas fa-bars text-xl"></i>
263
+ </button>
264
+ </div>
265
+ </header>
266
+
267
+ <!-- Breadcrumbs -->
268
+ <div class="bg-[#2e2e2a] py-2">
269
+ <div class="container mx-auto px-4">
270
+ <div class="flex items-center text-sm text-gray-300">
271
+ <a href="#" class="text-white hover:text-[#faff69]">Inicio</a>
272
+ <span class="mx-2 text-white">/</span>
273
+ <a href="#" class="text-white hover:text-[#faff69]">Artículos</a>
274
+ <span class="mx-2 text-white">/</span>
275
+ <span class="text-[#faff69]">Google como motor de recomendación</span>
276
+ </div>
277
+ </div>
278
+ </div>
279
+
280
+ <!-- Main Content -->
281
+ <main class="container mx-auto px-4 py-8 ml-0 md:ml-0">
282
+ <div class="article-container flex">
283
+ <!-- Table of Contents -->
284
+ <div class="toc-container hidden md:block w-64 flex-shrink-0 pr-8">
285
+ <div class="bg-white p-4 rounded-lg shadow-sm sticky top-24">
286
+ <h3 class="font-bold text-lg mb-4 text-gray-800 border-b pb-2">Contenido</h3>
287
+ <ul class="space-y-2">
288
+ <li class="toc-item"><a href="#motores-busqueda" class="text-gray-700 hover:text-blue-500">Motores de búsqueda</a></li>
289
+ <li class="toc-item"><a href="#motores-recomendacion" class="text-gray-700 hover:text-blue-500">Motores de recomendación</a></li>
290
+ <li class="toc-item"><a href="#funcionamiento-youtube" class="text-gray-700 hover:text-blue-500">¿Cómo funciona YouTube?</a></li>
291
+ <li class="toc-item"><a href="#id-semanticos" class="text-gray-700 hover:text-blue-500">ID semánticos</a></li>
292
+ <li class="toc-item"><a href="#generacion-sid" class="text-gray-700 hover:text-blue-500">¿Cómo genera YouTube el Semantic ID?</a></li>
293
+ <li class="toc-item"><a href="#lenguaje-youtube" class="text-gray-700 hover:text-blue-500">YouTube habla "inglés" y "YouTube"</a></li>
294
+ <li class="toc-item"><a href="#recuperacion-generativa" class="text-gray-700 hover:text-blue-500">Recuperación Generativa Personalizada</a></li>
295
+ <li class="toc-item"><a href="#transformacion-google" class="text-gray-700 hover:text-blue-500">¿Está transformándose la búsqueda de Google?</a></li>
296
+ </ul>
297
+ </div>
298
+ </div>
299
+
300
+ <!-- Article -->
301
+ <div class="prose max-w-3xl mx-auto bg-[#2e2e2a] p-6 md:p-8 rounded-lg shadow-sm flex-grow text-gray-200">
302
+ <!-- Article Header -->
303
+ <div class="mb-8">
304
+ <div class="flex items-center text-sm text-gray-500 mb-2">
305
+ <span class="flex items-center">
306
+ <i class="fas fa-user mr-1"></i>
307
+ <span>Lino Uruñuela</span>
308
+ </span>
309
+ <span class="mx-2">•</span>
310
+ <span class="flex items-center">
311
+ <i class="fas fa-calendar-alt mr-1"></i>
312
+ <span>1 de Julio, 2025</span>
313
+ </span>
314
+ <span class="mx-2">•</span>
315
+ <span class="flex items-center">
316
+ <i class="fas fa-clock mr-1"></i>
317
+ <span>8 min lectura</span>
318
+ </span>
319
+ </div>
320
+ <h1 class="text-3xl md:text-4xl font-bold text-gray-900 mb-4">¿Se está transformando Google en un motor de recomendación?</h1>
321
+ <div class="flex flex-wrap gap-2">
322
+ <span class="bg-[#faff69]/20 text-[#faff69] px-3 py-1 rounded-full text-sm">SEO</span>
323
+ <span class="bg-[#faff69]/20 text-[#faff69] px-3 py-1 rounded-full text-sm">Google</span>
324
+ <span class="bg-[#faff69]/20 text-[#faff69] px-3 py-1 rounded-full text-sm">Algoritmos</span>
325
+ <span class="bg-[#faff69]/20 text-[#faff69] px-3 py-1 rounded-full text-sm">Recomendación</span>
326
+ </div>
327
+ </div>
328
+
329
+ <!-- Article Content -->
330
+ <h2 id="motores-busqueda" class="text-2xl font-bold text-gray-800 mt-8 mb-4">Motores de búsqueda</h2>
331
+ <p>No voy a explicar a fondo qué es un motor de búsqueda, cualquiera que lea este blog debería tener más o menos claro ese concepto. Pero quizás sí sea bueno recordar que un motor de búsqueda intenta ofrecer la información más relevante para la búsqueda del usuario... con todo lo que eso conlleva.</p>
332
+
333
+ <img src="https://www.mecagoenlos.com/imagenes/como-funciona-yotube.png" alt="Cómo funciona YouTube" class="w-full">
334
+
335
+ <p>Uno de los puntos más difíciles para los buscadores ha sido el interpretar la intención del usuario cuando realiza una búsqueda, es algo que podría parecer sencillo pero no lo es en absoluto.</p>
336
+
337
+ <p>Con la llegada de Bert, Google dio un gran paso adelante a la hora de interpretar la consulta de búsqueda de los usuarios, ese fue un cambio muy importante, y aunque muchas veces pensamos en cómo Bert podría influir a la hora de valorar el contenido de nuestro site, realmente, lo más relevante fue que Bert permitía conocer mucho mejor la intención que un usuario tenía al realizar una búsqueda.</p>
338
+
339
+ <p>De esta forma podía seleccionar resultados que se ajustasen a esa intención, por ejemplo si la intención era comprar algo, mostraría resultados más cercanos a tiendas online o resultados que diesen una buena reseña sobre el producto.</p>
340
+
341
+ <h2 id="motores-recomendacion" class="text-2xl font-bold text-gray-800 mt-8 mb-4">Motores de recomendación</h2>
342
+ <p>Los motores de recomendación (Instagram, Google Discover, TikTok, YouTube, etc.) son sistemas que intentan predecir cuál es la probabilidad de que un usuario realice determinadas acciones si se le presenta determinado contenido, por ejemplo, en Instagram te mostrará aquello que tenga más posibilidades de que interactúes con ello, basándose, entre otras cosas, en la actividad anterior en la plataforma.</p>
343
+
344
+ <p>Cada vez que interactúas con piezas de contenido se va generando un perfil de qué temática de contenido te gusta en qué momento, qué le ha gustado a usuarios que tienen perfiles similares al tuyo.</p>
345
+
346
+ <p>Cuando digo perfiles debemos entender cómo qué usuarios tienen una actividad en la que interactúan con contenidos con las mismas características que el contenido con el que tú interactúas.</p>
347
+
348
+ <h2 id="funcionamiento-youtube" class="text-2xl font-bold text-gray-800 mt-8 mb-4">¿Cómo funciona YouTube?</h2>
349
+ <p>Pero entender en profundidad estos algoritmos no es nada sencillo, como muestra <a href="https://www.youtube.com/live/3k4a0PemMu4?feature=shared&t=11303">podemos ver este vídeo</a> dónde muestran cómo en YouTube, la recomendación no es una función más sino que es <strong>el corazón de la plataforma</strong>.</p>
350
+
351
+ <p>La gran mayoría del tiempo de visualización de los usuarios es generado por su sistema de recomendación. Divyansh, gerente de producto de YouTube, dice que el uso de los LLMs en YouTube es una implementación <strong>"más grande y subestimada que su uso en la búsqueda"</strong>, precisamente porque su impacto es "invisible" pero masivo.</p>
352
+
353
+ <p>Un problema típico y que YouTube también sufrió, fue el arranque en frío (o <strong>"cold-start"</strong>), ¿cómo Youtube puede recomendar un vídeo que acaba de ser subido si el sistema no sabe nada de él?.</p>
354
+
355
+ <p>A pesar de que Google / Youtube tienen uno de los modelos de lenguaje más avanzados, los IDs de los vídeos "tradicionales", basados en un hash (una simple cadena de letras y números), no le dicen nada sobre el contenido del vídeo al LLM, en este caso Gemini.</p>
356
+
357
+ <p>Para el motor de recomendación que vertebra Youtube, un vídeo de un gatito y uno sobre física cuántica eran, en esencia, dos códigos aleatorios. Hace dos años lo repensaron desde cero usando Gemini como base. El resultado es el <strong>LRM (Large Recommender Model)</strong>.</p>
358
+
359
+ <h3 id="id-semanticos" class="text-xl font-bold text-gray-800 mt-6 mb-3">ID semánticos</h3>
360
+ <p>Para que un LLM entienda los vídeos, primero necesita un "vocabulario" de vídeos y YouTube creó <strong>Semantic ID (SID)</strong>, que no solo es un identificador sino también una representación semántica del contenido del vídeo y de sus características.</p>
361
+
362
+ <h3 id="generacion-sid" class="text-xl font-bold text-gray-800 mt-6 mb-3">¿Cómo genera YouTube el Semantic ID?</h3>
363
+ <ol class="list-decimal pl-6 space-y-2">
364
+ <li><strong>Extracción Multimodal:</strong> Además de usar el <strong>título</strong> y la <strong>descripción</strong> del vídeo también usan la <strong>transcripción completa del audio</strong>, las características del <strong>sonido</strong> e incluso <strong>fotogramas clave del vídeo</strong>. Para seleccionar estos fotogramas clave extraen los tiempos en los que hay mayor interacción de los usuarios.</li>
365
+ <li><strong>Creación del Embedding:</strong> Toda esta información multimodal se combina y se convierte a <strong>embeddings multidimensionales</strong>.</li>
366
+ <li><strong>Cuantificación y Tokenización:</strong> Este embedding se "cuantifica", es decir, se comprime y se le asigna un <strong>token único</strong>: la SID.</li>
367
+ </ol>
368
+
369
+ <img src="https://www.mecagoenlos.com/imagenes/youtube-embeddings.png" alt="YouTube embeddings" class="w-full">
370
+
371
+ <p>Al realizar esto con miles de millones de vídeos surge un <strong>"nuevo lenguaje de vídeos de YouTube"</strong>. En este lenguaje, el SID de un vídeo no es aleatorio. Por ejemplo, dos vídeos de voleibol podrían compartir los primeros tokens de su SID (que representan "deportes" -> "voleibol"), pero tendrían un identificador único al final.</p>
372
+
373
+ <p>Con este método un vídeo nuevo ya no entra al sistema siendo un desconocido. Entra con un SID que le dice al recomendador: "Hola, soy un vídeo sobre la historia del rock de los 80, similar a estos otros vídeos" y esto soluciona el problema pasando de un arranque en frío a un <strong>"arranque en caliente en un espacio semánticamente significativo"</strong>.</p>
374
+
375
+ <h3 id="lenguaje-youtube" class="text-xl font-bold text-gray-800 mt-6 mb-3">YouTube habla "inglés" y "YouTube"</h3>
376
+ <p>El "lenguaje de YouTube" es el lenguaje de los SIDs, pero necesitaban un "traductor" al lenguaje humano. Este traductor es un modelo Gemini adaptado y reentrenado <strong>LRM (Large Recommender Model)</strong> para ser "bilingüe".</p>
377
+
378
+ <p>El entrenamiento consta de dos tareas principales:</p>
379
+
380
+ <ul class="list-disc pl-6 space-y-2">
381
+ <li><strong>Vincular Texto y SID:</strong> Le dan al modelo el título de un vídeo y le piden que genere su SID, o viceversa. Así aprende la conexión directa entre el lenguaje humano (texto) y el lenguaje de YouTube (SIDs).</li>
382
+ <li><strong>Comprender Secuencias de Visualización:</strong> Le muestran miles de millones de secuencias de vídeos que los usuarios han visto (ej: A -> B -> C -> D). Luego, ocultan un vídeo (ej: A -> B -> [MÁSCARA] -> D) y le piden al modelo que prediga cuál es el vídeo que falta. Es algo muy parecido a cómo se entrenan los LLMs.</li>
383
+ </ul>
384
+
385
+ <p>El LRM no solo memoriza, sino que <strong>aprende a <em>razonar</em></strong>. Puede ver un historial de visualización y, basándose solo en el SID de un nuevo vídeo, inferir que "este vídeo es interesante para los usuarios a los que les gusta la tecnología porque trata sobre IA".</p>
386
+
387
+ <h3 id="recuperacion-generativa" class="text-xl font-bold text-gray-800 mt-6 mb-3">Recuperación Generativa Personalizada</h3>
388
+ <p>Una de las primeras aplicaciones en producción es la <strong>recuperación generativa</strong>. Así funciona para los usuarios:</p>
389
+
390
+ <ol class="list-decimal pl-6 space-y-2">
391
+ <li><strong>Construyen un prompt personalizado</strong> en tiempo real. Este prompt incluye la información demográfica del usuario (edad, género, ubicación), el vídeo que está viendo ahora mismo y el historial reciente del usuario (los últimos 50 vídeos que ha visto y cómo interactúa con ellos).</li>
392
+ <li><strong>Le pasan este prompt al LRM.</strong></li>
393
+ <li>El modelo, en lugar de generar texto, <strong>decodifica su respuesta como una lista de SIDs</strong>: las recomendaciones de vídeo que considera perfectas para ese usuario en concreto en ese preciso momento.</li>
394
+ </ol>
395
+
396
+ <p>De esta manera consigue mostrar recomendaciones muy precisas y personalizadas. Por ejemplo, para un usuario que veía un vídeo de los mejores momentos de los Juegos Olímpicos, el LRM fue capaz de encontrar y recomendar <strong>carreras femeninas relacionadas</strong> que los sistemas anteriores no hubieran mostrado.</p>
397
+
398
+ <h2 id="transformacion-google" class="text-2xl font-bold text-gray-800 mt-8 mb-4">¿Está transformándose la búsqueda de Google en un Motor de Recomendación?</h2>
399
+ <p>Y esta es mi corazonada... ya desde hace años había gente (como Luisma, Chuiso y otros "locos") que ya venían diciendo cómo los clics afectaban a los rankings, aunque pocos les creímos, como yo mismo, eso sí, cuando me lo demostraron me lo creí y lo asumí.</p>
400
+
401
+ <p>También este año hemos visto cómo el caso antimonopolio de Google ha destapado que sí se utilizan los datos de clics (y otras interacciones) en las SERPs de Google y que eran usados de una u otra manera para evaluar y optimizar los resultados de búsqueda. Ahora <a href="https://blog.google/products/search/search-customization-tips/">anuncian oficialmente más personalización</a> de los resultados...</p>
402
+
403
+ <p>Todo esto junto al nuevo AI Mode que ofrecerá, en muchas ocasiones, la respuesta completa a la consulta del usuario, y sabiendo lo importante que son para los grandes LLMs como ChatGPT o Gemini la retroalimentación por parte de los usuarios... me hace pensar que la búsqueda de Google se está transformando en un motor de recomendación.</p>
404
+
405
+ <p>Os recomiendo ver el vídeo, concretamente la parte en la que explica cómo funciona YouTube.</p>
406
+
407
+ <!-- Article Footer -->
408
+ <div class="mt-12 pt-6 border-t border-gray-200">
409
+ <div class="flex flex-wrap gap-2 mb-6">
410
+ <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">#SEO</span>
411
+ <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">#Google</span>
412
+ <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">#Algoritmos</span>
413
+ <span class="bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm">#Recomendación</span>
414
+ </div>
415
+
416
+ <div class="flex items-center justify-between">
417
+ <div class="flex items-center space-x-4">
418
+ <button class="text-gray-500 hover:text-blue-500 transition">
419
+ <i class="far fa-thumbs-up mr-1"></i> 24
420
+ </button>
421
+ <button class="text-gray-500 hover:text-blue-500 transition">
422
+ <i class="far fa-comment mr-1"></i> 5 comentarios
423
+ </button>
424
+ </div>
425
+ <div class="flex items-center space-x-4">
426
+ <button class="text-gray-500 hover:text-blue-500 transition">
427
+ <i class="fas fa-share-alt"></i>
428
+ </button>
429
+ <button class="text-gray-500 hover:text-blue-500 transition">
430
+ <i class="far fa-bookmark"></i>
431
+ </button>
432
+ </div>
433
+ </div>
434
+ </div>
435
+ </div>
436
+ </div>
437
+ </main>
438
+
439
+ <!-- Related Articles -->
440
+ <section class="bg-[#2e2e2a] py-12">
441
+ <div class="container mx-auto px-4">
442
+ <h2 class="text-2xl font-bold text-[#faff69] mb-8">Artículos relacionados</h2>
443
+ <div class="grid md:grid-cols-3 gap-6">
444
+ <div class="bg-[#242420] rounded-lg shadow-sm overflow-hidden hover:shadow-md transition border border-[#3a3a35]">
445
+ <img src="https://via.placeholder.com/600x400" alt="Artículo relacionado" class="w-full h-48 object-cover">
446
+ <div class="p-4">
447
+ <span class="text-sm text-blue-500">SEO</span>
448
+ <h3 class="text-lg font-semibold mt-1 mb-2">Cómo afectan los LLMs al SEO tradicional</h3>
449
+ <p class="text-gray-600 text-sm">Exploramos cómo los grandes modelos de lenguaje están cambiando las reglas del SEO.</p>
450
+ <div class="flex items-center mt-4 text-sm text-gray-500">
451
+ <span>5 min lectura</span>
452
+ <span class="mx-2">•</span>
453
+ <span>15 Jun 2025</span>
454
+ </div>
455
+ </div>
456
+ </div>
457
+
458
+ <div class="bg-white rounded-lg shadow-sm overflow-hidden hover:shadow-md transition">
459
+ <img src="https://via.placeholder.com/600x400" alt="Artículo relacionado" class="w-full h-48 object-cover">
460
+ <div class="p-4">
461
+ <span class="text-sm text-blue-500">Algoritmos</span>
462
+ <h3 class="text-lg font-semibold mt-1 mb-2">El futuro de la búsqueda semántica</h3>
463
+ <p class="text-gray-600 text-sm">Cómo los motores de búsqueda están evolucionando para entender mejor la intención del usuario.</p>
464
+ <div class="flex items-center mt-4 text-sm text-gray-500">
465
+ <span>7 min lectura</span>
466
+ <span class="mx-2">•</span>
467
+ <span>22 May 2025</span>
468
+ </div>
469
+ </div>
470
+ </div>
471
+
472
+ <div class="bg-white rounded-lg shadow-sm overflow-hidden hover:shadow-md transition">
473
+ <img src="https://via.placeholder.com/600x400" alt="Artículo relacionado" class="w-full h-48 object-cover">
474
+ <div class="p-4">
475
+ <span class="text-sm text-blue-500">Tendencias</span>
476
+ <h3 class="text-lg font-semibold mt-1 mb-2">Personalización vs Privacidad</h3>
477
+ <p class="text-gray-600 text-sm">El delicado equilibrio entre ofrecer resultados relevantes y respetar la privacidad del usuario.</p>
478
+ <div class="flex items-center mt-4 text-sm text-gray-500">
479
+ <span>6 min lectura</span>
480
+ <span class="mx-2">•</span>
481
+ <span>10 Abr 2025</span>
482
+ </div>
483
+ </div>
484
+ </div>
485
+ </div>
486
+ </div>
487
+ </section>
488
+
489
+ <!-- Newsletter -->
490
+ <section class="bg-[#2e2e2a] py-12">
491
+ <div class="container mx-auto px-4 max-w-4xl">
492
+ <div class="bg-[#242420] p-8 rounded-lg shadow-sm text-center border border-[#3a3a35]">
493
+ <h2 class="text-2xl font-bold text-[#faff69] mb-2">Suscríbete a nuestro newsletter</h2>
494
+ <p class="text-gray-300 mb-6">Recibe los últimos artículos y análisis sobre SEO y marketing digital directamente en tu correo.</p>
495
+ <form class="flex flex-col sm:flex-row gap-3 max-w-md mx-auto">
496
+ <input type="email" placeholder="Tu correo electrónico" class="flex-grow px-4 py-2 border border-[#3a3a35] rounded-md focus:outline-none focus:ring-2 focus:ring-[#faff69] bg-[#2e2e2a] text-gray-200">
497
+ <button type="submit" class="bg-[#faff69] text-[#242420] px-6 py-2 rounded-md hover:bg-[#e0e65e] transition font-medium">Suscribirse</button>
498
+ </form>
499
+ <p class="text-xs text-gray-400 mt-3">Nos preocupamos por tus datos. Lee nuestra <a href="#" class="text-[#faff69]">política de privacidad</a>.</p>
500
+ </div>
501
+ </div>
502
+ </section>
503
+
504
+ <!-- Footer -->
505
+ <footer class="bg-[#1a1a18] text-gray-200 py-8">
506
+ <div class="container mx-auto px-4">
507
+ <div class="grid md:grid-cols-4 gap-8">
508
+ <div>
509
+ <h3 class="text-lg font-semibold mb-4">SEO Insights</h3>
510
+ <p class="text-gray-400">El blog donde analizamos las últimas tendencias en SEO, algoritmos de búsqueda y marketing digital.</p>
511
+ </div>
512
+ <div>
513
+ <h3 class="text-lg font-semibold mb-4">Enlaces</h3>
514
+ <ul class="space-y-2">
515
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Inicio</a></li>
516
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Artículos</a></li>
517
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Acerca de</a></li>
518
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Contacto</a></li>
519
+ </ul>
520
+ </div>
521
+ <div>
522
+ <h3 class="text-lg font-semibold mb-4">Categorías</h3>
523
+ <ul class="space-y-2">
524
+ <li><a href="#" class="text-gray-400 hover:text-white transition">SEO</a></li>
525
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Google</a></li>
526
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Algoritmos</a></li>
527
+ <li><a href="#" class="text-gray-400 hover:text-white transition">Marketing Digital</a></li>
528
+ </ul>
529
+ </div>
530
+ <div>
531
+ <h3 class="text-lg font-semibold mb-4">Síguenos</h3>
532
+ <div class="flex space-x-4">
533
+ <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-twitter text-xl"></i></a>
534
+ <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-linkedin text-xl"></i></a>
535
+ <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-facebook text-xl"></i></a>
536
+ <a href="#" class="text-gray-400 hover:text-white transition"><i class="fab fa-instagram text-xl"></i></a>
537
+ </div>
538
+ </div>
539
+ </div>
540
+ <div class="border-t border-gray-700 mt-8 pt-6 text-center text-gray-400 text-sm">
541
+ <p>© 2025 SEO Insights. Todos los derechos reservados.</p>
542
+ </div>
543
+ </div>
544
+ </footer>
545
+
546
+ <!-- Back to Top Button -->
547
+ <button id="back-to-top" class="fixed bottom-6 right-6 bg-[#faff69] text-[#242420] p-3 rounded-full shadow-lg opacity-0 invisible transition-all duration-300 font-medium">
548
+ <i class="fas fa-arrow-up"></i>
549
+ </button>
550
+
551
+ <script>
552
+ // Back to Top Button
553
+ const backToTopButton = document.getElementById('back-to-top');
554
+
555
+ window.addEventListener('scroll', () => {
556
+ if (window.pageYOffset > 300) {
557
+ backToTopButton.classList.remove('opacity-0', 'invisible');
558
+ backToTopButton.classList.add('opacity-100', 'visible');
559
+ } else {
560
+ backToTopButton.classList.remove('opacity-100', 'visible');
561
+ backToTopButton.classList.add('opacity-0', 'invisible');
562
+ }
563
+ });
564
+
565
+ backToTopButton.addEventListener('click', () => {
566
+ window.scrollTo({
567
+ top: 0,
568
+ behavior: 'smooth'
569
+ });
570
+ });
571
+
572
+ // Smooth scrolling for table of contents links
573
+ document.querySelectorAll('.toc-item a').forEach(anchor => {
574
+ anchor.addEventListener('click', function(e) {
575
+ e.preventDefault();
576
+
577
+ const targetId = this.getAttribute('href');
578
+ const targetElement = document.querySelector(targetId);
579
+
580
+ if (targetElement) {
581
+ window.scrollTo({
582
+ top: targetElement.offsetTop - 90,
583
+ behavior: 'smooth'
584
+ });
585
+
586
+ // Update URL without page reload
587
+ history.pushState(null, null, targetId);
588
+ }
589
+ });
590
+ });
591
+
592
+ // Lateral Menu Toggle
593
+ const menuToggle = document.getElementById('menuToggle');
594
+ const lateralMenu = document.getElementById('lateralMenu');
595
+ const menuOverlay = document.getElementById('menuOverlay');
596
+
597
+ menuToggle.addEventListener('click', () => {
598
+ lateralMenu.classList.toggle('active');
599
+ menuOverlay.classList.toggle('active');
600
+ document.body.classList.toggle('no-scroll');
601
+ });
602
+
603
+ menuOverlay.addEventListener('click', () => {
604
+ lateralMenu.classList.remove('active');
605
+ menuOverlay.classList.remove('active');
606
+ document.body.classList.remove('no-scroll');
607
+ });
608
+
609
+ // Close menu when clicking outside on desktop
610
+ document.addEventListener('click', (e) => {
611
+ if (window.innerWidth > 768 && !lateralMenu.contains(e.target) && e.target !== menuToggle) {
612
+ lateralMenu.classList.remove('active');
613
+ menuOverlay.classList.remove('active');
614
+ document.body.classList.remove('no-scroll');
615
+ }
616
+ });
617
+ </script>
618
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=wachynaky/mecagoenlos" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
619
+ </html>