Computer-implemented method, computer program and computer system (providing tag suggestions for image in social media platforms)

By using a method that leverages image timestamps and geographical locations to identify connected social media members within a predefined distance, the challenges of resource-intensive facial recognition algorithms and failure to identify indirect contacts are addressed, resulting in efficient and accurate tag proposals for social media images.

JP2025043293APending Publication Date: 2025-03-28INTERNATIONAL BUSINESS MACHINE CORPORATION
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024151795
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-09-15
Filing Date
2024-09-03
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

Existing facial recognition comparison algorithms used in social media platforms are computationally complex and resource-intensive, and they fail to identify indirect contacts (friends of friends) shown in uploaded images.

Method used

A computer-implemented method that receives an image from a social media user, obtains the image's timestamp and geographical location, and identifies connected social media members within a predefined distance of the image capture location, providing these members as tagging suggestions.

Benefits of technology

This approach reduces the computational resources required for tagging suggestions by eliminating the need for complex facial recognition algorithms and allows for the identification of indirect contacts, enhancing the accuracy and efficiency of tag proposals.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025043293000001_ABST
    Figure 2025043293000001_ABST
Patent Text Reader

Abstract

To provide a computer-implemented method and program for providing tag suggestions for an image in a social media platform.SOLUTION: The computer-implemented method includes: receiving an image from a first user of a social media platform; obtaining a timestamp of the time the image was captured; obtaining a geographic location where the image was captured; identifying one or more members that are connected to the first user that were within a predefined distance of the geographic location at the time the image was captured; and providing a list of the one or more members to the first user as suggestions for tagging the image.SELECTED DRAWING: Figure 4
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates generally to social media platforms, and more specifically to providing tag suggestions for images on social media platforms. [Background technology]

[0002] Social media networks are often used to share images and photos. Often, after a user uploads an image to a social media platform, the user is presented with the option to tag the image. Tagging an image or photo involves linking another individual's name and associated social media profile to the image. A tag is essentially a clickable name that appears in the photo's caption. When a user rolls their cursor over a photo that includes tagged users, the user sees those users' names appear on the photo, often over their faces.

[0003] In many cases, when a user uploads an image to a social media platform, the social media platform identifies the faces of individuals depicted in the image and runs a facial recognition comparison algorithm between the faces of the user's direct contacts, i.e., friends, and the individuals depicted in the image. Based on the results of the facial recognition comparison algorithm, the social media platform provides tagging recommendations to the user. Summary of the Invention [Problem to be solved by the invention]

[0004] The resources required to run a facial recognition comparison algorithm increase as the number of a user's direct contacts, i.e., friends, increases. In addition, use of such facial recognition comparison algorithms fails to identify indirect contacts, i.e., friends of friends, depicted in uploaded images. [Means for solving the problem]

[0005] An embodiment of the present invention relates to a computer-implemented method for providing tag suggestions for an image on a social media platform, the computer-implemented method including receiving an image from a first user of a social media platform, obtaining a timestamp corresponding to when the image was captured, and obtaining a geographic location corresponding to where the image was captured, the method also including identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured, and providing the list of the one or more members to the first user as suggestions for tagging the image.

[0006] An embodiment of the present invention relates to a computer program product for providing tag suggestions for an image in a social media platform. The computer program product includes one or more computer readable storage media having computer readable program code collectively stored in the one or more computer readable storage media. The computer readable program code is executed by a processor of the computer system to cause the computer system to perform operations. The operations include receiving an image from a first user of a social media platform, obtaining a timestamp corresponding to when the image was captured, and obtaining a geographic location corresponding to where the image was captured. The operations also include identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured, and providing a list of the one or more members to the first user as suggestions for tagging the image.

[0007] An embodiment of the present invention relates to a computing system including a processor, a memory coupled to the processor, and one or more computer readable storage media coupled to the processor, the one or more computer readable storage media collectively comprising instructions for execution by the processor via the memory to cause the processor to perform operations, the operations including receiving an image from a first user of a social media platform, obtaining a timestamp corresponding to when the image was captured, and obtaining a geographic location corresponding to where the image was captured, the operations also including identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured, and providing the list of the one or more members to the first user as suggestions for tagging the image.

[0008] Further technical features and advantages are realized by the techniques of the present invention. Embodiments and aspects of the present invention are described in detail herein and are considered a part of the claimed subject matter. For a better understanding, reference is made to the detailed description and drawings. [Brief description of the drawings]

[0009] The particulars of the exclusive rights set forth herein are particularly pointed out and distinctly claimed in the claims at the end of the specification. The foregoing and other features and advantages of embodiments of the present invention will become apparent from the following detailed description when read in conjunction with the accompanying drawings.

