Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Read by thought-leaders and decision-makers around the world. Phone Number: +1-650-246-9381 Email: pub@towardsai.net
228 Park Avenue South New York, NY 10003 United States
Website: Publisher: https://towardsai.net/#publisher Diversity Policy: https://towardsai.net/about Ethics Policy: https://towardsai.net/about Masthead: https://towardsai.net/about
Name: Towards AI Legal Name: Towards AI, Inc. Description: Towards AI is the world's leading artificial intelligence (AI) and technology publication. Founders: Roberto Iriondo, , Job Title: Co-founder and Advisor Works for: Towards AI, Inc. Follow Roberto: X, LinkedIn, GitHub, Google Scholar, Towards AI Profile, Medium, ML@CMU, FreeCodeCamp, Crunchbase, Bloomberg, Roberto Iriondo, Generative AI Lab, Generative AI Lab Denis Piffaretti, Job Title: Co-founder Works for: Towards AI, Inc. Louie Peters, Job Title: Co-founder Works for: Towards AI, Inc. Louis-François Bouchard, Job Title: Co-founder Works for: Towards AI, Inc. Cover:
Towards AI Cover
Logo:
Towards AI Logo
Areas Served: Worldwide Alternate Name: Towards AI, Inc. Alternate Name: Towards AI Co. Alternate Name: towards ai Alternate Name: towardsai Alternate Name: towards.ai Alternate Name: tai Alternate Name: toward ai Alternate Name: toward.ai Alternate Name: Towards AI, Inc. Alternate Name: towardsai.net Alternate Name: pub.towardsai.net
5 stars – based on 497 reviews

Frequently Used, Contextual References

TODO: Remember to copy unique IDs whenever it needs used. i.e., URL: 304b2e42315e

Resources

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

Publication

Is AI Becoming the Gatekeeper and Mouthpiece of Knowledge?
Latest   Machine Learning

Is AI Becoming the Gatekeeper and Mouthpiece of Knowledge?

Last Updated on July 17, 2023 by Editorial Team

Author(s): Building Blocks

Originally published on Towards AI.

AI vs. Human Expertise: The Growing Dependence on Machine-Provided Knowledge

Machines have been assisting humans in their day-to-day activities for a long time. So much so that we don’t even notice how ubiquitous they are and how reliant we are on them. I see you, Electrolux Pro Washing Machine U+1F601.

Elevating the efficiency of various industries, machines have displaced humans in many lines of work that are monotonous and/or physically intense. Think of machines in manufacturing plants, construction, and even fast food centers.

Every day, it becomes more evident that machines have and will continue to replace humans in tedious, repetitive, and physically intensive tasks.

https://www.youtube.com/embed/oJkQkr3Yy2Q

Automation comes with a lot of benefits. After all who can deny the benefits of having a reliable system that can carry out tasks that a human would have otherwise considered drudgerous or even dangerous? Not to mention the benefits it can bring to a business that doesn’t need to have employees around the clock.

Undoubtedly, one can argue that automation so has pushed more and more people to move towards careers that are more centered around knowledge, creativity, and other intangible human characteristics.

A new wave of automation that AI is fueling offers fresh challenges.

AI Disrupting Knowledge Workers

One huge advantage that humans have had over machines is their (am I an AI? U+1F61B) ability to learn new things, enabling us to acquire new skills and repurpose ourselves.

However, recent breakthroughs in generative-ai have shown that the capability of an AI isn’t necessarily limited to the sole task it was trained on. The emergent capabilities that we see in today’s generative models are quite broad, spanning multiple tasks. Moreover, if required, these models can be fine-tuned to niche down on an area of focus.

While today’s generative models have drawbacks such as spouting out false statements, can find establishing causation hard, having no access to real-time data, etc. We must remember that these are very early days for generative-ai, and technology can only get better.

We can establish that AI has started to challenge the monopoly that humans have had on tasks that center around knowledge.

Humans Aren’t Great Skeptics

Today’s AI needs to be actively supervised to validate the things it generates, especially in sensitive use cases. Here’s where we need to take a step back and ponder. Most of us have heard about the misgivings of these generative models, yet do we supervise/validate what they are telling us?

There seems to be something hypnotic about text generation models that makes them sound very trustworthy. I work as a programmer, and in the past couple of months, I’ve been regularly assisted by AI to code.

Generated Using Stable Diffusion: https://replicate.com/stability-ai/stable-diffusion

