Abstract
//Artificial technologies are advancing so fast that they are now used in many mainstream applications. The growing numbers of smarter AI raises concern in their effectiveness of making autonomous decision. Understanding the traveling salesman problem will help locate some issues within modern AI technology use by big companies like YouTube. YouTube uses AI to moderate and control the types of videos that shows up to the user. Evaluating its algorithm reveals that the system have certain flaws YouTube is ignoring. Self-driving cars are another hot topic that use AI to make important decisions. How does an AI determine which decision is better than the others and is it morally right? As technology extends human tasks, it is important to evaluate inseparable scenarios between humans and machine.
var Route = (function() { function distance(p1, p2){ return Math.sqrt((p1.x-p2.x)*(p1.x-p2.x) + (p1.y-p2.y)*(p1.y-p2.y)); } //As technology advances, AI become a more integral part of everyday life. AI technologies are now used in many mainstream applications. All mobile devices, for example, have some form of intelligent personal assistants on them such as Siri, Cortana, and Google. These AIs are embedded with various artificial technologies such as natural language processing, smart searches, intelligent interface, and recommendation systems. The growing numbers of smarter AI and their autonomous decision making raises some questions for optimization. These questions fall under the topic of graph theory. function clean(points) { return points. filter( function (n) { return n !== null && n !== undefined; }); } function checkLineIntersection (line1Start, line1End, line2Start, line2End) { //Graph theory is not simply just the study graphs; “it is the sub-field of mathematics concerned with networks of points connected by lines.” Graphs are important for representing mathematical structures that model relations between objects. It is one of the most useful tool in the branches of mathematics and computer science for visualizing data and modeling real world systems. Within graph theory lies a certain interest for problems that deals with finding the best path on a graph. A well-known problem is the traveling salesman problem “which continues to attract the attention of many researchers because of its applications in routing data, products, and people.” Knowing more about traveling salesman problem(TSP) will help us identify underlying issues within artificial intelligent systems like YouTube and self-driving cars. var a, b, numerator1, numerator2, denominator = ( (line2End.y - line2Start.y) * (line1End.x - line1Start.x) ) //According to the authors of The Traveling Salesman Problem and Its Variations, solving the TSP is to find a routing of a salesman who starts from a home location, visits a prescribed set of cites and returns to the original location in such a way that the total distance travelled is minimum and each city is visited exactly once. - ( (line2End.x - line2Start.x) * (line1End.y - line1Start.y) ); //The studying of TSP began in the mid-nineteenth century with Irish Mathematician Sir William Rowan Hamilton and by the British Mathematician Thomas Penyngton Kirkman. Hamilton created the Icosian Game, a mathematical game that required players to find a Hamiltonian cycle along the edges of a dodecahedron. The Hamiltonian cycle is a path within a graph that visits every vertex only once. TSP was not officially recognized until it was studied and redefined by Dr. Karl Menger, Professor of Mathematics at the Illinois Institute of Technology, in the 1930s. if (denominator == 0) { return false; } //TSP seems easy to understand but it is much more difficult to solve. The formula for calculating the number of routes through given cities is (n-1)!/2 where n represents the number of cities. Given a small amount of cities we could easily identify, from the results, which is the most optimal routes. For example, five cites yields (5-1)!/2 giving us 12 possible routes. Unfortunate, a problem arises when we introduce larger numbers into the equation. Modern computers cannot go through all possibilities that TSP produce. Finding the most optimal route between just 11 cities yields 1,814,400 possibilities to search through. a = line1Start.y - line2Start.y; //TSP is one of the most intensely studied problems in computational mathematics and yet no effective solution method is known for the general case. The TSP is an NP-complete problem, meaing that cannot be solved in a reasonable amount of time due to the extreme number of cases. Anyone who is able to solve the TSP would be able to fetch a $1,000,000 prize from the Clay Mathematics Institute, a mathematical non-profit foundation. b = line1Start.x - line2Start.x; //Far from being just a mathematical curiosity, the TSP has many practical applications. Scientists have been finding ways to optimize the process in logistics and social networking. Delivery companies like UPS and FedEx need to constrain the numbers of trucks they have for every delivery route. UPS has a driving system, designed by their programmers and software engineers, that encourage drivers to make less left turns to save time. Another application is music production and distribution. There is an artist named Jason who use to produce new music using graph theory. He also used common industry applications like MySQL and PHP to create his musical score based on pieces that people enjoyed; the web application is called graph theory. The application forms a community that comes together to write electronic music. numerator1 = ((line2End.x - line2Start.x) * a) - ((line2End.y - line2Start.y) * b); //With a more understand about the TSP, we will further discuss its similarities to AI recommendation systems used today in online platforms like YouTube. numerator2 = ((line1End.x - line1Start.x) * a) - ((line1End.y - line1Start.y) * b); //YouTube's recommendations system, which is part of google, is comprised of two neural networks: one for candidate generation and one for ranking. “The candidate generation network takes events from the user’s YouTube activity history as input and retrieves a small subset(hundreds) of videos from a large corpus.” The algorithm tries its best to deconstruct its audience by paying attention to things like: what they do or don’t watch, how much time they spend watching, likes and dislike, and feedbacks. During the development phase, Google uses offline metrics to test for performance but the final decision on whether the algorithm should be implemented comes from A/B testing. a = numerator1 / denominator; b = numerator2 / denominator; //As stated by Scott W. H. Young, A/B testing is the term used for randomly experimenting with a control variable (A) and an experiment variable (B) for the purpose of statistically testing a hypothesis. Applying A/B testing to online sites, “it is the process of testing and comparing two similar versions (A and B) of one or more web/mobile pages to determine which ones perform better and produce better conversion rates-which can include sales, hits, leads, and click-throughs-among randomly sampled, but similar, visitors.” if (a > 0 && a < 1) { return true; } else if (b > //Having a recommended list of videos require a way to distinguish which one should show up in front of others. The ranking network “assigns a score to each video according to a desired objective function using a rich set of features describing the video and user. The highest scoring videos are presented to the user, ranked by their score.” According to Google, “the two-stage approach to recommendation allows YouTube to make recommendations from millions of videos while still being certain that the small number of videos appearing on the devices are personalized and engaging for the user.” 0 && b < 1) { return true; } return false; } //On their creator’s site, YouTube stated that its goal is to get people to watch more videos that they enjoy so that they comes back to YouTube regularly. An issue with this is that YouTube is closing their users in a bubble and preventing them from experiencing new content and variety across their huge platform. At the moment, YouTube’s AI technology is not advance enough to determine what we want to watch. Instead, it is basically showing us videos relevant to other videos we already seen. A post on reddit titled Why is Youtube's recommendation system so bad? (submitted on August January 2017) shared different perspectives and experiences with YouTube. Here are some comments from the post: function Route(points) { if (points instanceof Array) { this.points = points; } else { this.points = []; } //“Came here to post about this. It's terrible, like bucket loads of recommendations for the same type of video I've only watched a couple of times. It used to be really good but now I feel like I can't discover new content because I'm just being bombarded with the same stuff daily….” this.distance = null; this.points = clean(this.points); this. updateDistance(); } //“I'm pretty sure "Not interested" doesn't do anything. I've been clicking this thing on certain videos like Overwatch, old Marvel and DC animations, old pokemon videos etc etc and they still seem to be popping up on my recommendations. I haven't been able to find videos I'm actually interested in through recommendations in weeks and since I used to use the feature a lot to find new interesting videos this seems pretty abysmal.” Route.prototype = { clone: function() { var route = new Route(this.points. slice(0)); route.distance = this.distance + 0; return this; }, //Similar to TSP, YouTube is incapable of showing every individual search result without slowing down people’s computers so its algorithm prioritizes certain videos over others. How does one keep him or herself from ending up on the bottom of the list or buried in the middle of the scrap pile? Most if not all users rarely spend their time going through the different page results to find the video they are looking for. What happens when someone’s video is on page 20? YouTube’s advice to their creator is simply to do their best in making their videos stand out; offering advice from editing titles to having eye catching thumbnails. In plain English, everyone is on his or her own. Is technology advance enough to let an AI determine and rank the hierarchy videos that appear on the screen? How does it determine if a video is creative or not when this kind of thing is subjective? As stated above, the YouTube algorithm looks for engagement: contents watched, time spent watching, likes and dislikes etc. It is unfair to judge a video simply by just looking at its surrounding activity. shuffleClone: function() { //What does this mean for artist and the distribution of their creative content? Newcomers to the exiting platform will have a harder time establishing a fan/subscriber base because they are less known. YouTube’s system punishes creators of smaller channels making it harder for them to promote themselves. Its algorithm favors larger channels that have already established a good standing. These issues have been lingering for a while now and it is only going to get worse as the platform expands. var array = this.points.slice(0); idea. shuffle(array); return new Route(array); }, //Optimization problems in AI technology also exist in many places other than YouTube. Advances in technology have allowed for self-driving cars to become a reality. While self-driving cars bring amazing opportunities for the public, the safety rules pose a challenge. updateDistance: function() { < var sum = 0, points = this.points, //Self-driving cars have a number of benefits that may enhance our lives. Because of the extensive technology implemented in self-driving cars, the accurate readings have virtually eliminated driving errors for test cars on the road. The calculations read how far the car is from an object, the speed, the conduct of other cars on the road, and the location. These calculations beat the errors humans make while on the road when in control. point, previousPoint = points[0], i = 1, max = points.length; //Because error-free cars are in control on the road, they are rarely involved in accidents (at least in the sample test they’ve had so far). Their ability to reduce traffic jams comes from the superiority that these cars have to communicate with the cars around them, as well as the exact calculations to avoid colliding into other cars. The ability to have a self-driving car can be a help in high populated cities if parking is unavailable; the car can simply drop the person off and circle the block until he or she is ready to go. sum += distance(points[points.length - 1], points[0]); for(;i < max; i++) { //There might be some drawbacks even in the most exciting of technology. Self-driving cars are possible, thanks to the technology embedded into them, but this tech is all currently excessively expensive. Usually technology becomes cheaper the longer it exists and is obtainable by the public, so sooner or later self-driving cars may be affordable by anyone. point = points[i]; sum += distance(previousPoint, point); previousPoint = point; } //Furthermore, the licensing infrastructure is not yet in place for self-driving cars to be able to be driven among us. The manufactures may say that they are safe, but it is up to public institutions to keep everyone safe and make sure these cars perform as publicized. They also need to carefully investigate if there could be a potential for greater pollution at hand. The ability to go watch a movie at the theater and leave your car idling, if it isn’t electric, could increase the emissions to an already cripple environment. this.distance = Math.round(sum); return this; }, //Lastly, using a self-driving car means a third party would ultimately have the opportunity to track your movement and location. Because the car would be sharing data with central points, our location could be available to people or groups who could hack into the car’s system. distances: function() { var distances = [], points = this.points, point, previousPoint = points[0], //Self-driving cars have the potential to be the next big technological advancement in humanity as we know it in the future. Increased efficiency, relaxation time, and possibly the abolition of danger while driving have the prospective to improve our lives greatly. Nevertheless, before they are available to the public, they need to be approved as safe and privacy considerations need to be solved. Nonetheless, self-driving cars bring remarkable emerging innovation that we should be inspecting vigilantly. i = 1, max = points.length; //People have become more and more familiar with using Artificial Intelligence everyday whether we know it or not. Over the past few decades, technology has made leaps and bounds in comparison to what it once used to be. We now have “smart” technology such as smart phones and smart TVs that can do much more than the products that came before them. With these new products becoming more and more prevalent in society, we have become more and more comfortable using them. distances. push( distance(points[points.length - 1], points[0])); for(;i < max; i++) { point = points[i]; distances. push( distance(previousPoint, point)); previousPoint = point; } //One of the first steps humanity has taken towards becoming more ingrained with technology is using machines and robots instead of using humans for certain jobs. As Truitt explains in his article Singularity - Are We There Yet? he states that “... robots… were things that were touted as making auto assembly lines more efficient.” At the time, the machines were used to decrease production time and increase profit for the projects they were used for. Truitt also explains that another new machine used during that time was the ATM, which solved the problem of having to do banking during normal weekday hours. Instead, people could exchange cash at whatever time was convenient, which made banking much easier for the public to do. The question that remains is whether we can let artificial intelligence work with us as efficiently and as often as we use simpler machines today. return distances; }, flatten: function() { var points = this.points, point, distances = this. distances(), distance, i = 0, max = points.length, flat = []; //One way in which we are using artificial intelligence today is with new autonomous security robots. These robots patrol around designated and have cameras and sensors that can pick up criminal activity. These same type of robots with basic sensors and cameras are also used at an airport in Seoul. One of the robots, the Airport Guide Robot, “...is in place to interact with passengers. It can understand four languages -- Korean, English, Chinese and Japanese -- thanks to LG's voice recognition software. It can tell you where a restaurant is located or escort late passengers straight to their gate with a quick boarding pass scan.” for (; i < max; i++) { distance = distances[i]; point = points[i]; flat. push(point.x); flat. push(point.y); flat. push(distance); } //One other robot is also present at the airport, the Cleaning Robot. The cleaning robot “...is in place to make sure the airport stays tidy by monitoring the areas that need the most frequent cleaning…” Both of these robots use a very minimal amount of artificial intelligence, such as using sensors and programs to determine when something needs to be cleaned or when passengers need help. They provide a service that is much cheaper than hiring a janitor or a guide to complete. These robots are the first step to letting machines become even more ingrained into our everyday life and activities. In a fascinating article written by Jamais Cascio he states that there are four possible scenarios to becoming even more intertwined than we already are with machines and artificial intelligence. return flat; }, anyPoint: function() { var points = this.points, i = Math.floor( Math.random() * (points.length - 1)); //The first scenario is called Virtual Worlds, where people would become so immersed in virtual environments to the point that they spend most of their time in there instead of reality. This virtual use Artificial Intelligence to further interact with us, such as using in video games to control characters, change scenery in a virtual environment, and react to players actions. return points[i]; }, intersectCount: function() { var points = this.points, line1Start, line1End, line2Start, line2End, i = 0, j, sum = 0, max = points.length; //The second scenario is called Mirror Worlds, a concept that mimics our world as it is now, but includes much more data that is accessible in an instant. This mirror of our world as it is now includes data which before could not be delivered so readily. It makes us much more intelligent and quicker with results. This data may also be captured with Artificial Intelligence to bring us faster and more reliable news. for (; i < max;) { line1Start = points[i++]; line1End = points[i++]; j = 0; for (; j < max; i++) { line2Start = points[j++]; line2End = points[j++]; //The third scenario is one that has been developing and which is already taking place, called Augmented Reality. In this world, like the Mirror World, data is much more readily available but also viewable on a day to day life where before one might have needed a separate screen to view the data being displayed. In this world, data is all around the viewer and visible instantly because it is displayed at all times on all subjects. Artificial Intelligence could take this information and provide it at the correct moment in order to warn the viewer about oncoming obstacles or news that could be of vital importance at the moment; examples include the alert of traffic accidents and other scenarios that may need to be avoided at the current time. if (line2Start === line1Start || line2Start === line1End) continue; if (line2End === line1Start || line2End === line1End) continue; if ( checkLineIntersection(line1Start, line1End, line2Start, line2End)) { sum++; } } } //The fourth and final scenario is lifelogging, or as Cascio also refers to it as the “participatory panopticon.” This is also something developing in today’s society, with the constant monitoring of everyone through security cameras, computer cameras, and smart phone cameras. People are already participating voluntarily in this scenario today, with the emergence of SnapChat and Instagram. As stated above, Youtube is using an algorithm already that shows content to certain viewers, and perhaps hide content from others. Everyone is already taking photos and recording everything they do, which makes the process of monitoring anyone in the world easier to a user or a program with the right access and permissions. return sum; } }; Route.createRandom = function(settings) { var count = settings.count, width = settings.width, height = settings.height, points = [], point, i = 0; //These four scenarios show how Artificial Intelligence and machinery are becoming more and more a part of our everyday lives. Some of this integration may seem too personal and intrusive, but it is our reality that we are slowly developing toward. We as a species are getting more advanced with the technology we create, and we are designating parts of our lives to Artificial Intelligence and machines whether we realize what we are doing, or maybe do not realize but accept in order to move forward with new technology and innovation. for(;i < count; i++) { point = { x: Math.floor( Math.random() * width), y: Math.floor( Math.random() * height) }; points. push(point); } return new Route(points); }; return Route; })();
End of Essay.
Thanks for reading.
PDF version with sources
Doc version with sources
Our project is an extension of the TSP example from idea.js. Find more info on github: here