[0010] [Figure 1] FIG. 1 is a schematic diagram of a computing environment in accordance with one or more embodiments of the present invention.

[0011] [Diagram 2] FIG. 1 is a block diagram illustrating a system for providing tag suggestions for images in a social media platform in accordance with one or more embodiments of the present invention.

[0012] [Diagram 3] FIG. 1 is a schematic diagram illustrating a membership network of a social media platform in accordance with one or more embodiments of the present invention.

[0013] [Figure 4] FIG. 1 is a flow diagram illustrating a computer-implemented method for providing tag suggestions for an image in a social media platform in accordance with one or more embodiments of the present invention.

[0014] [Diagram 5] FIG. 1 is a flow diagram illustrating a computer-implemented method for ordering a list of tag suggestions for an image in a social media platform in accordance with one or more embodiments of the present invention.

[0015] The drawings illustrated herein are exemplary. There may be many variations to the drawings or the operations described herein without departing from the spirit of the invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Additionally, the term "coupled" and variations thereof describe having a communication path between two elements, and do not imply a direct connection between them without an intervening element / connection between them. All of these variations are considered part of this specification. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0016] As described above, when a user uploads an image to a social media platform, the social media platform utilizes a facial recognition comparison algorithm to provide tagging recommendations to the user. The tagging recommendations are identified by comparing facial images of the user's direct contacts, i.e., friends, with the faces of individuals depicted in the uploaded image. Generally, such facial recognition comparison algorithms are computationally complex and require significant computing power to execute. The resources required to execute the facial recognition comparison algorithm increase as the number of the user's direct contacts, i.e., friends, increases. In addition, the use of such facial recognition comparison algorithms fails to identify indirect contacts, i.e., friends of friends, depicted in the uploaded image.

[0017] An embodiment of the present invention relates to a computer-implemented method for providing tag suggestions for an image on a social media platform. The computer-implemented method includes receiving the image from a first user of the social media platform, obtaining a timestamp corresponding to when the image was captured, and obtaining a geographic location corresponding to where the image was captured. The method also includes identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured, and providing the list of the one or more members to the first user as suggestions for tagging the image. One technical benefit of utilizing timestamp and location data to generate tagging suggestions for images is that it eliminates the need for computationally complex facial recognition algorithms.

[0018] Additionally or alternatively, in embodiments of the present invention, a member of the social media platform is determined to be connected to the first user based on an existing direct relationship between the first user and the member. As a result, the speed of identifying tagging suggestions can be improved by reducing the number of records that need to be compared with image timestamps and geographic locations.

[0019] Additionally or alternatively, in embodiments of the present invention, a member of the social media platform is determined to be connected to the first user based on an existing indirect relationship between the first user and the member, and as a result, the number of tagging suggestions may be increased by considering indirectly related members of the social media platform.

[0020] Additionally or alternatively, in embodiments of the invention, the list is an ordered list of the one or more members, where the order is determined based on the geographic location and the distance between each of the one or more members at the time the image was captured. As a result, tagging suggestions may be presented such that the most likely candidates are presented to the user first.

[0021] Additionally or alternatively, in embodiments of the invention, the order is further determined based on a degree of separation between the first user and each of the one or more members. As a result, tagging suggestions may be presented such that the most likely candidates are presented to the user first.

[0022] Additionally or alternatively, in embodiments of the present invention, at least one of the timestamp and the geographic location is obtained from metadata of the image. As a result, communication between a social media platform and a user device is reduced, which may result in faster completion of generation of a list of tagging suggestions.

[0023] Additionally or alternatively, in an embodiment of the present invention, at least one of the timestamp and the geographic location is obtained by querying a device used by the first user to submit the image to the social media platform, resulting in increased reliability of the timestamp data and location data.

[0024] Additionally or alternatively, in embodiments of the invention, the social media platform is configured to periodically obtain the locations of electronic devices associated with each of the members of the social media platform, such that the social media platform can create and maintain a membership location history that is utilized to facilitate generating tagging suggestions.

[0025] Additionally or alternatively, in embodiments of the invention, the social media platform is configured to delete the locations of the electronic device associated with each of the members of the social media platform a certain period of time after the location of the electronic device was obtained, thereby preventing the size of the membership location history from becoming too large.