While I read what it generates and have an understanding of the code that it generates, I’m far from 100% sure that what it generates isn’t buggy. At an initial glance, the suggestions, more often than not, do seem correct. I don’t go through the tedious tasks of looking through the official documentation of every line of code that the AI-generated because the AI was built for the very reason of saving me time from doing so.

While I can’t speak for everyone else with certainty, my wager is that most people wouldn’t overly question what’s being generated unless they outright know that it’s false. Why else would there be botched demos from organizations like Google and Microsoft that have massive PR and Media teams around them?

We’ve already been living in an age of misinformation and fake news even before AI turned up. Showing that humans are pretty bad at choosing what they trust/believe, and AI has only added to this problem.

We can establish that humans aren’t that great at validating the veracity of the information provided to them.

Handing Over the Reigns

Soon every person can choose to have their own personalized AI co-pilot. We’re already seeing this phenomenon in action today, with plenty of people using AI to learn and understand new concepts.

A major advantage of using AI as a teacher is that, unlike teachers, it doesn’t have to divide its attention between a large number of students. Always ready to answer any questions (until that wretched message about the servers being too busy pops up again U+1F601) an eager student might have.

At an initial glance, this seems to be a great use of AI. Democratizing education and knowledge, after all, is a good thing, right?

However, the troubling thing is that we’re democratizing education by slowly making AI the gatekeeper and mouthpiece of knowledge.

AI is going to be standing in front of the door of all knowledge that we have available for consumption and is also going to be in control of what and how the knowledge leaves the door.

Generated Using Stable Diffusion: https://replicate.com/stability-ai/stable-diffusion

AI Takes Over Legacy Knowledge

As a species, we haven’t been that successful in preserving the knowledge that we’ve acquired over time, letting it erode with time. For example, to this day, we don’t know how pyramids were constructed.

In more recent times, the systems of a lot of different US state governments weren’t able to process unemployment claims during COVID-19 because they were running on legacy software that ran on COBOL, which is not taught in most schools in the world now.

Dealing with legacy code is nothing new in the world of software and it isn’t that uncommon for there to be only a handful of people in the entire company that know the codebase inside out.

This is another example of how organizations can start using AI. Rather than making new employees learn about the legacy codebase, they might as well use the enterprise offering of GitHub co-pilot to take over the reins of the legacy code. This is a win for employees, too, because most folks wouldn’t be interested in learning something outdated and not applicable elsewhere.

Soon instead of having at least a handful of employees who act as the gatekeepers of knowledge, they’ll have a single AI. Lo and behold, the keys to the door of knowledge have been handed away to AI. Anyone who now needs to work on this legacy codebase will be taught by an AI, and after a point of time, there might not even be a way to validate what is being taught because there are no human experts left at the company. There is no alternative to blindly trusting what the AI suggests.

Human Subject Experts Become a Rarity

Generated Using Stable Diffusion: https://replicate.com/stability-ai/stable-diffusion

Now one can make the case that AI might need to be the gatekeeper of aging knowledge that might not be as widely used anymore. People will still be motivated to acquire knowledge about the relevant things.

Would they, though?

Humans, like most other living organisms, are programmed to conserve energy. Most of us would jump at the chance to use a tool that can make our lives easier and expend less mental energy. Unlike humans, an AI never tires, feels lazy, etc. We’re already using AI to research topics instead of sifting through books, blogs, or articles.

The future of search is increasingly looking like an interactive chat based on recent announcements from Bing, Google, and a bunch of other applications like Perplexity.ai, Neeva, You, etc. This interface is simple, easy to use, and ubiquitous, making it more tempting to rely on.

In a lot of cases, humans try to acquire enough knowledge to just get the job done. Programmers copying code from Stackoverflow without having an idea of what it does isn’t just a joke and isn’t that rare of an event. While programming usually has guardrails thanks to writing test cases and your code being peer-reviewed, this might not be true in other industries.

In medicine, doctors more or less operate independently. If they start using AI for medical advice, there’ll be no one to scrutinize any decision the doctor takes based on the info that an AI provides.

All of this is to say that humans are not going to be as motivated to learn and acquire new knowledge, especially if they have a tool that can have a solution handed to them on a golden plate with very little cost involved. As someone who’s writing articles, I use Grammarly to edit my articles. I don’t bother learning about the nature of my grammatical mistakes and try to perfect my English.

While it may not matter if my grammar is perfect or not, it might matter if no human has a strong grasp of the grammatical concepts in English.