[0026] Various aspects of the disclosure are described by way of text, flow charts, block diagrams of computer systems, and / or block diagrams of machine logic included in embodiments of computer program products (CPPs). For any flow chart, depending on the technology involved, operations may be performed in a different order than that shown in a given flow chart. For example, again depending on the technology involved, two operations shown in successive flow chart blocks may be performed in reverse order, as a single integrated step, simultaneously, or in an at least partially overlapping manner in time.

[0027] A computer program product embodiment ("CPP embodiment" or "CPP") is a term used in this disclosure to describe any set of one or more storage media (also referred to as "media") collectively contained in a set of one or more storage devices that collectively contain machine-readable code corresponding to instructions and / or data for performing computer operations specified in a given CPP claim. A "storage device" is any tangible device that can hold and store instructions for use by a computer processor. The computer-readable storage medium may be, but is not limited to, an electronic storage medium, a magnetic storage medium, an optical storage medium, an electromagnetic storage medium, a semiconductor storage medium, a mechanical storage medium, or any suitable combination of the foregoing. Some known types of storage devices that include these media include diskettes, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanically encoded devices (such as punch cards or pits / lands formed on the major surface of a disk), or any suitable combination of the foregoing. A computer-readable storage medium, as the term is used in this disclosure, is not to be construed as storage in the form of a transitory signal per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide, light pulses passing through fiber optic cables, electrical signals transmitted through wires, and / or other transmission media. As one skilled in the art will appreciate, data is typically moved at some infrequent time during normal operation of the storage device, such as during access, defragmentation, or garbage collection, but the above does not render the storage device transitory since the data is not transitory while it is stored.

[0028] The computing environment 100 includes an example of an environment for execution of at least some of the computer code involved in performing the method of the invention, such as providing tag suggestions for images in a social media platform (block 150). In addition to block 150, the computing environment 100 includes, for example, a computer 101, a wide area network (WAN) 102, an end user device (EUD) 103, a remote server 104, a public cloud 105, and a private cloud 106. In this embodiment, the computer 101 includes a processor set 110 (including processing circuitry 120 and cache 121), a communication fabric 111, a volatile memory 112, a persistent storage 113 (including an operating system 122 and block 150, as identified above), a peripheral device set 114 (including a user interface (UI), a device set 123, storage 124, and an Internet of Things (IoT) sensor set 135), and a network module 115. The remote server 104 includes a remote database 132. The public cloud 105 includes a gateway 130, a cloud orchestration module 131, a set of host physical machines 142, a set of virtual machines 143, and a set of containers 144.

[0029] Computer 101 may take the form of a desktop computer, a laptop computer, a tablet computer, a smartphone, a smartwatch or other wearable computer, a mainframe computer, a quantum computer, or any other type of computer or mobile device now known or later developed that is capable of executing a program, accessing a network, or querying a database, such as remote database 132. As is well understood in the field of computer technology, and depending on the technology, execution of a computer-implemented method may be distributed among multiple computers and / or among multiple locations. However, in this description of computing environment 100, for purposes of brevity as much as possible, the detailed discussion focuses on a single computer, specifically computer 101. Although computer 101 is not shown in the cloud in FIG. 1, it may be located in the cloud. However, computer 101 is not required to be in the cloud except to any extent that may be categorically indicated.

[0030] Processor set 110 includes one or more computer processors of any type now known or later developed. Processing circuitry 120 may be distributed across multiple packages, e.g., multiple tailored integrated circuit chips. Processing circuitry 120 may implement multiple processor threads and / or multiple processor cores. Cache 121 is memory located within the processor chip package and is typically used for data or code that should be available for fast access by threads or cores executing on processor set 110. Cache memory is typically organized into multiple levels depending on relative proximity to the processing circuitry. Alternatively, some or all of the cache for a processor set may be located "off-chip." In some computing environments, processor set 110 may be designed to operate with qubits and perform quantum computing.

[0031] Computer readable program instructions are typically loaded onto the computer 101 to cause the processor set 110 of the computer 101 to execute a sequence of operational steps, thereby realizing a computer-implemented method, such that the instructions so executed instantiate the method specified in the flowcharts and / or descriptions of the computer-implemented methods contained herein (collectively, the "methods of the present invention"). These computer readable program instructions are stored in various types of computer readable storage media, such as cache 121 and other storage media discussed below. The program instructions and associated data are accessed by the processor set 110 to control and direct the execution of the methods of the present invention. In the computing environment 100, at least some of the instructions for executing the methods of the present invention may be stored in block 150 in persistent storage 113.

[0032] Communications fabric 111 is the signal-conducting pathways that allow various components of computer 101 to communicate with one another. Typically, this fabric is made of switches and conductive pathways, such as switches and conductive pathways that make up buses, bridges, physical input / output ports, etc. Other types of signal communication pathways may be used, such as fiber optic and / or wireless communication pathways.

[0033] Volatile memory 112 may be any type of volatile memory now known or later developed. Examples include dynamic random access memory (RAM) or static RAM. Typically, volatile memory is characterized by random access, although this is not required unless expressly indicated. In computer 101, volatile memory 112 is located in a single package and is internal to computer 101, although alternatively or additionally, volatile memory may be distributed across multiple packages and / or be external to computer 101.

[0034] Persistent storage 113 is any form of non-volatile storage for a computer, now known or later developed. The non-volatility of this storage means that the stored data is maintained regardless of whether power is supplied to computer 101 and / or to persistent storage 113 directly. Persistent storage 113 can be read-only memory (ROM), but typically at least a portion of persistent storage allows data to be written, data to be deleted, and data to be rewritten. Some well-known forms of persistent storage include magnetic disks and solid-state storage devices. Operating system 122 may take several forms, such as various known proprietary operating systems, or open source Portable Operating System Interface type operating systems that utilize a kernel. The code contained in block 150 typically includes at least some of the computer code involved in carrying out the method of the present invention.

[0035] The peripheral device set 114 includes a set of peripheral devices of the computer 101. Data communication connections between the peripheral devices and other components of the computer 101 may be implemented in various ways, such as Bluetooth connections, Near Field Communication (NFC) connections, connections formed by cables (such as Universal Serial Bus (USB) type cables), insertion type connections (e.g., Secure Digital (SD) cards), connections formed through local area communication networks, and even connections formed through wide area networks such as the Internet. In various embodiments, the UI device set 123 may include components such as display screens, speakers, microphones, wearable devices (such as goggles and smart watches), keyboards, mice, printers, touch pads, game controllers, and haptic devices. The storage 124 is external storage, such as an external hard drive, or insertable storage, such as an SD card. The storage 124 may be persistent and / or volatile. In some embodiments, the storage 124 may take the form of a quantum computing storage device for storing data in the form of qubits. In embodiments where computer 101 is required to have a large amount of storage (e.g., where computer 101 stores and manages a large database locally), this storage may be provided by peripheral storage devices designed to store very large amounts of data, such as a storage area network (SAN) shared by multiple, geographically distributed computers. IoT sensor set 135 is made up of sensors that may be used in Internet of Things applications. For example, one sensor may be a thermometer and another sensor may be a motion detector.

[0036] The network module 115 is a collection of computer software, hardware, and firmware that enables the computer 101 to communicate with other computers over the WAN 102. The network module 115 may include hardware such as a modem or Wi-Fi® signal transceiver, software for packetizing and / or depacketizing data for communication network transmission, and / or web browser software for communicating data over the Internet. In some embodiments, the network control and network forwarding functions of the network module 115 are performed on the same physical hardware device. In other embodiments (e.g., those that utilize Software-Defined Networking (SDN)), the control and forwarding functions of the network module 115 are performed on physically separate devices such that the control function manages several different network hardware devices. Computer readable program instructions for carrying out the methods of the present invention may be downloaded to the computer 101 from an external computer or external storage device, typically via a network adapter card or network interface included in the network module 115.

[0037] WAN 102 is any wide area network (e.g., the Internet) capable of communicating computer data over non-local distances by any technology now known or later developed for communicating computer data. In some embodiments, the WAN may be replaced and / or supplemented by a local area network (LAN) designed to communicate data between devices located in a local area, such as a Wi-Fi network. WANs and / or LANs typically include computer hardware such as copper transmission cables, optical transmission fiber, wireless transmission, routers, firewalls, switches, gateway computers, and edge servers.

[0038] End-user device (EUD) 103 is any computer system used and controlled by an end user (e.g., a customer of the enterprise that operates computer 101) and may take any of the forms described above in connection with computer 101. EUD 103 typically receives useful and useful data from the operation of computer 101. For example, in the hypothetical case where computer 101 is designed to provide recommendations to the end user, the recommendations would typically be communicated from network module 115 of computer 101 over WAN 102 to EUD 103. In this manner, EUD 103 may display or otherwise present the recommendations to the end user. In some embodiments, EUD 103 may be a client device such as a thin client, a heavy client, a mainframe computer, a desktop computer, and the like.

[0039] Remote server 104 is any computer system that provides at least some data and / or functionality to computer 101. Remote server 104 may be controlled and used by the same entity that operates computer 101. Remote server 104 represents a machine that collects and stores useful data that is useful for use by other computers, such as computer 101. For example, in the hypothetical case where computer 101 is designed and programmed to provide recommendations based on historical data, this historical data may be provided to computer 101 from a remote database 132 of remote server 104.