AI has also encroached upon more creative disciplines such as content creation, photography, music, etc. Having a solution available at one’s fingertips is going to take away the incentive for humans to truly learn a skill. We might soon live in a world where there are no human experts for a majority of disciplines, or they might become scarce resources.

Conclusion

  • Machines and Automation have been taking over repetitive, mundane, and/or physically involved tasks.
  • This has driven more and more people into knowledge-driven careers. The recent developments in AI mean that a machine can be trained to acquire the same knowledge.
  • Humans can evolve and grow their skills and knowledge over time, AI has also come to the stage where it can generalize and specialize across multiple domains.
  • Humans aren’t great at validating the truthfulness of the information provided to them. AI is increasingly turning into the conveyor of knowledge that we trust.
  • AI tools are accessible, cheap, and offer ready-made solutions to problems that can disincentivize people from mastering skills and becoming experts.
  • The shortage of human experts coupled with the accessibility of training custom AI models means that AI is slowly turning into the gatekeeper of knowledge and the mouthpiece that disseminates knowledge.

Some people might have the impression that this wouldn’t be a problem if we fix the problems of bias and hallucination that exist in AI models. While this may solve problems that arise because of false information, it doesn’t change that we are still relying heavily on machines for everything ranging from labor-intensive tasks to creative ones.

In this article, we weren’t trying to take sides on whether AI becoming the gatekeeper and mouthpiece of knowledge is good or bad. This is a topic for another day. Rather it is an attempt at bringing this huge challenge that we’ll face to light.

The next few years are going to be pivotal in determining if society is going to be co-piloted by AI or directed by AI.

Information and the narrative that it takes are what empower people, organizations, and states. Increasingly we are letting AI dictate the narrative and give information to us. It doesn’t matter if humans are the decision makers since a decision can be heavily influenced by the information and the narrative it is provided in.

Whether this is beneficial or detrimental to the human species is a question that no one can concretely answer. However, being prepared for such an eventuality can help us better handle some of the hurdles we’ll face.

Thanks for listening to our ramblings on this topic; please share any thoughts you have. This article has been edited with the help of AI.

Until the next time, take care and be kind.

Join thousands of data leaders on the AI newsletter. Join over 80,000 subscribers and keep up to date with the latest developments in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.

Published via Towards AI

Feedback ↓

Sign Up for the Course
`; } else { console.error('Element with id="subscribe" not found within the page with class "home".'); } } }); // Remove duplicate text from articles /* Backup: 09/11/24 function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag elements.forEach(el => { const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 2) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); */ // Remove duplicate text from articles function removeDuplicateText() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, strong'); // Select the desired elements const seenTexts = new Set(); // A set to keep track of seen texts const tagCounters = {}; // Object to track instances of each tag // List of classes to be excluded const excludedClasses = ['medium-author', 'post-widget-title']; elements.forEach(el => { // Skip elements with any of the excluded classes if (excludedClasses.some(cls => el.classList.contains(cls))) { return; // Skip this element if it has any of the excluded classes } const tagName = el.tagName.toLowerCase(); // Get the tag name (e.g., 'h1', 'h2', etc.) // Initialize a counter for each tag if not already done if (!tagCounters[tagName]) { tagCounters[tagName] = 0; } // Only process the first 10 elements of each tag type if (tagCounters[tagName] >= 10) { return; // Skip if the number of elements exceeds 10 } const text = el.textContent.trim(); // Get the text content const words = text.split(/\s+/); // Split the text into words if (words.length >= 4) { // Ensure at least 4 words const significantPart = words.slice(0, 5).join(' '); // Get first 5 words for matching // Check if the text (not the tag) has been seen before if (seenTexts.has(significantPart)) { // console.log('Duplicate found, removing:', el); // Log duplicate el.remove(); // Remove duplicate element } else { seenTexts.add(significantPart); // Add the text to the set } } tagCounters[tagName]++; // Increment the counter for this tag }); } removeDuplicateText(); //Remove unnecessary text in blog excerpts document.querySelectorAll('.blog p').forEach(function(paragraph) { // Replace the unwanted text pattern for each paragraph paragraph.innerHTML = paragraph.innerHTML .replace(/Author\(s\): [\w\s]+ Originally published on Towards AI\.?/g, '') // Removes 'Author(s): XYZ Originally published on Towards AI' .replace(/This member-only story is on us\. Upgrade to access all of Medium\./g, ''); // Removes 'This member-only story...' }); //Load ionic icons and cache them if ('localStorage' in window && window['localStorage'] !== null) { const cssLink = 'https://code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css'; const storedCss = localStorage.getItem('ionicons'); if (storedCss) { loadCSS(storedCss); } else { fetch(cssLink).then(response => response.text()).then(css => { localStorage.setItem('ionicons', css); loadCSS(css); }); } } function loadCSS(css) { const style = document.createElement('style'); style.innerHTML = css; document.head.appendChild(style); } //Remove elements from imported content automatically function removeStrongFromHeadings() { const elements = document.querySelectorAll('h1, h2, h3, h4, h5, h6, span'); elements.forEach(el => { const strongTags = el.querySelectorAll('strong'); strongTags.forEach(strongTag => { while (strongTag.firstChild) { strongTag.parentNode.insertBefore(strongTag.firstChild, strongTag); } strongTag.remove(); }); }); } removeStrongFromHeadings(); "use strict"; window.onload = () => { /* //This is an object for each category of subjects and in that there are kewords and link to the keywods let keywordsAndLinks = { //you can add more categories and define their keywords and add a link ds: { keywords: [ //you can add more keywords here they are detected and replaced with achor tag automatically 'data science', 'Data science', 'Data Science', 'data Science', 'DATA SCIENCE', ], //we will replace the linktext with the keyword later on in the code //you can easily change links for each category here //(include class="ml-link" and linktext) link: 'linktext', }, ml: { keywords: [ //Add more keywords 'machine learning', 'Machine learning', 'Machine Learning', 'machine Learning', 'MACHINE LEARNING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ai: { keywords: [ 'artificial intelligence', 'Artificial intelligence', 'Artificial Intelligence', 'artificial Intelligence', 'ARTIFICIAL INTELLIGENCE', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, nl: { keywords: [ 'NLP', 'nlp', 'natural language processing', 'Natural Language Processing', 'NATURAL LANGUAGE PROCESSING', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, des: { keywords: [ 'data engineering services', 'Data Engineering Services', 'DATA ENGINEERING SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, td: { keywords: [ 'training data', 'Training Data', 'training Data', 'TRAINING DATA', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, ias: { keywords: [ 'image annotation services', 'Image annotation services', 'image Annotation services', 'image annotation Services', 'Image Annotation Services', 'IMAGE ANNOTATION SERVICES', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, l: { keywords: [ 'labeling', 'labelling', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, pbp: { keywords: [ 'previous blog posts', 'previous blog post', 'latest', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, mlc: { keywords: [ 'machine learning course', 'machine learning class', ], //Change your article link (include class="ml-link" and linktext) link: 'linktext', }, }; //Articles to skip let articleIdsToSkip = ['post-2651', 'post-3414', 'post-3540']; //keyword with its related achortag is recieved here along with article id function searchAndReplace(keyword, anchorTag, articleId) { //selects the h3 h4 and p tags that are inside of the article let content = document.querySelector(`#${articleId} .entry-content`); //replaces the "linktext" in achor tag with the keyword that will be searched and replaced let newLink = anchorTag.replace('linktext', keyword); //regular expression to search keyword var re = new RegExp('(' + keyword + ')', 'g'); //this replaces the keywords in h3 h4 and p tags content with achor tag content.innerHTML = content.innerHTML.replace(re, newLink); } function articleFilter(keyword, anchorTag) { //gets all the articles var articles = document.querySelectorAll('article'); //if its zero or less then there are no articles if (articles.length > 0) { for (let x = 0; x < articles.length; x++) { //articles to skip is an array in which there are ids of articles which should not get effected //if the current article's id is also in that array then do not call search and replace with its data if (!articleIdsToSkip.includes(articles[x].id)) { //search and replace is called on articles which should get effected searchAndReplace(keyword, anchorTag, articles[x].id, key); } else { console.log( `Cannot replace the keywords in article with id ${articles[x].id}` ); } } } else { console.log('No articles found.'); } } let key; //not part of script, added for (key in keywordsAndLinks) { //key is the object in keywords and links object i.e ds, ml, ai for (let i = 0; i < keywordsAndLinks[key].keywords.length; i++) { //keywordsAndLinks[key].keywords is the array of keywords for key (ds, ml, ai) //keywordsAndLinks[key].keywords[i] is the keyword and keywordsAndLinks[key].link is the link //keyword and link is sent to searchreplace where it is then replaced using regular expression and replace function articleFilter( keywordsAndLinks[key].keywords[i], keywordsAndLinks[key].link ); } } function cleanLinks() { // (making smal functions is for DRY) this function gets the links and only keeps the first 2 and from the rest removes the anchor tag and replaces it with its text function removeLinks(links) { if (links.length > 1) { for (let i = 2; i < links.length; i++) { links[i].outerHTML = links[i].textContent; } } } //arrays which will contain all the achor tags found with the class (ds-link, ml-link, ailink) in each article inserted using search and replace let dslinks; let mllinks; let ailinks; let nllinks; let deslinks; let tdlinks; let iaslinks; let llinks; let pbplinks; let mlclinks; const content = document.querySelectorAll('article'); //all articles content.forEach((c) => { //to skip the articles with specific ids if (!articleIdsToSkip.includes(c.id)) { //getting all the anchor tags in each article one by one dslinks = document.querySelectorAll(`#${c.id} .entry-content a.ds-link`); mllinks = document.querySelectorAll(`#${c.id} .entry-content a.ml-link`); ailinks = document.querySelectorAll(`#${c.id} .entry-content a.ai-link`); nllinks = document.querySelectorAll(`#${c.id} .entry-content a.ntrl-link`); deslinks = document.querySelectorAll(`#${c.id} .entry-content a.des-link`); tdlinks = document.querySelectorAll(`#${c.id} .entry-content a.td-link`); iaslinks = document.querySelectorAll(`#${c.id} .entry-content a.ias-link`); mlclinks = document.querySelectorAll(`#${c.id} .entry-content a.mlc-link`); llinks = document.querySelectorAll(`#${c.id} .entry-content a.l-link`); pbplinks = document.querySelectorAll(`#${c.id} .entry-content a.pbp-link`); //sending the anchor tags list of each article one by one to remove extra anchor tags removeLinks(dslinks); removeLinks(mllinks); removeLinks(ailinks); removeLinks(nllinks); removeLinks(deslinks); removeLinks(tdlinks); removeLinks(iaslinks); removeLinks(mlclinks); removeLinks(llinks); removeLinks(pbplinks); } }); } //To remove extra achor tags of each category (ds, ml, ai) and only have 2 of each category per article cleanLinks(); */ //Recommended Articles var ctaLinks = [ /* ' ' + '