[0040] Public cloud 105 is any computer system available for use by multiple entities that provides on-demand availability of computer system resources and / or other computer functions, particularly data storage (cloud storage) and computing power, without direct active management by users. Cloud computing typically leverages resource sharing to achieve coherence and economies of scale. Direct active management of computing resources of public cloud 105 is performed by computer hardware and / or software of cloud orchestration module 131. Computing resources provided by public cloud 105 are typically implemented by virtual computing environments running on various computers that make up host physical machine set 142 computers within and / or available in public cloud 105, a universe of physical computers. Virtual computing environments (VCEs) typically take the form of virtual machines from virtual machine set 143 and / or containers from container set 144. It is understood that these VCEs can be stored as images and can be transferred among and between various hosts of physical machines, either as images or after instantiation of the VCEs. Cloud orchestration module 131 manages the transfer and storage of images, deploys new instantiations of VCE, and manages active instantiations of VCE deployments. Gateway 130 is a collection of computer software, hardware, and firmware that enables public cloud 105 to communicate over WAN 102.

[0041] Some further description of Virtualized Computing Environments (VCEs) is now provided. A VCE may be stored as an "image." A new active instance of a VCE may be instantiated from an image. Two well-known types of VCEs are virtual machines and containers. A container is a VCE that uses operating system level virtualization. This refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances, called containers. These isolated user space instances typically behave as real computers from the perspective of the programs running within them. A computer program running on a normal operating system may utilize all of the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container may only use the contents of the container and of the devices assigned to the container, a feature known as containerization.

[0042] A private cloud 106 is similar to a public cloud 105, except that the computing resources are available only for use by a single enterprise. Although the private cloud 106 is shown as being in communication with the WAN 102, in other embodiments, the private cloud may be completely disconnected from the Internet and accessible only through a local / private network. A hybrid cloud is a composite of multiple clouds of different types (e.g., types of private, community, or public clouds), often each implemented by a different vendor. Each of the multiple clouds remains a separate, discrete entity, but the larger hybrid cloud architecture is bound together by standardized or proprietary technologies that enable orchestration, management, and / or data / application portability between the constituent clouds. In this embodiment, both the public cloud 105 and the private cloud 106 are part of a larger hybrid cloud.

[0043] One or more embodiments described herein may utilize machine learning techniques, for example, to perform prediction and / or classification tasks. In one or more embodiments, the machine learning functions may be implemented using artificial neural networks (ANNs) that have the ability to be trained to perform functions. In machine learning and cognitive science, ANNs are a family of statistical learning models inspired by biological neural networks, particularly the brains of animals. ANNs may be used to estimate or approximate systems and functions that depend on a large number of inputs. Convolutional Neural Networks (CNNs) are a class of deep, feed-forward ANNs that are particularly useful in tasks such as, but not limited to, analyzing visual images and natural language processing (NLP). Recurrent Neural Networks (RNNs) are another class of deep, feed-forward ANNs that are particularly useful in tasks such as, but not limited to, unsegmented connected handwriting recognition and speech recognition. Other types of neural networks are also known and may be used in accordance with one or more embodiments described herein.

[0044] ANNs can be embodied as so-called "neuromorphic" systems of interconnected processor elements that act as simulated "neurons" and exchange messages "between each other in the form of electronic signals. Similar to the so-called "plasticity" of synaptic neurotransmitter connections that carry messages between biological neurons, connections in an ANN that carry electronic messages between simulated neurons are provided with numerical weights that correspond to the strength or weakness of a given connection. The weights can be adjusted and tuned based on experience to allow the ANN to adapt to the input and learn. For example, an ANN for handwritten character recognition is defined by a set of input neurons that can be activated by pixels of an input image. After being weighted and transformed by a function determined by the designer of the network, the activation of these input neurons is passed on to other downstream neurons, often referred to as "hidden" neurons. This process is repeated until an output neuron is activated. The activated output neuron determines which character has been input.

[0045] A container is a VCE that uses operating system level virtualization. It refers to an operating system feature where the kernel allows the existence of multiple isolated user space instances called containers. These isolated user space instances normally behave as real computers from the perspective of the programs running in them. A computer program running on a normal operating system may utilize all the resources of that computer, such as connected devices, files and folders, network shares, CPU power, and quantifiable hardware capabilities. However, a program running inside a container can only use the contents of the container and of the devices assigned to the container; this feature is known as containerization.

[0046] 2, a block diagram illustrating a system 200 for providing tag suggestions for images in a social media platform is shown, in accordance with one or more embodiments of the present invention. As shown, the system 200 includes a plurality of user devices 210 in communication with a social media platform 220 via a communication network 205. The communication network 205 may include one or more private networks, a public network (such as the Internet), or a combination of both public and private networks. In an exemplary embodiment, the social media platform 220 is embodied in a computer 101, such as that shown in FIG. 1. In an exemplary embodiment, the plurality of user devices 210 may include a tablet, a smartphone, a personal computer, or the like.

[0047] In an exemplary embodiment, each user device 210 includes a camera 216 configured to capture images and a memory 217 configured to store the captured images. In one embodiment, the user device 210 includes a processor 219 configured to generate metadata for each image captured by the camera 216 and store the metadata with the image in the memory 217. In one embodiment, the metadata is attached to the image file of the captured image in memory. The metadata may include a geographic location of the user device 210 obtained from a location sensor 214, such as a Global Positioning System (GPS) sensor. The metadata may also include a timestamp indicating the date and time the camera 216 of the user device 210 captured the image. The user device 210 also includes a user interface 218, such as a touch screen display, to facilitate operation of the user device 210.

[0048] In an exemplary embodiment, each user device 210 also includes a social media application 212 configured to communicate with a social media platform 220. Among other functions, the social media application 212 is configured to allow a user to upload images to the social media platform 220. Once a user uploads an image to the social media platform 220 via the social media application 212, the social media application 212 is configured to retrieve a list of tagging suggestions from the social media platform 220 and present the list to the user via the user interface 218. The social media application 212 is then configured to receive tagging selections from the user via the user interface. The tagging selections are received by the social media application 212 and then provided to the social media platform 220, which applies the selected tags to the image stored by the social media platform 220.

[0049] In an exemplary embodiment, social media platform 220 includes a membership network 222, a member location history 224, and a tag suggestion engine 226. In an exemplary embodiment, membership network 222 is a structured graph that includes nodes representing members of social media platform 220 and edges representing connections between members of social media platform 220.

[0050] In an exemplary embodiment, member location history 224 is a data structure configured to store geographic location data for each member of social media platform 220. In an exemplary embodiment, social media application 212 is configured to periodically obtain the location of user device 210 via location sensor 214 and provide the location of user device 210 to social media platform 220. Social media platform 220 is configured to store the received location data in member location history 224. In an exemplary embodiment, social media platform 220 is configured to automatically delete the location data in member location history 224 after a predetermined period of time. For example, in one embodiment, social media platform 220 is configured to only store one week of the member's location history on the social media platform. As a result, member location history 224 is continually updated by adding newly received location data and deleting older location data.

[0051] In an exemplary embodiment, the tag suggestion engine 226 is configured to generate a list of tag suggestions for an image uploaded to the social media platform 220 by the user device 210. In one embodiment, the tag suggestion engine 226 is configured to obtain a timestamp corresponding to when the uploaded image was captured and a geographic location of the user device 210 at the time the uploaded image was captured. In one embodiment, the timestamp and location data are obtained from metadata included in the uploaded image. In another embodiment, the tag suggestion engine 226 is configured to communicate with the social media application 212 to obtain the timestamp and location data from the user device.

[0052] The tag suggestion engine 226 is configured to generate a list of tag suggestions for images uploaded to the social media platform 220 by comparing the timestamp and location data of the uploaded image with the member location history 224 to identify members of the social media platform 220 who were within a predetermined distance from the location of the user device 210 at the time the uploaded image was captured. In an exemplary embodiment, the predetermined distance is a parameter set by an administrator of the social media platform 220. In one embodiment, the predetermined distance may be approximately 50 feet.

[0053] In an exemplary embodiment, once members of the social media platform 220 who were within a predetermined distance from the location of the user device 210 at the time the uploaded image was captured are identified, the tag suggestion engine 226 is configured to determine a degree of connection between the member associated with the user device and the identified members. The degree of connection represents the strength of the connection between two members of the social media platform and is obtained based on the membership network 222. In one embodiment, a first degree connection exists between two members who are directly connected to each other (i.e., the two members are friends of each other). Similarly, a second degree connection exists between two members who are not directly connected to each other but share one or more common connections (i.e., the two members are friends of a friend). In an exemplary embodiment, the tag suggestion engine 226 is configured to order the list of tag suggestions based at least in part on the degree of connection between the member associated with the user device 210 and the identified members who were within the predetermined distance.