Subscribe to our AI newsletter!

' + */ '

Take our 85+ lesson From Beginner to Advanced LLM Developer Certification: From choosing a project to deploying a working product this is the most comprehensive and practical LLM course out there!

'+ '

Towards AI has published Building LLMs for Production—our 470+ page guide to mastering LLMs with practical projects and expert insights!

' + '
' + '' + '' + '

Note: Content contains the views of the contributing authors and not Towards AI.
Disclosure: This website may contain sponsored content and affiliate links.

' + 'Discover Your Dream AI Career at Towards AI Jobs' + '

Towards AI has built a jobs board tailored specifically to Machine Learning and Data Science Jobs and Skills. Our software searches for live AI jobs each hour, labels and categorises them and makes them easily searchable. Explore over 10,000 live jobs today with Towards AI Jobs!

' + '
' + '

🔥 Recommended Articles 🔥

' + 'Why Become an LLM Developer? Launching Towards AI’s New One-Stop Conversion Course'+ 'Testing Launchpad.sh: A Container-based GPU Cloud for Inference and Fine-tuning'+ 'The Top 13 AI-Powered CRM Platforms
' + 'Top 11 AI Call Center Software for 2024
' + 'Learn Prompting 101—Prompt Engineering Course
' + 'Explore Leading Cloud Providers for GPU-Powered LLM Training
' + 'Best AI Communities for Artificial Intelligence Enthusiasts
' + 'Best Workstations for Deep Learning
' + 'Best Laptops for Deep Learning
' + 'Best Machine Learning Books
' + 'Machine Learning Algorithms
' + 'Neural Networks Tutorial
' + 'Best Public Datasets for Machine Learning
' + 'Neural Network Types
' + 'NLP Tutorial
' + 'Best Data Science Books
' + 'Monte Carlo Simulation Tutorial
' + 'Recommender System Tutorial
' + 'Linear Algebra for Deep Learning Tutorial
' + 'Google Colab Introduction
' + 'Decision Trees in Machine Learning
' + 'Principal Component Analysis (PCA) Tutorial
' + 'Linear Regression from Zero to Hero
'+ '

', /* + '

Join thousands of data leaders on the AI newsletter. It’s free, we don’t spam, and we never share your email address. Keep up to date with the latest work in AI. From research to projects and ideas. If you are building an AI startup, an AI-related product, or a service, we invite you to consider becoming a sponsor.