[0054] 3, a schematic diagram illustrating a membership network of a social media platform 300 in accordance with one or more embodiments of the present invention is shown. As shown, the membership network 300 of the social media platform includes a number of nodes, each corresponding to a member 302-1 through 302-10, collectively referred to herein as members 302, each connected to at least one another by an edge 304. Each edge 304 represents a direct connection between two members 302. For example, member 302-1 is directly connected to member 304-4, in other words, member 302-1 has a first degree connection with member 304-4. Similarly, member 302-1 is indirectly connected to member 304-2, in other words, member 302-1 has a second degree connection with member 304-2.

[0055] 4, a flow diagram is shown illustrating a computer-implemented method 400 for providing tag suggestions for an image in a social media platform in accordance with one or more embodiments of the present invention. In an exemplary embodiment, the method 400 is performed by a social media platform 220, such as that shown in FIG.

[0056] At block 402, the method 400 begins by receiving an image from a first user of the social media platform. Next, the method 400 includes obtaining a timestamp corresponding to when the image was captured, as shown at block 404. At block 406, the method 400 includes obtaining a geographic location corresponding to where the image was captured. In an exemplary embodiment, the image provided by the first user to the social media platform includes metadata including the timestamp and the geographic location. In other embodiments, the timestamp and geographic location are obtained by the social media platform via a social media application installed on a user device associated with the first user. In some embodiments, the social media platform is configured to verify the geographic location of the image by comparing the timestamp corresponding to the image with the location of the first user obtained from the member location history 224.

[0057] As shown in block 408, the method 400 also includes identifying one or more members of a social media platform connected to the first user who were within a predefined distance of a geographic location at the time the image was captured. In one embodiment, the members of the social media platform are determined to be connected to the first user based on an existing direct relationship between the first user and the members. In another embodiment, the members of the social media platform are determined to be connected to the first user based on an existing indirect relationship between the first user and the members. The method 400 also includes providing a list of one or more members to the first user as suggestions for tagging the image, as shown in block 410. In an exemplary embodiment, the list is an ordered list of one or more members, where the order is determined based at least in part on the distance between each of the one or more members and the geographic location at the time the image was captured. In one embodiment, the order of the list is further determined based on the degree of separation between the first user and each of the one or more members.

[0058] 5, a flow diagram illustrates a computer-implemented method 500 for ordering a list of tag suggestions for an image in a social media platform in accordance with one or more embodiments of the present invention. In an exemplary embodiment, the method 500 is performed by a social media platform 220, such as that shown in FIG.

[0059] At block 502, the method 500 may include determining a predefined distance (D) between the social media platform and the geographic location of the first user at the time the image was captured. max In one embodiment, the method includes obtaining a list of members who were within a predefined distance (D max ) is set by the administrator of the social media platform. For example, maxThe distance between the first user and each member on the list may be 50 feet. Next, as shown in block 504, the method 500 includes identifying a degree (Deg.) of connection between the first user and each member on the list. The method 500 also includes determining the distance (Deg.) between the location of each member on the list and the first user at the time the image was captured, as shown in block 506. act ) as shown in block 508. Next, the method 500 includes calculating a tag suggestion score for each of the members on the list based on the degree of connection and the distance. In one embodiment, the tag suggestion score is calculated as (1 / Deg.)-(D act / D max ) where .8 is the tag suggestion score calculated based on 1 / 1-(10 / 50), and .1 is the tag suggestion score calculated based on 1 / 2-(20 / 50). In an exemplary embodiment, other methods for calculating the tag suggestion score may also be used. Method 500 concludes at block 510 by providing an ordered list of one or more members to the first user in descending order based on their tag suggestion scores.

[0060] Various embodiments of the present invention are described herein with reference to the associated drawings. Alternative embodiments of the present invention may be devised without departing from the scope of the present invention. Various connection and positional relationships (e.g., above, below, adjacent, etc.) are described between elements in the following description and drawings. These connections and / or positional relationships may be direct or indirect unless otherwise specified, and the present invention is not intended to be limited in this respect. Thus, couplings between entities may refer to direct or indirect couplings, and positional relationships between entities may be direct or indirect positional relationships. Also, various tasks and process steps described herein may be combined into a more comprehensive procedure or process having additional steps or functions not described in detail herein.

[0061] The following definitions and abbreviations may be used for interpretation of the claims and the specification. As used herein, the terms "comprises," "comprising," "includes," "including," "has," "having," "contains," or "containing," or any other variation thereof, are intended to cover a non-exclusive inclusion. For example, a complex, mixture, process, method, article, or device that includes a list of elements is not necessarily limited to only those elements, but may include other elements not expressly listed or inherent to such complex, mixture, process, method, article, or device.

[0062] Additionally, the term "exemplary" is used herein to mean "serving as an example, instance, or illustration." Any embodiment or design described herein as "exemplary" is not necessarily to be construed as preferred or advantageous over other embodiments or designs. The terms "at least one" and "one or more" may be understood to include any integer greater than or equal to one, i.e., 1, 2, 3, 4, etc. The term "plurality" may be understood to include any integer greater than or equal to two, i.e., 2, 3, 4, 5, etc. The term "connection" may include both indirect and direct "connections."

[0063] The terms "about," "substantially," "approximately," and variations thereof are intended to include the degree of error associated with measurement of a particular quantity based on equipment available at the time of the filing of this application. For example, "about" can include a range of ±8%, or 5%, or 2% of a given value.

[0064] The description of various embodiments of the present invention is presented for illustrative purposes, and is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used in this specification is selected to best explain the principles of the embodiments, practical applications of the technology found in the market, or technical improvements thereto, or to enable others skilled in the art to understand the embodiments described herein.

Claims

1. 1. A computer-implemented method for providing tag suggestions for an image in a social media platform, the computer-implemented method comprising: receiving the image from a first user of the social media platform; obtaining a timestamp corresponding to the time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured; and providing the list of one or more members to the first user as suggestions for tagging the image. A computer-implemented method comprising:

2. The computer-implemented method of claim 1 , wherein the member of the social media platform is determined to be connected to the first user based on an existing direct relationship between the first user and the member.

3. The computer-implemented method of claim 1 , wherein the member of the social media platform is determined to be connected to the first user based on an existing indirect relationship between the first user and the member.

4. 2. The computer-implemented method of claim 1, wherein the list is an ordered list of the one or more members, where the order of the ordered list is determined based on the geographic location and the distance between each of the one or more members at the time the image was captured.

5. The computer-implemented method of claim 4 , wherein the order is further determined based on a degree of separation between the first user and each of the one or more members.

6. The computer-implemented method of claim 1 , wherein at least one of the timestamp and the geographic location is obtained from metadata of the image.

7. 2. The computer-implemented method of claim 1, wherein at least one of the timestamp and the geographic location is obtained by querying a device used by the first user to submit the image to the social media platform.

8. The computer-implemented method of claim 1 , wherein the social media platform is configured to periodically obtain locations of electronic devices associated with each of the members of the social media platform.

9. 10. The computer-implemented method of claim 8, wherein the social media platform is configured to delete the location of the electronic device associated with each of the members of the social media platform a period of time after the location of the electronic device was obtained.

10. On your computer system: receiving an image from a first user of the social media platform; obtaining a timestamp corresponding to the time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured; and providing the list of one or more members to the first user as suggestions for tagging the image. A computer program that executes the following:

11. The computer program product of claim 10 , wherein the member of the social media platform is determined to be connected to the first user based on an existing direct relationship between the first user and the member.

12. The computer program product of claim 10 , wherein the member of the social media platform is determined to be connected to the first user based on an existing indirect relationship between the first user and the member.

13. 11. The computer program product of claim 10, wherein the list is an ordered list of the one or more members, and wherein the order of the ordered list is determined based on the geographic location and the distance between each of the one or more members at the time the image was captured.

14. The computer program product of claim 13 , wherein the order is further determined based on a degree of separation between the first user and each of the one or more members.

15. The computer program product of claim 10 , wherein at least one of the timestamp and the geographic location is obtained from metadata of the image.

16. 11. The computer program product of claim 10, wherein at least one of the timestamp and the geographic location is obtained by querying a device used by the first user to submit the image to the social media platform.

17. The computer program product of claim 10 , wherein the social media platform is configured to periodically obtain locations of electronic devices associated with each of the members of the social media platform.

18. 20. The computer program product of claim 17, wherein the social media platform is configured to delete the location of the electronic device associated with each of the members of the social media platform a period of time after the location of the electronic device was obtained.

19. Processor; a memory coupled to the processor; and one or more computer-readable storage media coupled to the processor; 1. A computer system comprising: receiving an image from a first user of the social media platform; obtaining a timestamp corresponding to the time when the image was captured; obtaining a geographic location corresponding to where the image was captured; identifying one or more members of the social media platform connected to the first user who were within a predefined distance of the geographic location at the time the image was captured; and providing the list of one or more members to the first user as suggestions for tagging the image.

20. A computer system comprising: instructions that, collectively, are executable by the processor via the memory to cause the processor to perform operations comprising:

20. 20. The computer system of claim 19, wherein the member of the social media platform is determined to be connected to the first user based on an existing direct relationship between the first user and the member.