',*/ ]; var replaceText = { '': '', '': '', '
': '
' + ctaLinks + '
', }; Object.keys(replaceText).forEach((txtorig) => { //txtorig is the key in replacetext object const txtnew = replaceText[txtorig]; //txtnew is the value of the key in replacetext object let entryFooter = document.querySelector('article .entry-footer'); if (document.querySelectorAll('.single-post').length > 0) { //console.log('Article found.'); const text = entryFooter.innerHTML; entryFooter.innerHTML = text.replace(txtorig, txtnew); } else { // console.log('Article not found.'); //removing comment 09/04/24 } }); var css = document.createElement('style'); css.type = 'text/css'; css.innerHTML = '.post-tags { display:none !important } .article-cta a { font-size: 18px; }'; document.body.appendChild(css); //Extra //This function adds some accessibility needs to the site. function addAlly() { // In this function JQuery is replaced with vanilla javascript functions const imgCont = document.querySelector('.uw-imgcont'); imgCont.setAttribute('aria-label', 'AI news, latest developments'); imgCont.title = 'AI news, latest developments'; imgCont.rel = 'noopener'; document.querySelector('.page-mobile-menu-logo a').title = 'Towards AI Home'; document.querySelector('a.social-link').rel = 'noopener'; document.querySelector('a.uw-text').rel = 'noopener'; document.querySelector('a.uw-w-branding').rel = 'noopener'; document.querySelector('.blog h2.heading').innerHTML = 'Publication'; const popupSearch = document.querySelector$('a.btn-open-popup-search'); popupSearch.setAttribute('role', 'button'); popupSearch.title = 'Search'; const searchClose = document.querySelector('a.popup-search-close'); searchClose.setAttribute('role', 'button'); searchClose.title = 'Close search page'; // document // .querySelector('a.btn-open-popup-search') // .setAttribute( // 'href', // 'https://medium.com/towards-artificial-intelligence/search' // ); } // Add external attributes to 302 sticky and editorial links function extLink() { // Sticky 302 links, this fuction opens the link we send to Medium on a new tab and adds a "noopener" rel to them var stickyLinks = document.querySelectorAll('.grid-item.sticky a'); for (var i = 0; i < stickyLinks.length; i++) { /* stickyLinks[i].setAttribute('target', '_blank'); stickyLinks[i].setAttribute('rel', 'noopener'); */ } // Editorial 302 links, same here var editLinks = document.querySelectorAll( '.grid-item.category-editorial a' ); for (var i = 0; i < editLinks.length; i++) { editLinks[i].setAttribute('target', '_blank'); editLinks[i].setAttribute('rel', 'noopener'); } } // Add current year to copyright notices document.getElementById( 'js-current-year' ).textContent = new Date().getFullYear(); // Call functions after page load extLink(); //addAlly(); setTimeout(function() { //addAlly(); //ideally we should only need to run it once ↑ }, 5000); }; function closeCookieDialog (){ document.getElementById("cookie-consent").style.display = "none"; return false; } setTimeout ( function () { closeCookieDialog(); }, 15000); console.log(`%c 🚀🚀🚀 ███ █████ ███████ █████████ ███████████ █████████████ ███████████████ ███████ ███████ ███████ ┌───────────────────────────────────────────────────────────────────┐ │ │ │ Towards AI is looking for contributors! │ │ Join us in creating awesome AI content. │ │ Let's build the future of AI together → │ │ https://towardsai.net/contribute │ │ │ └───────────────────────────────────────────────────────────────────┘ `, `background: ; color: #00adff; font-size: large`); //Remove latest category across site document.querySelectorAll('a[rel="category tag"]').forEach(function(el) { if (el.textContent.trim() === 'Latest') { // Remove the two consecutive spaces (  ) if (el.nextSibling && el.nextSibling.nodeValue.includes('\u00A0\u00A0')) { el.nextSibling.nodeValue = ''; // Remove the spaces } el.style.display = 'none'; // Hide the element } }); // Add cross-domain measurement, anonymize IPs 'use strict'; //var ga = gtag; ga('config', 'G-9D3HKKFV1Q', 'auto', { /*'allowLinker': true,*/ 'anonymize_ip': true/*, 'linker': { 'domains': [ 'medium.com/towards-artificial-intelligence', 'datasets.towardsai.net', 'rss.towardsai.net', 'feed.towardsai.net', 'contribute.towardsai.net', 'members.towardsai.net', 'pub.towardsai.net', 'news.towardsai.net' ] } */ }); ga('send', 'pageview'); -->