Generating and applying embeddings for accommodation items
By generating vectors in an embedding space using user review data to adjust positions based on sentiment and frequency, the challenge of generating relevant search results is addressed, enhancing user satisfaction in travel-related search engines.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- EXPEDIA INC
- Filing Date
- 2024-06-27
- Publication Date
- 2026-06-30
Smart Images

Figure 2026521370000001_ABST
Abstract
Description
Technical Field
[0001] Background Art Computing devices have become ubiquitous with computing networks and play an important role in how individuals gather information and complete purchases. For example, a user can interact with network-based information services via their personal computing device to search for, review, and share details about items the user is interested in. This extends to when a user purchases a desired product from a network-based retailer. Due to the diversity of these network-based services, users can easily perform these tasks at their own pace and convenience from home or the office.
[0002] Due to the wide range of information available online, network-based services provide users with the ability to search for specific information by submitting structured or unstructured queries. However, one limitation of these queries is that they cannot reliably generate relevant results, often because they cannot fully understand the user's intent. For example, a user may search for "accommodation near the beach". In this scenario, a network-based service may not be able to infer from the query text whether the user is interested in all accommodation near the beach or if the user prefers a certain type of beach. Additionally, a network-based service may struggle to understand the contextual definition of "beach" from the user's perspective. Thus, simply executing the query as is is likely to generate a significant amount of information that is not relevant to the user, leading to a decrease in user satisfaction with the network-based service and, as a result, a decrease in the user's use of the network-based service.
[0003] The following drawings and related descriptions are provided to illustrate embodiments of the present disclosure and do not limit the scope of the claims. The aspects of the present disclosure and many associated advantages will be more readily apparent when read in conjunction with the accompanying drawings and the following detailed description, so as to make the present disclosure better understood. [Brief explanation of the drawing]
[0004] [Figure 1] This is a schematic block diagram of an exemplary network environment in which network-based travel services may operate, according to various aspects of this disclosure. [Figure 2] This is a block diagram of exemplary components of an embedding generation system according to various aspects of the present disclosure. [Figure 3] This is an exemplary diagram illustrating exemplary embedded spaces in various aspects of the present disclosure. [Figure 4] This is a flowchart for creating or updating vectors for embedded spaces according to various aspects of this disclosure. [Figure 5] This is an exemplary block diagram illustrating an example of generating vectors for accommodation items and conceptual information according to various aspects of the present disclosure. [Figure 6] This flowchart illustrates an example of how user-submitted search queries are processed in various aspects of this disclosure. [Figure 7] This block diagram shows exemplary computing system components that can be used to implement the various systems and methods described herein. [Modes for carrying out the invention]
[0005] The aspects of this disclosure relate to generating and utilizing vectors (e.g., within an embedded space) so as to preserve correlation information between accommodation items (e.g., lodging, lodging with breakfast, etc.) and various concepts (e.g., travel-related), with the aim of facilitating the improvement of the performance of travel-related systems such as travel-related search engines.
[0006] In some aspects as used herein, the embedding space is an n-dimensional coordinate system, where n is the number of dimensions of the embedding space. For example, machine learning algorithms may generally treat each of the n dimensions as a distinct "feature," i.e., a value compared to other distinct values for correlations that indicate a given output. As the number of features of a machine learning model (e.g., neural networks, models, algorithms, learning functions, etc.) increases, the complexity of the machine learning model also increases.
[0007] An embedding space allows for the specification of machine-readable representations (embeddings) as vectors, where each vector represents something in the real world (e.g., thoughts, feelings, objects, etc.). Each point in the embedding space (e.g., represented by a vector) has an n-dimensional position with n-dimensional coordinates, where the distance between two points or sets of vectors indicates the relationship between the two points. For example, the distance can be measured using one or more similarity measures from the dot product, cosine similarity, dot product, Euclidean distance, or other similar functions. Positions or coordinates in the embedding space can represent correlations in a wide variety of abstract dimensions. However, while correlations may be relatively easy for humans to identify, representing or communicating those correlations to machines can be difficult. For example, "boat" and "ship" are easily recognizable as having a strong correlation, but representing this correlation to a machine (e.g., a computer) without a mathematical representation of the concept is difficult. Therefore, by generating a first vector representing the concept "boat" and a second vector representing the concept "ship," and assigning close n-dimensional positions in the embedding space to the first and second vectors, it becomes possible to represent their strong relationship / correlation to a machine. Thus, in this example, the closer the two vectors are in n-dimensional space, the stronger their correlation, and the farther the two vectors are from each other in n-dimensional space, the weaker their correlation. Furthermore, as the correlation between concepts becomes more complex and the dimensionality of the comparison increases, humans may no longer be able to identify or clarify any relationship, making it essential to compare such concepts with machine learning algorithms, as further described herein as examples.
[0008] In some embodiments, vectors are typically generated using embeddings, a process in machine learning. For example, embeddings involve training a machine learning model (e.g., an artificial neural network, a learning function, or other deep learning model) to encode defining characteristics of input data into vectors having locations in the embedding space. In some embodiments, an embedding system may use user review data or review data (e.g., corresponding to accommodation items) to generate a first set of vectors in the embedding space representing accommodation items (also referred to as “accommodation item vectors”) and a second set of vectors representing concepts or conceptual information (also referred to herein as “concept vectors”). Concepts (e.g., represented by concept vectors) may be important to the user and may include concepts such as “swimming” or “pool”. For example, conceptual information may include not only the concepts themselves but also additional information about relevant concepts included in the review data, such as statistics on the frequency of occurrence of the concepts in the review data and statistics on the frequency of occurrence for each accommodation item being reviewed.
[0009] User review data or review data (e.g., hotel reviews) incorporates human-level knowledge of the relationships between accommodation items and concepts. Conceptual information may be included in the review data as part of individual reviews. For example, a user may describe an accommodation item in a review in relation to one or more concepts. Furthermore, sentiment information, similarly expressed in individual reviews of the review data, can further clarify the relationship between any particular concept and at least one accommodation item. For example, assuming a user review that says, "Regarding Hotel 1, the pool is good, and the beach is bad," a review analysis system may extract "Hotel 1" as the accommodation item, "beach" and "pool" as concepts, and "good" and "bad" as sentiments. The expression "Regarding Hotel 1, the pool is good..." may add a positive connotation or sentiment to the concept "pool" associated with Hotel 1, while in contrast, the expression "Regarding Hotel 1, ...the beach is bad" may add a negative connotation or sentiment to the concept "beach" associated with Hotel 1. In some embodiments, identified positive and negative semantics may be reflected in the input data used to train a machine learning model to generate vectors. For example, semantics may be used to label the input data. Once semantics or sentiments have been processed, for example, a conceptual vector representing "pool" may be adjusted (e.g., by adjusting its corresponding coordinates) to be closer to the accommodation item vector representing "accommodation 1" in the embedding space (due to the positive semantics or sentiments between the two expressed in the review), and a conceptual vector representing "beach" may be adjusted to be further away from the accommodation item vector representing "accommodation 1" in the embedding space (due to the negative semantics or sentiments between the two expressed in the review).
[0010] Different reviews may result in different adjustments (e.g., or no adjustments) to the coordinates corresponding to concept vectors and / or accommodation item vectors in the embedding space, or the addition of new accommodation item vectors and / or concept vectors. For example, by repeating the described adjustment process, which updates or adjusts vectors based on numerous reviews, a machine learning model may generate an embedding space with vectors representing a wide variety of concepts and accommodation items. In some embodiments, the generated embedding space may also indicate or represent relationships other than those explicitly captured in the reviews. For example, since there is a shared space for all identified concepts and all identified accommodation items (e.g., referenced in user reviews or captured through other data collection methods), the adjustment process may bring the first accommodation item vector and the first concept vector closer to each other, even if a user review for a first accommodation item corresponding to a first accommodation item does not discuss a first concept corresponding to a first concept vector (e.g., this is because two separate movement operations based on data individually associated with each item move them to similar positions in the embedding space). Similarly, related concepts may move closer to each other (e.g., through their individual movements) even if they are not mentioned in the same user review.
[0011] Once an embedding space is generated, the machine can leverage its representation of knowledge to improve performance, for example, by providing more relevant search results in response to user queries. In some embodiments, to respond to a user query, the search system may first identify one or more concepts in the query. The search system may then identify these concepts in the embedding space and extract a list of accommodation items that are close to the concept(s) in the embedding space (for example, based on the distance in space determined by the coordinates of each item in space). For example, the distance may be measured using one or more similarity measures from the dot product, cosine similarity, dot product, Euclidean distance, or other similar functions. The identified accommodation items may then be returned as search results in response to the user query. As an example, referring to the example described above, a user query "accommodations with a pool" may return accommodation 1 based on the machine's understanding that accommodation 1 is positively associated with the concept of a pool (for example, in this case, the accommodation item vector corresponding to accommodation 1 is located near the concept vector corresponding to "pool" in the embedding space).
[0012] The generation of embedded spaces using the described systems and methods reflects improvements to network-based service systems such as travel-related systems or travel-related search engines. This is because the described systems and methods make it possible to learn relational information between concepts and accommodation items directly from users (e.g., through review data). As discussed above, for example, each review in the review data may contain one or more of the following: accommodation items(s), concepts(s), and sentiment(s). By iterating through review data to generate embedded spaces, it becomes possible to develop an understanding of how various concepts relate to accommodation items, depending on the user. Across large amounts of data, user opinions can also be a reliable predictor of how users will react in the future, and this understanding can be used to improve travel-related services such as travel-related search.
[0013] The aforementioned and other aspects of this disclosure are described herein with respect to certain examples, embodiments, and aspects, which are intended to be illustrative rather than limiting. The examples, embodiments, and aspects described herein focus on specific calculations and algorithms for illustrative purposes, but those skilled in the art will understand that the examples are illustrative and not intended to limit.
[0014] I. Exemplary Network and / or Operating Environment Figure 1 is a schematic block diagram of an exemplary network environment 100 on which a network-based travel service may operate in various aspects of this disclosure. In some embodiments, the environment 100 may be configured to receive or accept user-submitted queries and then provide results that align with each user's intent determined from each query. The network environment 100 includes user devices 102, accommodation item databases 104, third-party review services 106, and a travel service system 108, all of which communicate with each other via a network 110. The travel service system 108 may include various hardware and software components and may provide various functions, as further described herein.
[0015] In various embodiments, communication between various components of the exemplary network environment 100 may be achieved via any suitable device, system, and / or method. For example, the travel service system 108 may communicate with user devices 102, accommodation item databases 104, and / or third-party review services 106 via network 110 or any other wired or wireless network, method (e.g., Bluetooth, WiFi, infrared, and / or cellular), and / or any combination of the foregoing. As will be further described below, network 110 may include, for example, one or more internal or external networks, and / or the Internet.
[0016] Further details and examples of embodiments, operations, and functions of various components of the travel service system 108 and the exemplary environment 100 are described herein with reference to various figures.
[0017] a. Network Network 110 may include any suitable network, including wired networks, wireless networks, or a combination thereof. For example, Network 110 may be a personal area network, a local area network, a wide area network, a cable network, a satellite network, a cellular network, or a combination thereof. As a further example, Network 110 may be a publicly accessible network of linked networks operated by various different parties, such as the Internet. Protocols and components for communicating over the Internet or any other type of communication network are well known to those skilled in the art of computer communications and therefore do not need to be described in further detail herein. In various embodiments, Network 110 may be a private or semi-private network, such as an intranet of a company or university. Network 110 may include one or more wireless networks, such as a Global System for Mobile Communications (GSM) network, a Code Division Multiple Access (CDMA) network, a Long-Term Evolution (LTE) network, a C-band, mmWave, sub-6GHz, or any other type of wireless network. Network 110 may use protocols and components for communicating over the Internet or any of the other aforementioned types of networks. For example, the protocols used in network 110 may include the Hypertext Transfer Protocol (HTTP), HTTP Secure (HTTPS), Message Queue Telemetry Transport (MQTT), and / or Constrained Application Protocol (CoAP). Protocols and components for communication over the Internet or any of the aforementioned types of communication networks are well known to those skilled in the art of computer communications and therefore do not need to be described in further detail herein.
[0018] In various embodiments, network 110 may represent a network that is local to a particular organization, such as a private or semi-private network, like an intranet of a company or university. In some embodiments, devices (e.g., travel service system 108 and / or user devices) may communicate through network 110 without passing through an external network such as the Internet. In some embodiments, devices connected through network 110 may be blocked from accessing the Internet. For example, network 110 may not be connected to the Internet. Therefore, for example, a user device 102 may communicate with the travel service system 108 directly (via wired or wireless communication) or through network 110 without using the Internet. Thus, even if network 110 or the Internet is down, the travel service system 108 may continue to communicate and function via direct communication (and / or through network 110).
[0019] b. Exemplary user devices User device(s) 102 may, exemplary, correspond to any computing device that provides a means for a user or administrator to interact with another device (e.g., a travel service system 108, a third-party review service(s) 106, a lodging item database(s) 104, etc.). For example, a user may use user device(s) 102 to browse lodgings, reserve or book lodging items, and / or write reviews related to lodging items. Naturally, other activities may also be performed by the user using user device(s) 102. User device(s) 102 may include a user interface or dashboard that connects the user to a machine, system, or device. In various embodiments, user device(s) 102 may include a computer device with a display and a mechanism for user input (e.g., a mouse, keyboard, voice recognition, and / or a touchscreen). In various embodiments, user device(s) 102 may include a desktop, tablet, e-reader, server, wearable device, laptop, smartphone, computer, game console, etc. In some embodiments, a user device(s) 102 may access the cloud provider network via the network 110 to make its own data and computing resources visible or manageable, as well as to use websites and / or applications hosted by the cloud provider network. Elements of the cloud provider network may also act as clients of other elements of that network. Thus, user device(s) 102 can generally refer to any device that accesses a network-accessible service as a client of that service.
[0020] c. Accommodation item database The accommodation item database(s) 104 includes, by way of example, accommodation item attributes (e.g., physical address, information regarding amenities, business hours, etc.). In some embodiments, the accommodation item database(s) 104 may be accessible to a user through one or more online services (e.g., website(s), application(s), API(s), etc.) that connect the accommodation item (e.g., hotel, bed and breakfast, etc.) via a network 110 or the like. For example, in some embodiments, there may be a mobile application that is connected to a first accommodation item database (e.g., 104) and operated by the administrator / owner of the first accommodation item to provide accommodation item attributes of that individual accommodation item to potential customers. The mobile application may enable a user to submit a review (e.g., review data) of the first accommodation item, which may then be stored in the first accommodation item database. And the review data associated with the first accommodation item may be accessed by the travel service system 108 (e.g., through the network 110).
[0021] d. Third-Party Review Service The third-party review service(s) 106 provides review data to the travel service system 108. For example, in some embodiments, a first third-party review service may operate the accommodation item database(s) 104. Additionally or alternatively, the third-party review service may aggregate review data from one or more accommodation item database(s) 104 and provide the aggregated review data to the travel service system 108.
[0022] In some embodiments, a second third-party review service (e.g., 106) may provide an online platform for a user to provide, write, or submit reviews regarding one or more accommodation items. For example, in some embodiments, a user may provide, write, or submit first review data regarding "Accommodation A", "Accommodation B", and "Accommodation C". The first review data may then be provided to the travel service system 108 (e.g., through the network 110). For example, the first travel service (e.g., the travel service system 108) may retrieve, receive, or extract review data from one or more databases (e.g., the accommodation item database(s) 104) belonging to or operated by at least one third party.
[0023] e. Travel service system Within the environment 100, the travel service system 108 operates to generate embeddings for (1) accommodation items and (2) concepts within an embedding space. The travel service system 108 may include one or more of the following sub-components: a review analysis system 114, an accommodation information database 112, an embedding system 116, a vector database 118, and a search system 120. Also, the travel service system 108 and / or one or more of the corresponding sub-components described may be implemented as a separate system (e.g., on one or more computing systems having one or more processors and one or more memories), or as part of another system implementing one or more of the sub-components (e.g., and in some cases, other sub-components or systems not described herein).
[0024] In some embodiments, the travel service system 108 operates or hosts a mobile application and / or website that sells or markets accommodation items and / or related travel items, services, or activities. In some embodiments, users may provide the travel service system 108 with reviews of accommodation items (e.g., review data) (e.g., by submitting them to a travel website). In some embodiments, review data may be accessed, retrieved, purchased, etc., by the travel service system 108 (e.g., from an accommodation item database 104, a third-party review service 106, or other similar entities or databases). In some embodiments, the mobile application and / or website may be included in the search system 120. In some embodiments, the travel service system 108 may have multiple websites, databases, etc. Furthermore, in some embodiments, subcomponents of the travel service system 108 may communicate through the network 110 and / or other networks such as a local network.
[0025] In some embodiments, the travel service system 108 can be implemented on a cloud provider network (accessible, for example, by user devices 102 via network 110). The cloud provider network (sometimes simply referred to as the “cloud”) refers to a pool of network-accessible computing resources (such as compute, storage, and network resources, applications, and services), which may be virtualized or bare metal. The cloud can provide convenient on-demand network access to a shared pool of configurable computing resources that can be programmatically provisioned and released in response to customer commands. These resources can be dynamically provisioned and reconfigured to adapt to variable loads. Thus, cloud computing can be considered as both applications delivered as a service over a publicly accessible network (e.g., the internet, a cellular network) and the hardware and software within a cloud provider data center that provides those services.
[0026] A cloud provider network may implement a variety of computing resources or services, including virtual computing services, data processing services (e.g., map-reduce, dataflow, and / or other large-scale data processing techniques), data storage services (e.g., object storage services, block-based storage services, or data warehouse data storage services), and / or any other types of network-based services (which may include various other types of storage, processing, analysis, communication, event processing, visualization, and security services). The resources required to support the operation of such services (e.g., computing resources and storage resources) may be provisioned in accounts associated with the cloud provider, as opposed to resources requested by users of the cloud provider network, which may be provisioned in user accounts. A cloud provider network may include a set of host computing devices, each set may represent a logical group of devices, such as a physical "rack" of devices. Each computing device may support one or more hosted machine instances, which may be virtual machine instances representing virtualized hardware that supports operating systems and applications, for example. Hosted machine instances may further represent "bare metal" instances, thereby a portion of the computing resources of the computing device directly supporting the machine instances (without virtualization). In some cases, machine instances may be created and maintained on behalf of the client. For example, a client may request the creation of a machine instance that runs client-defined software using a client computing device. In other cases, the machine instance may implement the functions of the cloud provider network itself.For example, a machine instance may correspond to a block storage server, an object storage server, or a compute server, which provide block storage, object storage, or compute to client computing devices, respectively. While block storage, object storage, and compute are exemplary services, a machine instance may further or alternatively represent a Domain Name Service ("DNS") server, a relational database server, a server providing serverless computing services, and other server services to support an on-demand cloud computing platform. Each host computing device includes hardware computer memory and / or a processor, an operating system that provides executable program instructions for the general management and operation of its server, and computer-readable media that stores instructions that, when executed by the server's processor, enable the server to perform its intended function. Furthermore, the cloud provider network may include other computing devices that facilitate the operation of the host computing devices, such as data stores for storing account information, and computing devices for implementing logging, monitoring, and billing services.
[0027] In some embodiments, the cloud provider network can provide users with an on-demand, scalable computing platform via network 110, for example, allowing users to freely use scalable “virtual computing devices” through a usage instance or services provided by such instances. These virtual computing devices have the attributes of a personal computing device, including hardware (various types of processors, local memory, random access memory ("RAM"), hard disks, and / or solid-state drive ("SSD") storage), operating system selection, networking capabilities, and pre-installed application software. Each virtual computing device may also virtualize its console inputs and outputs ("I / O") (e.g., keyboard, display, and mouse). This virtualization allows users to connect to the virtual computing devices using computer applications such as browsers, application programming interfaces, and software development kits to configure and use the virtual computing devices in the same way as a personal computing device. Unlike personal computing devices with a fixed amount of hardware resources available to the user, the hardware associated with a virtual computing device can be scaled up or down according to the resources the user needs. Users may choose to deploy virtual computing systems to provide network-based services for their own use and / or for use by their customers or clients.
[0028] In some embodiments, the cloud provider network 120 can be formed as several regions, where each region is a separate geographical area where the cloud provider clusters its data centers. Thus, the cloud provider network can be considered a distributed computing system. Each region may include two or more availability zones interconnected via a private high-speed network, such as a fiber optic connection. An availability zone (also known as an availability domain, or simply a “zone”) refers to an isolated fault domain comprising one or more data center facilities with separate power, separate networking, and separate cooling from those in other availability zones. A data center refers to a physical building or enclosure that houses and provides power and cooling for the servers of the cloud provider network. Preferably, availability zones within a region are located far enough apart from each other so that the same natural disaster does not simultaneously take multiple availability zones offline. Customers can connect to the availability zones of the cloud provider network via a transit center (TC) through a publicly accessible network (e.g., the internet, a cellular network). A TC (Destination Chain) is the primary backbone location linking customers to the cloud provider network. It may be co-located with other network provider facilities (e.g., Internet service providers, telecommunications providers) and securely connected to availability zones (e.g., via VPN or direct connection). Each region may operate two or more TCs for redundancy. Regions are connected to a global network that includes private networking infrastructure (e.g., fiber optic connections controlled by the cloud provider) connecting each region to at least one other region. The cloud provider network may deliver content from points of presence outside these regions but networked with them, via edge locations and regional edge cache servers.This partitioning and geographical distribution of computing hardware enables the cloud provider network to deliver low-latency resource access to customers on a global scale with a high degree of fault tolerance and stability. In some embodiments, the cloud provider network may include one or more cellular networks managed and provided by the cloud provider.
[0029] i. Accommodation Information Database The travel service system 108 is configured to receive, acquire, retrieve, extract, or access information such as user reviews (e.g., review data) and / or accommodation item(s) corresponding data (e.g., attributes) via the network 110. This information may be stored, for example, in the accommodation information database 112. The travel service system 108 may also collect, receive, and / or store information such as user reviews and / or accommodation item(s) corresponding data through internal services, without requiring the receipt of such information via external entities, including, but not limited to, user devices and accommodation item databases.
[0030] Accommodation item attributes are not limited to but may include any attributes related to the accommodation item, including location information and information about amenities. Amenities may include swimming pools, fitness centers, and nearby tourist attractions. This information may be stored in a database such as the accommodation information database 112.
[0031] In some embodiments, review data (e.g., accessed by the travel service system 108) may also be stored in the accommodation information database 112. In some embodiments, the review analysis system 114 may access this review data to generate labeled review data that includes at least one identifier associated with at least one concept and / or at least one emotion. In some embodiments, the labeled review data may be stored in the accommodation information database 112. In some embodiments, the embedding system 116 may receive, acquire, retrieve, extract, or access review data and / or labeled review data in the accommodation information database 112. For example, the embedding system 116 may receive, acquire, retrieve, extract, or access data from the accommodation information database 112 when generating vectors or embeddings of accommodation items and / or concepts.
[0032] ii. Review and Analysis System The review analysis system 114 processes the review data. The review analysis system 114 may be configured to execute commands to extract concepts and sentiments from the review data.
[0033] In some embodiments, review data may be provided from accommodation item databases 104, user devices 102, third-party review services 106, and / or similar sources. In some embodiments, review data may include a review identifier for each individual review. For example, the review identifier may be included in the review data when it is received by the travel service system 108. Alternatively, the review identifier may be added to the data after it has been received by the travel service system 108.
[0034] In some embodiments, the review data may include reviews in one or more different languages. In some embodiments, the review analysis system 114 can be configured to analyze review data in any language to understand the meaning of various terms, so that any resulting vectors generated (e.g., for accommodation items or concepts) can be based on review data in any language. Such a configuration may be beneficial because accommodation items may be available worldwide, and the review data may include reviews in languages associated with the physical location of the accommodation items. Furthermore, analyzing various languages to extract concepts differs from translating and then processing reviews, as there may be subtle differences and meanings that cannot be captured by translation. For example, there may be regional euphemisms, expressions, or other meanings that cannot be translated into English. Additionally, when querying a vector for recommendations for accommodation items, the embedded space may be generated based on review data in one language, but because the results are presented in the language corresponding to the query, the user executing the query does not know that the recommendations in the embedded space are based on review data in another / different languages. Since users may not be able to read or understand reviews in a second language, this is advantageous for users of the travel service system 108, and therefore, being able to reliably use the travel service system 108 to extract information from such reviews would help enable the user to select the most appropriate accommodation item for themselves based on their needs / intentions. In some embodiments, there may be different embedding spaces for different languages. In some embodiments, the travel service system 108 may refer to one or more embedding spaces (each created based on user reviews in different languages) and return results based on some comparison between one or more embedding spaces (e.g., weighted by the amount of review data used for each embedding space, ranked by how often accommodation items are returned by queries from the most frequent embedding space, etc.).
[0035] a. Preprocessing system The review analysis system 114 includes, exemplarily, a preprocessing system 121. In some embodiments, the preprocessing system 121 adds a review identifier to the review data for each identified review. In some embodiments, the review identifier may already be present in the review data.
[0036] In some embodiments, the preprocessing system 121 uses machine learning algorithms (e.g., neural networks) to identify, delete, filter, or update features of individual reviews (e.g., stored in the review data). In some embodiments, the preprocessing system 121 may perform at least one filtering step to remove undesirable language, such as foul language, or other pre-configured information from the travel provider 108's users or administrators. For example, user reviews may contain vulgar or undesirable content that should be removed before analysis (e.g., by the concept analysis system 122 and / or sentiment analysis system 124). In some embodiments, undesirable language may include duplicate data or data unrelated to the accommodation item being analyzed. If undesirable language is present in a review, that review may be deleted from the review data, or specific language may be deleted or replaced from the review. For example, the preprocessing system 121 may identify undesirable language in the review data and then replace the identified undesirable language with synonyms, alternative text containing the same or similar meaning, or other replacement content. The identification and deletion of individual reviews may be partially based on review identifiers present in the presence of undesirable language. Furthermore or alternatively, the preprocessing system 121 may remove the undesirable language from the review data without deleting the review in which the undesirable language was found. Also, there may be typographical errors that have been identified as being able to be updated or corrected before analysis. In some embodiments, the preprocessing system 121 may also completely delete individual reviews (for example, because they are duplicates or for other reasons determined by a machine learning algorithm).
[0037] b. Conceptual Analysis System The review analysis system 114 exemplifies extracting concepts from review data. In some embodiments, a machine learning algorithm (e.g., a neural network) may be trained to detect features (e.g., frequency, placement, etc.) within the review data and identify concepts. For example, the review analysis system 114 uses the concept analysis system 122 to generate and / or analyze statistics associated with at least a portion of the review data. The statistics reveal conceptual information within the review data, and the review analysis system 114 uses the revealed statistics to identify concepts from the review data. The statistics may include, for example, the frequency of occurrence of terms in the review data, the placement of terms within the review, or one or more other metrics relevant to the analysis.
[0038] In some embodiments, concepts may fall within a broad range of categories, including, but are not limited to, accommodation attributes, available comforts for accommodation items, descriptions of accommodation items, nearby attractions for each accommodation item, and activities available to guests of each accommodation item. For example, specific concepts may include, but are not limited to, swimming pools, fitness centers, 1920s themes, fishing themes, haunted places, luxury, budget, mountains, rivers, lakes, beaches, hiking, swimming, skiing, and fishing. In some embodiments, the concept analysis system 122 may add at least one concept identifier to the review data analyzed by the concept analysis system 122. For example, the concept identifier may be, but is not limited to, a numeric, alphanumeric value, or text string. In some embodiments, the concept analysis system 122 may add the concept identifier to the review data (for example, to label where the concept appears in the review data).
[0039] In some embodiments, the concept analysis system 122 may first identify at least one concept in the review data. Next, the concept analysis system 122 generates a concept identifier for each identified concept. Then, the concept analysis system 122 iterates through the review data and adds a concept identifier where a corresponding concept is found. For example, assuming that a first concept identifier represents a first concept, the concept analysis system 122 may iterate through each review of the review data to identify concepts in the review and add the first concept identifier to the review in which the first concept is identified / located. In some embodiments, the generation and inclusion of concept identifiers may occur simultaneously with or after the identification of concepts in the review data. In some embodiments, sentiment identifiers may be appended to the concept identifiers by the sentiment analysis system 124, which may occur before or after the addition of concept identifiers to the review data.
[0040] c. Emotion Analysis System In some embodiments, whether a concept has a positive or negative connotation for an accommodation item may be determined through sentiment analysis of the review. The sentiment analysis system 124 uses the sentiment in the review data to determine whether a concept has a positive or negative connotation for individual accommodation items and / or related concepts. For example, a concept that has a positive connotation for an accommodation item may also be referred to as a positive concept in brevity. Similarly, a concept that has a negative connotation for an accommodation item may also be referred to as a negative concept in brevity. Furthermore, whether a concept is positive or negative may vary depending on the accommodation item. The process for determining whether a concept is positive or negative for each accommodation item may be carried out by the sentiment analysis system 124.
[0041] In some embodiments, sentiment can be determined or extracted from review data using a sentiment analysis system 124. Sentiment may represent how a lodging item represents a particular concept (for example, based on review data). For example, the sentiment analysis system 124 iteratively determines or extracts sentiment from each review in the review data, generating a positive or negative identifier for each concept associated with a particular lodging item. For example, the sentiment analysis system 124 may iterate through each review in the review data to identify sentiments related to how a concept relates to a lodging item. For example, the review data is reviewed by the learning function 210 so that each mention or instance of a concept in user reviews (for example, there may be multiple mentions of a particular concept) is taken into consideration.
[0042] In some embodiments, for example, a user review might include the expression, "Regarding Accommodation 1, the pool is good, but the beach is bad." Because the term "good" is present, the sentiment analysis system 124 can determine from the context of the review that "pool" is a positive concept of accommodation item "Accommodation 1." Similarly, because the term "bad" is present, the sentiment analysis system 124 can determine from the context of the review that "beach" is a negative concept of accommodation item "Accommodation 1." Therefore, the sentiment analysis system 124 may generate a first identifier for "pool" (which is positive) related to accommodation item "Accommodation 1," and a second identifier for "beach" (which is negative) related to accommodation item "Accommodation 1." In some embodiments, these first and second identifiers may be appended to conceptual identifiers in the review data corresponding to those accommodation items. Referring to the example above, in some embodiments, the review data can be labeled with text strings such as "Accommodation 1," "pool," and "positive." In some embodiments, these identifiers may be combined into a single identifier (e.g., "Hotel 1 + Pool" or "Hotel 1 - Beach"). In some embodiments, numeric or alphanumeric identifiers may be used.
[0043] For example, the first user review might include the expression, "Regarding Accommodation 1, the pool is good, but the beach is bad." In some embodiments, numerical identifiers may be used for sentiment scores. In some embodiments, for example, positive numbers may be used for positive conceptual identifiers and negative numbers may be used for negative conceptual identifiers. For example, a conceptual identifier representing the concept "pool" for Accommodation 1 could include a value of +1, and a conceptual identifier representing the concept "beach" for Accommodation 1 could include a value of -1. This could indicate that statistical analysis of reviews showed that most users had a strong positive correlation with Accommodation 1, and that beach had a strong negative correlation with Accommodation 1. In some embodiments, additional information relating to the degree of positive or negative sentiment may be added to the identifier(s). For example, for positive sentiment, concepts that are frequently associated with positive sentiments such as "very good" or "great" in reviews may have higher scores than concepts that are frequently associated with "good" or "fair" in reviews. Therefore, for example, if the second user review includes the expression "Hotel 1 has a really good pool," the conceptual identifier representing the concept "pool" of "Hotel 1" in relation to the second user review could include a value of +0.84, while the conceptual identifier representing the concept "pool" of "Hotel 1" in relation to the first user review (e.g., "...good pool") could include a value of +0.51. Other means of identifying positive and negative concepts of accommodation items are also possible.
[0044] In some embodiments, sentiment scores / values attached to conceptual identifiers of specific accommodation items may influence updates or changes made to the embedding space. For example, if “Pool” consistently has a higher positive sentiment score than “Beach,” as reflected by labeled review data, a machine learning algorithm may assign “Pool” a vector position closer to “Accommodation 1” than to “Beach.” Thus, as more review data is processed by the travel service system 108 (e.g., through its various subcomponents), the vectors in the embedding space (e.g., representing accommodation items and concepts) will move in an n-dimensional space (e.g., by adjusting one or more coordinate values associated with each vector), thereby ensuring that the vectors reflect the precise correlations / relationships between each vector in the embedding space.
[0045] iii. Embedded systems The embedding system 116 relies, exemplarily, on one or more training datasets of review data. In some embodiments, the review data may be labeled with conceptual identifiers and / or sentiment data (e.g., indicating how sentiment influences the concept of each accommodation item). The labels can then be used to generate vectors representing concepts in a multidimensional embedding space (e.g., points in an n-dimensional space, each defined by n distinct coordinate values), and to assign locations to these vectors.
[0046] The embedded system 116 also generates, exemplarily, vectors representing accommodation items and concepts. In some embodiments, concept identifiers may be identified from review data. In some embodiments, other data sources are also possible for generating concept identifiers. For example, one or more concept identifiers may be derived from search data. In some embodiments, accommodation items may be identified from several sources. For example, accommodation items can be enumerated on a travel website corresponding to a travel service system (e.g., travel service system 108 in Figure 1). Accommodation items may also be identified from review data, public and / or proprietary databases, web / internet searches, web scraping, APIs, other methods, or any combination thereof.
[0047] In some embodiments, vector generation may begin with the creation of initial or preliminary vectors (e.g., each vector corresponds to one of the accommodation items or concepts). In some implementations, initial vectors can be generated to contain randomized coordinates in an n-dimensional embedding space. In some embodiments, initial vectors can be generated by a machine learning algorithm (e.g., a neural network) that can generate initial vector positions for accommodation items using accommodation item attributes from one or more sources, e.g., user input or selection on a website or mobile application, accommodation information (e.g., facility type, opening hours, star rating, user rating, etc.), amenity information (e.g., free Wi-Fi, free breakfast, pool / spa, etc.), and / or geographic location information (e.g., physical address or location). In some embodiments, the machine learning algorithm can determine initial vector positions using statistical information from review data and / or other data sources (e.g., a third-party database). For example, the frequency of the concept "pool" associated with reviews of "accommodation 1" may result in an initial vector position for "pool" that is close to the vector representing "accommodation 1".
[0048] In some embodiments, it may be necessary to update vectors based on newly received data (for example, review data is constantly updated, so vectors should be updated in relation to new review data). Therefore, updated vectors (for example, initial vectors and any other vectors currently being generated) can be determined using a learning function (e.g., a machine learning model). The learning function can be used to generate updated vectors by updating the coordinates / positions of the initial vectors by iterating through review data (e.g., obtained from the accommodation information database 112 and / or the review analysis system 114). For example, assuming that there are vectors for "Accommodation 1" and "Spa" in the embedding space, and a new user review is received containing the description "Accommodation 1 has a great spa," the learning function can be used to generate updated vectors that adjust one or both of the "Accommodation 1" and "Spa" vectors so that they are closer together. In some embodiments, other vectors may also be adjusted during the update process. For example, even if the only accommodation items and / or concepts mentioned in a new user review are "Hotel 1" and "Spa," the learning function may update one or more vectors for other accommodation items and / or concepts, so that the relationships between all vectors in the embedding space remain correlated to match all user reviews previously processed by the learning function. In some embodiments, vectors (e.g., initial state, updated state, or other states) may be stored in a vector database 118. Additional features of the embedding system 116 are described further herein (e.g., with respect to Figure 2).
[0049] iv. Vector Databases The travel service system 108 in Figure 1 includes a vector database 118. The vector database 118 is configured, exemplary, to store one or more vectors generated by the embedding system 116. Alternatively, the vectors generated by the embedding system 116 may be stored in the memory of the embedding system 116.
[0050] Each vector (for example, stored in the vector database 118) exemplifies a predefined number "n" of coordinates, effectively positioning the vector at an explicit location in the n-dimensional embedding space. These locations / positions indicate a particular relationship or correlation between the vectors. For example, the closer two vectors are to each other (the shorter the distance between them), the stronger the correlation between the two vectors (as determined by, for example, a learning function, a machine learning model, etc.). For example, the distance can be measured using one or more similarity measures from the dot product, cosine similarity, dot product, Euclidean distance, or other similar functions.
[0051] In some embodiments, the data structure used to store each vector in the database includes a unique identifier for the vector and an array of "n" scalar values. The unique identifier enables efficient retrieval and manipulation of the vector, while the array of scalar values represents the "n" coordinates of the vector in the embedding space. In some embodiments, the vectors are stored (e.g., in the vector database 118) as individual records, each containing a unique identifier and a corresponding array of "n" coordinates. In some embodiments, the vector database 118 can provide functionality to add, delete, and update these vectors as needed, thereby enabling dynamic modification of the underlying n-dimensional embedding space (e.g., based on new review data processed by the travel service system 108).
[0052] v. Search System The search system 120 is provided, exemplarily, to allow users to submit requests for accommodation items (e.g., via one or more user devices 102, etc.). For example, a user may enter a query containing one or more concepts (e.g., possibly one or more emotions) via a website, mobile application, or API (e.g., operated by the travel service system 108). For example, the entered user query may be processed by the search system 120 to decipher the user's intent and extract at least one concept (e.g., a first concept).
[0053] In the first example, the search system 120 can identify a first vector in the vector database 118 that represents a first concept. The search system 120 can then use the coordinates / locations assigned to the first vector to identify one or more accommodation items associated with the first concept (for example, in this case, the accommodation items would likely include locations / coordinates close to the first concept). In some embodiments, the resulting / identified accommodation items can then be sent to the user as search results (for example, the travel service system 108 can generate and send display commands configured to present the search results in a graphical user interface of a user device operated by the user performing the search / query). In some embodiments, the search results can be filtered or ranked by one or more parameters, including but not limited to price, availability, another parameter, or any combination thereof. For example, filtering refers to the process of removing certain results based on certain criteria, and ranking refers to the process of ordering the remaining results based on certain metrics.
[0054] In a second example, the search system 120 can identify a first vector representing a first concept in the vector database 118. The search system 120 can then use the coordinates / positions assigned to the first vector to identify one or more accommodation items in the same embedding space as the first vector (for example, in this case, each of the one or more accommodation items corresponds to a position / coordinate). The search system 120 can then rank or order the one or more accommodation items based on their distance to the first vector. In some embodiments, at least a portion of the resulting / identified accommodation items (for example, accommodation items 1, 3, 5, 10, etc., that are closest to the first vector) can then be sent to the user as search results (for example, the travel service system 108 can generate and send display commands configured to present the search results in a graphical user interface of a user device operated by the user performing the search / query).
[0055] In a third example, for instance, the input user query may be processed by the search system 120 to decipher the user's intent and extract two or more concepts. In some embodiments, the search system 120 can determine the centroid between all of the two or more concepts and use the coordinates corresponding to that centroid to identify one or more accommodation items (for example, by implementing the first or second example described in this section).
[0056] In the fourth example, similar to the third example, the input user query may be processed by the search system 120 to decipher the user's intent and extract two or more concepts. In some embodiments, the search system 120 can generate search results for each of the two or more concepts (for example, by performing the first or second example). For example, multiple searches can be performed to identify accommodation items that are close to each concept vector identified by the search system 120. The search results can then be mixed based on the set of results from the multiple searches. For example, the mixed set of results can be ordered, ranked, or filtered after being mixed or combined.
[0057] In some embodiments, the search system 120 provides a query mechanism that enables the retrieval of vectors based on their proximity within an n-dimensional embedding space (for example, by referring to a vector database 118). For example, given a query, the travel service system 108 can identify and return vectors related to the query, measured as the distance between concepts and / or accommodation items in the embedding space. For example, assuming a user query for “skiing,” such that a particular user may be interested in finding accommodations that offer opportunities to ski, the travel service system 108 can first identify the location of “skiing” or “ski” in the embedding space (for example, by referring to a vector database 118). The travel service system 108 can then find accommodation items correlated with “skiing” by retrieving accommodation item vectors that are close to the “ski” vector in the embedding space, such as accommodation 3 or accommodation 4 in Figure 3 (for example, by referring to a vector database 118).
[0058] In some embodiments, the travel service system 108 may limit the results provided to the user (for example, based on a query). For example, in some embodiments, the travel service system 108 may include pre-configured or dynamically adjusted thresholds applied to limit the number of results provided to the user and / or to limit results that may be irrelevant. For example, there may be a certain distance in the embedded space where any result returned for a query (e.g., accommodation items) may not be useful to the user performing the query. In some embodiments, this certain distance is pre-configurable by the user performing the query or by the administrator operating the travel service system 108. In some embodiments, this certain distance is dynamically determined by the travel service system 108 (for example, based on the number of desired results, based on the total number of concepts or accommodation items in the embedded space, based on the processing power of the travel service system 108 server or the user device performing the query, based on the internet speed between the travel service system 108 server and the user device performing the query, based on a machine learning algorithm or learning function, or a combination of factors). Furthermore, it may be desirable to present only a specific number of results (e.g., accommodation items) to the user executing the query, such as 5, 10, or 20 results. Therefore, in some embodiments, the travel service system 108 may retrieve only a desired number of results (e.g., within the vector database 118) to conserve processing power and / or to perform the search more quickly. In some embodiments, the travel service system 108 may retrieve as many hits (e.g., accommodation items) as possible (e.g., within a specific distance range in the embedding space) and then rank and filter the number of results so that the top 5, 10, 20, or similar results are presented to the user (e.g., via a graphical user interface) for selection.
[0059] II. Embedded Systems Figure 2 is a block diagram of exemplary components of an embedded generation system 116 (for example, shown in Figure 1) according to various aspects of the present disclosure. The embedded system 116 includes at least one or more of the following: a processor(s) 200, memory 202, network interface(s) 204, and computer-readable media(s) 206. The embedded system 116 may include one or more of each subcomponent. Furthermore, in some embodiments, the subcomponents of the embedded system 116 may be connected across multiple systems. In some embodiments, for example, the subcomponents may communicate through network 110 or through another network such as a local network, where network interface 204 may be used to facilitate such any communication between systems. In some embodiments, one or more subcomponents may play the role of one or more other subcomponents or systems. It should also be recognized that there are other embodiments of the embedded system 116 that may exclude certain subcomponents and / or include additional components.
[0060] a. Processor(s) The processor(s) 200 may include, exemplary, additional subcomponents such as a vector transformation system 208, a learning function 210, and an embedding system 212. In some embodiments, instructions for the subcomponents of the processor 200 may be stored in memory 202. In some embodiments, the processor(s) may be the same as or similar to the processor(s) 704 described with respect to Figure 7.
[0061] i. Vector transformation system The vector transformation system 208 generates vectors representing various concepts and / or accommodation items. These vectors may include, for example, locations (e.g., coordinates) representing positions within a multidimensional embedding space. As will be further discussed herein, the embedding space is a concept that allows for the incorporation of contextual information representing the relationships between what the vectors represent. In some embodiments, as will be further discussed herein, initial or preliminary vector positions may be randomly set based on information about concepts or accommodation items received by the vector transformation system 208, another method, or any combination thereof.
[0062] In some embodiments, the embedding system 116 may receive information about accommodation items (for example, from the accommodation information database 112 in Figure 1). In some embodiments, the information about accommodation items may include the identification of one or more accommodation items and the identification of attribute information associated with the accommodation items (e.g., concepts or other distinctive features that can be used to describe the accommodation items). Based at least in part on this information, the vector transformation system 208 can generate accommodation item vectors (e.g., having an initial vector position) for each identified accommodation item. In some embodiments, the initial vector position may be based on attributes included in the obtained accommodation item information. In some embodiments, the initial vector position of the accommodation item vector may also be set randomly.
[0063] In some embodiments, the embedding system 116 generates vectors representing accommodation items and concepts. In some embodiments, concept identifiers may be identified from review data. In some embodiments, other data sources are also possible for generating concept identifiers. For example, one or more concept identifiers may be derived from search data. In some embodiments, accommodation items may be identified from several sources. For example, accommodation items can be enumerated on a travel website corresponding to a travel service system (e.g., travel service system 108 in Figure 1). Accommodation items may also be identified from review data, public and / or proprietary databases, web / internet searches, web scraping, APIs, other methods, or any combination thereof.
[0064] In some embodiments, vector generation may begin with the creation of initial or preliminary vectors (e.g., each vector corresponds to one of the accommodation items or concepts). In some implementations, initial vectors can be generated to contain randomized coordinates in an n-dimensional embedding space. In some embodiments, initial vectors can be generated by a machine learning algorithm (e.g., a neural network) that can generate initial vector positions for accommodation items using accommodation item attributes from one or more sources, e.g., user input or selection on a website or mobile application, accommodation information (e.g., facility type, opening hours, star rating, user rating, etc.), amenity information (e.g., free Wi-Fi, free breakfast, pool / spa, etc.), and / or geographic location information (e.g., physical address or location). In some embodiments, the machine learning algorithm can determine initial vector positions using statistical information from review data and / or other data sources (e.g., a third-party database). For example, the frequency of the concept "pool" associated with reviews of "accommodation 1" may result in an initial vector position for "pool" that is close to the vector representing "accommodation 1".
[0065] In some embodiments, it may be necessary to update vectors based on newly received data (for example, review data is constantly updated, so vectors should be updated in relation to new review data). Therefore, updated vectors (for example, initial vectors and any other vectors currently being generated) can be determined by using a learning function (e.g., a machine learning model). Using the learning function, updated vectors can be generated by updating the coordinates / positions of the initial vectors by iterating over review data (e.g., obtained from the accommodation information database 112 and / or the review analysis system 114). For example, assuming that there are vectors for "Accommodation 1" and "Spa" in the embedding space, and a new user review is received containing the description "Accommodation 1 has a great spa", the learning function can be used to generate updated vectors that adjust one or both of the "Accommodation 1" vector and the "Spa" vector so that the vectors are closer. Also, assuming that one or both of the "Accommodation 1" vector and the "Spa" vector are updated, the relative similarity between the updated "Accommodation 1" vector and / or "Spa" vector and other concepts and / or accommodations in the embedding space will also be updated as a result. In some embodiments, vectors (e.g., initial state, updated state, or other state) may be stored in a vector database 118. Additional features of the embedding system 116 are described further herein (for example, with respect to Figure 2).
[0066] ii. Learning function In some embodiments, the learning function 210 (e.g., a model, machine learning model, neural network, etc.) may be trained to generate, update, identify, or output vectors representing accommodation items and / or concepts, in which case the vectors include coordinates / locations in a multidimensional embedding space. In some embodiments, the learning function may generate, update, or determine vector features (e.g., coordinates, labels, etc.) and calculate the distance between vectors by using one or more similarity functions (e.g., dot product, cosine similarity, dot product, Euclidean distance, or other similar functions). In some embodiments, the training data for the learning function 210 (e.g., labeled and / or unlabeled review data) may be stored in the accommodation information database 112 and accessed by the embedding system 116 described in Figure 1.
[0067] In some embodiments, for example, the learning function 210 may determine an initial similarity (e.g., the distance in the embedding space between the two vectors) between the identified concepts and the accommodation items. The learning function can then determine the accuracy, precision, and / or certainty of this similarity. For example, the learning function 210 may receive an accommodation item (e.g., "Hotel 1"), positive concepts for that accommodation item (e.g., the positive concept might be "view" based on a user review saying "the hotel has a nice view"), and negative concepts for that accommodation item (e.g., the negative concept might be "smelly" based on a user review saying "the hotel has a smelly gym") as input, and use a loss function to generate scores for the relationships between positive concepts and accommodation items, and between negative concepts and accommodation items. In some embodiments, individual reviews (e.g., from a labeled review dataset) may be iteratively input to the learning function 210, and the positions of the concept vectors and accommodation item vectors may be adjusted based on the scores provided by the learning function 210. Examples of vector generation and updating / adjustment (for example, with respect to Figures 3-5) are explained in more detail here.
[0068] iii. Embedded space adjustment system In some embodiments, the embedding space adjustment system 212 can update the vector positions / coordinates of vectors in the multidimensional embedding space (e.g., based on new data or received information). For example, supplemental review data may be obtained by the travel service system 108, which may then be labeled. This supplemental review data may be input to the learning function 210 by the embedding space adjustment system 212 to generate updated vectors (e.g., updating the coordinates / positions corresponding to one or more vectors in the embedding space) that take the supplemental review data into account. In some embodiments, the updated vectors may be stored in memory 202. Furthermore, in some embodiments, there may be a vector deletion model / tool that can be used to delete certain accommodation items and / or conceptual vectors (e.g., based on user-defined rules, based on supplemental review data indicating that an accommodation item is closed or unavailable).
[0069] b. Memory In some embodiments, memory 202 may include RAM, ROM, or other persistent or non-temporary memory. In some embodiments, memory 202 may store computer executable instructions used by processor(s) 200 or one or more subcomponents of processor(s) 200. For example, memory 202 may include computer executable instructions that, when executed, carry out processes 208, 210, and / or 212. In some embodiments, training datasets (e.g., training datasets obtained from accommodation information database 112 as described in Figure 1) may also be stored in memory 202. In some embodiments, memory 202 is the same as or similar to one or more components described in relation to Figure 7 (e.g., main memory 706, ROM 708, and / or storage device 710).
[0070] i. Accommodation Item Identifier Storage In some embodiments, accommodation item identifiers can be stored in accommodation item identifier storage 216. For example, a vector transformation system 208 can access accommodation item identifiers to generate vectors representing accommodation items (e.g., by using a machine learning algorithm such as a learning function 210). In some embodiments, once the vectors are generated, the learning function 210 and / or the embedded space adjustment system 212 can be used to update the position / coordinates of the accommodation item vectors (e.g., based on review data or supplemental review data received by the travel service system 108).
[0071] ii. Conceptual Identifier Storage In some embodiments, conceptual identifiers may be stored in an item conceptual identifier storage 218. For example, a vector transformation system 208 may access conceptual identifiers to generate vectors representing concepts (e.g., by using a machine learning algorithm such as a learning function 210). In some embodiments, once the vectors are generated, the learning function 210 and / or the embedding space adjustment system 212 may be used to update the position / coordinates of the conceptual vectors (e.g., based on review data or supplemental review data received by the travel service system 108).
[0072] iii. Temporary vector storage In some embodiments, memory 202 may also store vectors containing position / coordinates and other information in temporary vector storage 220. For example, updated vectors may be temporarily stored in temporary vector storage 220. For example, a training session may be considered complete when all available review data has been iteratively reviewed / processed by the learning function 210. While the training session is in progress, the current vector data may be stored in temporary vector storage 220. Once the training session is complete, the vector data may be stored in another vector database (e.g., vector database 118 in Figure 1). In some embodiments, vector database 118 and temporary vector storage 220 are the same.
[0073] c. Network Interface In some embodiments, the network interface 204 may be used to provide connectivity to one or more networks or computing systems. For example, in some embodiments, the network interface 204 may provide connectivity to the user device 102, the accommodation item database 104, and / or a third-party review service in Figure 1. Furthermore or alternatively, the network interface 204 may provide connectivity between subcomponents of the travel service system 108. In some embodiments, the network interface 204 is the same as or similar to the network 110 in Figure 1, the communication interface 718 in Figure 7, and / or the network link 720 in Figure 7.
[0074] d. Computer-readable media drives In some embodiments, the computer-readable media drive 206 may enable a direct connection to the embedded system 116. This connection can be used to communicate directly with the embedded system 116. Furthermore, or alternatively, the computer-readable media drive 206 may be involved in conveying one or more sequences of one or more computer-readable program instructions to the processor 200 for execution. In some embodiments, the computer-readable media drive 206 is the same as or similar to one or more components described in Figure 7 (e.g., main memory 706, ROM 708, and / or storage device 710).
[0075] III. Exemplary Embedded Spaces Figure 3 is an exemplary diagram representing an exemplary three-dimensional embedding space 300 according to various embodiments of the present disclosure. For the sake of simplification when describing exemplary embedding spaces, three-dimensional axes 346 are presented to illustrate the number of dimensions of the space. However, in some embodiments, the embedding space may be represented by more or fewer dimensions. For example, the embedding space may be represented by 32 dimensions such that each vector in the embedding space contains 32 scalar values that can be used as coordinates in the embedding space.
[0076] In some embodiments, the number of dimensions of the space (and the dimensions of each vector) may be selected to balance accuracy improvements with memory / processing requirements (which may affect the speed of, for example, vector updates, vector query execution). In some embodiments, an administrator or person may select or determine the number of dimensions of the embedding space (for example, empirically, to optimize for speed, to optimize for accuracy, or to optimize for various factors). In some embodiments, a machine learning model may select or determine the number of dimensions of the embedding space. For example, if computing resources are limited, the dimensions may be reduced to increase speed and / or reduce the energy required. Alternatively, for example, the dimensions may be increased to provide higher accuracy or reliability in the resulting embedding space. In some embodiments, a machine learning model may update the selected number of dimensions of the embedding space. For example, if computing resources are upgraded, the number of dimensions may also be increased. In some embodiments, if a machine learning model selects the number of dimensions, it may do so by selecting a set of features or variables to be reviewed / analyzed by the machine learning model. For example, such related features may include, but are not limited to, semantic features (e.g., sentiment, topic relevance), location in the embedding space, training-learned patterns (e.g., not reflected in the input data), other features, or any combination thereof. In some embodiments, the dimensions within the conceptual vector may include, but are not limited to, a conceptual identifier, sentiment information relating to one or more accommodation items, location in the embedding space, another feature, or any combination thereof.
[0077] Returning to Figure 3, in the embedding space 300, vectors are represented by spheres to help visualize the multidimensional embedding space. However, vectors are points in space. For example, in higher-dimensional embedding spaces, vectors are also points. In Figure 3, the size of the spheres in the embedding space is the same among all spheres, but to illustrate relative positions, spheres closer to the viewer in Figure 3 are shown as larger than spheres farther away from the viewer. For example, vector 344 of Inn 1 appears larger than vector 336 of Inn 5, indicating that vector 344 of Inn 1 is closer to the viewer in Figure 3. This indicates that Inn 1 is closer to the front of the visualization.
[0078] In Figure 3, the accommodation item vectors represented in the three-dimensional embedding space 300 include vector 344 for accommodation 1, vector 326 for accommodation 2, vector 316 for accommodation 3, vector 314 for accommodation 4, and vector 336 for accommodation 5. These accommodation item vectors are surrounded by one or more conceptual vectors (which can be determined, for example, from review data). In some embodiments, concepts may be extracted based on their frequency of appearance in review data, relevance to the determined user, another parameter, or any combination thereof. Thus, concepts may include some of the following non-limiting examples: weather, nearby landmarks, landmark characteristics, season, price, and / or activity. For example, a conceptual vector may represent the weather, such as hot vector 302 or sun vector 310. A conceptual vector may also represent nearby landmarks, such as desert vector 308, beach vector 334, and lake vector 338, or the conceptual vector may represent a landmark characteristic, such as sand vector 304. The conceptual vectors may further represent the quality of the accommodation items, such as luxury vector 328 and budget vector 318, or they may represent the seasons, such as summer vector 320 or winter vector 330. Furthermore, the conceptual vectors may represent activities, such as fishing vector 340, boating vector 334, parasailing vector 312, skiing vector 348, snowboarding vector 330, free climbing vector 319, hiking vector 322, or mountain vector 324.
[0079] Conceptual vectors may be closer to or further from the accommodation item vector in the embedding space 300 based on the determined similarity between the represented concept and / or accommodation item. For example, luxury vector 328 is closer to a first location (coordinates: x1, y1, z2) in the embedding space than a second location (coordinates: x2, y2, z2) of the accommodation item vector 326 of accommodation 2. 1)をIt may have. This means that the embedded system (for example, the embedded system 116 in Figures 1-2) has determined that the concept of "luxury" and the accommodation item "accommodation 2" can be closely related and / or correlated (for example, based on review data). For example, since the determination is made based on information from reviews written by humans, the human understanding of the relationship between concepts and vectors can be better represented by the machine in the embedded space.
[0080] In one example, assuming that the travel service system 108 is using the simplified embedded space 300 in Figure 3, if a user makes a search query to the travel service system 108 for "accommodations where you can snowboard," the travel service system 108 would first identify the most similar concept, "snowboarding," as vector 350, and then compare the distance between vector 350 in the embedded space and the accommodation items. Based on the distance calculation, vectors 316 for accommodation 3 and 314 for accommodation 4 may be returned to the user for display on the user's user device (e.g., via a graphical user interface for selection).
[0081] IV. Exemplary Flowchart Figure 4 is a flowchart 400 for creating or updating an embedding or vector for an embedding space according to various aspects of the present disclosure. Some of the processes, steps, and / or modules discussed herein may be combined, separated into subparts, omitted entirely, and / or rearranged to be executed in different orders and / or in parallel. Furthermore, in some embodiments, different blocks may be executed by different components of an embedding system (e.g., 116 in Figure 1).
[0082] In block 402, the embedded system (e.g., the embedded system 116 in Figure 1) accesses the accommodation item attributes. In some embodiments, other components of the travel service (e.g., the travel service system 108) may also be used to access the accommodation item attributes. In some embodiments, the accommodation item attributes can be stored in an accommodation information database (e.g., the accommodation information database 112 in Figure 1). In some embodiments, the accommodation item attributes may be extracted from review data. In some embodiments, the accommodation item attributes include concepts and / or other features that can be used to describe the accommodation item. For example, the accommodation item attributes may include, but are not limited to, an accommodation item identifier, the physical location of the accommodation, conceptual information, availability data (e.g., room availability), and price information.
[0083] In block 404, the embedding system generates or initializes initial vector positions for vectors representing accommodation items in the embedding space. To do this, for example, the embedding system may initialize accommodation item vectors by accessing a pool of accommodation item identifiers representing accommodation items and determining an initial vector position for at least each of those accommodation items. In some embodiments, the initial vector positions for accommodation items may be set randomly. In some embodiments, the initial vector positions for accommodation items may be based in part on accommodation item attributes. For example, the initial vector positions may be generated using an accommodation item identifier (e.g., item identifier 506 in Figure 5) and the physical location of the accommodation. For example, referring to Figure 3, accommodation 5 may share a state or address that is very close to accommodation 1. Therefore, vector 344 for accommodation 1 and vector 336 for accommodation 5 may be provided with initial vector positions that are close to each other in the embedding space 300. In this assumption, if the two accommodation items are close to each other in the real world / material world, they are likely to share weather, activities, etc., and therefore are likely to be located similarly in the embedding space. Alternatively, in some embodiments, the accommodation item and / or concept vectors can be initialized or generated when they are first encountered (e.g., in user reviews), thereby the embedding space contains only the accommodation item and / or concept vectors identified in the training dataset(s) (e.g., user reviews) used to train or update the model that generates the vectors in the embedding space.
[0084] In block 406, the review analysis system (e.g., the review analysis system 114 in Figure 1) accesses the review data. In some embodiments, the review data may be stored in a lodging information database (e.g., the lodging information database 112 in Figure 1). For example, the review analysis system may obtain the review data from the lodging information database. In some embodiments, other components of the travel service (e.g., the travel service system 108 in Figure 1) may also be used to access the review data. The review data can then be transmitted to the review data analysis system. In some embodiments, the review data includes multiple reviews, each review corresponding to at least one lodging item from a plurality of lodging items, including at least one concept from a plurality of concepts, and indicating at least one sentiment associated with at least one concept.
[0085] In block 408, conceptual information is extracted from review data. For example, in some embodiments, the review data may be processed by a review analysis system (e.g., review analysis system 114 in Figure 1) to generate conceptual identifiers. In some embodiments, the conceptual identifiers may be associated with sentiment (e.g., positive or negative, and / or degree of positive or negative sentiment). For example, sentiment may reflect positive or negative connotations regarding the relationship between a concept and a lodging item. In some embodiments, the interpretation of sentiment when modifying the concept of a user review for one or more lodging items may be derived from the proximity of words in a sentence or other contextual information and stored within the user review. For example, a concept may be determined from an analysis of statistical data about the review data. Alternatively, for example, a classification algorithm (e.g., a neural network) may be used to determine sentiment from the review data. Furthermore, for example, sentiment may be determined from a sentence-level analysis of each review in the review data. In addition, in some embodiments, the review analysis system (e.g., review analysis system 114 in Figure 1) can be configured to identify sets of associations from the review data. For example, each association in a set of associations could indicate that each review in a set of reviews corresponds to a specific accommodation item from a set of accommodation items, includes a specific concept from a set of concepts, and expresses a specific emotion.
[0086] In some embodiments, review data may be labeled using conceptual identifiers and associated sentiment classifications (as illustrated, for example, with reference to Figure 1). In some embodiments, a review analysis system may be used to initialize conceptual vectors. Furthermore, in some embodiments, an embedding system (e.g., embedding system 116) may be used to initialize conceptual vectors based at least in part on the conceptual identifiers used to label the review data. For example, in some embodiments, the embedding system can assign a location to a conceptual vector in the same embedding space as the accommodation item vector.
[0087] In some embodiments, the initial vector position of a concept vector may be set randomly. In some embodiments, the initial vector position may be set based on statistical data for each concept in the review data. For example, the initial vector position of a concept may be set based on its frequency of occurrence in reviews of accommodation items. For example, a first concept vector representing a first concept that occurs frequently with respect to a first accommodation item may receive an initial vector position relatively close to the vector representing that accommodation item in the multidimensional embedding space. Referring to Figure 3, for example, the concept "beach" that frequently appears in reviews of both accommodation 1 and accommodation 5 may result in a "beach" vector 334 with an initial position between vector 344 of accommodation 1 and vector 336 of accommodation 5. In some embodiments, the determined vector positions for accommodation item vectors and concept vectors may change as new or supplemental review data is processed by the embedding system (e.g., embedding system 116 in Figure 1).
[0088] In block 410, vectors or embedding locations (e.g., coordinates) are generated (e.g., if not previously generated) or updated (e.g., if previously generated) based on new or supplemental review data (e.g., by going back to repeat blocks 406 and 408). For example, review data may be labeled, and concept and accommodation identifiers (e.g., as discussed in more detail with respect to Figure 5) may then be input into the learning function. In some embodiments, block 410 includes generating a set of embeddings or vectors for each of a plurality of accommodation items and each of a plurality of concepts, where the set of embeddings identifies each accommodation item and each concept in a shared multidimensional embedding space. For example, generating a set of embeddings includes, for each set of associations, modifying the distance between a particular accommodation item in an association and a particular concept included in the association, at least in part based on a particular sentiment of the association. In some embodiments, updates may be performed at intervals. For example, the interval may be a set amount of time (e.g., one day, one month), upon request by an administrator or user, when a certain amount of new or supplemental review data reaches a threshold (e.g., 1000 reviews, 1 terabyte (TB), etc.), another type of interval, or any combination thereof.
[0089] In block 412, the updated vector or embedding from block 410 may be stored and / or output (e.g., to one or more data stores or memory) for use in improving travel services or travel searches. For example, the vector or embedding may be sent to a vector database (e.g., vector database 118 in Figure 1) and accessed by a search system (e.g., search system 120 in Figure 1) to respond to user search queries. In some embodiments, the vector or embedding may include a location in the embedding space, as described above.
[0090] Figure 5 is an exemplary block diagram illustrating an example of generating vectors for accommodation items and conceptual information according to various aspects of this disclosure. Figure 5 shows an exemplary two-tower architecture in which one tower processes accommodation items 502 and the other tower processes concepts 504. However, other embodiments of the architecture (e.g., other two-tower architectures) may be used to implement the concepts disclosed herein. In some embodiments, the flow shown in Figure 5 may be implemented by a travel provider, such as the travel service system 108 in Figure 1. For example, the travel service may implement the flow using an embedded system (e.g., the embedded system 116 in Figure 1).
[0091] In some embodiments, accommodation items 502 and concepts 504 may be accessed to provide input to the embedded system. For example, accommodation items 502 may contain information about one or more accommodation items such as "Accommodation A," "Accommodation B," and "Accommodation C." Also, for example, concepts 504 may contain information related to one or more concepts such as "Sea," "Hiking," "Boating," and "Mountains." Although Figure 5 shows a separate grouping of accommodation items and concepts, in some embodiments, both concepts and accommodation items may be included in the review information.
[0092] In some embodiments, accommodation items 502 and concepts 504 may be processed (e.g., by the review analysis system 114 in Figure 1) to generate accommodation item identifiers 508 and / or concept identifiers 506, respectively. For example, accommodation items 502 and concepts 504 may be obtained by a travel service via a network (e.g., the travel service system 108 and network 110 in Figure 1). In some embodiments, the travel service may extract accommodation item identifiers and / or concept identifiers by analyzing review data (e.g., as described with respect to Figure 1). However, in some embodiments, accommodation item identifiers 508 may be accessed before identifying concepts 504 from the review data. For example, in some embodiments, a travel provider may maintain a list of accommodation item identifiers 508 for accommodation items 502 on its website or mobile application.
[0093] In some embodiments, when the embedding system accesses accommodation items 502 and / or concepts 504, the embedding system may initialize the vectors for each underlying accommodation item 502 and / or concept 504 by giving at least one initial position for each vector (as discussed with respect to Figure 4, for example). In some embodiments, using the learning function 210, the positions of the initialized vectors may be updated, for example, by utilizing review data labeled to identify those concepts and emotions when the concepts and emotions are associated with one or more accommodation items.
[0094] In some embodiments, it can be more difficult to determine whether a concept is positive or negative. For example, a review might include the expression, "Hotel B has small, cozy rooms, but the lobby is overly decorated." In this review, "Hotel B" could be an accommodation item, "rooms" and "lobby" could be concepts, and "small," "cozy," "overly," and "overly decorated" could be emotions. Here, a human can easily determine that "rooms" could be a positive concept and "lobby" could be a negative concept for Hotel B. By iterating over review data, the learning function 210 can iteratively adjust the position of each vector in the embedding space, partly based on how differences in language (e.g., emotions, concepts, etc.) reflect the relationship between concepts and accommodation items. For example, the review data is reviewed by the learning function 210 so that each mention or instance of a concept in a user review (e.g., there may be multiple mentions of a particular concept) is taken into consideration.
[0095] In some embodiments, to adjust the vector positions, the learning function (e.g., 210) may first compute similarity metrics between the accommodation items and concepts. Techniques for similarity calculation may include, but are not limited to, cosine similarity, dot product, or Euclidean distance functions. The results of these similarity calculations may be provided to a loss function to determine whether to update the vector positions. For example, the loss function (e.g., mean squared error, cross-entropy, triplet loss, etc.) quantifies the discrepancy between expected and actual values, and the loss function may be used in conjunction with the similarity metrics to improve the representation of the relationships present in the embedding space.
[0096] In some embodiments, the learning function may iteratively update the positions of conceptual vectors and accommodation items in the embedding space using both a similarity function and a ranking loss function (e.g., a triplet loss function). For example, a triplet loss function first generates a similarity between the anchor and positive examples, and another similarity between the anchor and negative examples. Scores reflecting the similarity and dissimilarity, respectively, may then be calculated for the positive and negative examples with respect to the anchor. Alternatively, for example, the triplet loss may also use a margin, where the margin represents the difference between positive and negative scores where the loss is considered to be minimized. The overall loss is then calculated using a combination of positive scores, negative scores, and margins. When a model that generates vectors in the embedding space is used, the vector positions may then be updated to minimize the loss.
[0097] In some embodiments, the learning function may follow the method described above with respect to the triplet loss function in order to compute the updated vector positions. In some embodiments, other loss functions may also be used. In embodiments using the triplet loss function, the anchor may be a lodging item. In some embodiments, a positive example may be a concept determined to have a positive connotation with respect to a lodging item, and a negative example may be a concept determined to have a negative connotation with respect to a lodging item. As discussed above, the positive and negative connotations of concepts with respect to review data may arise from the analysis of sentiment data in each review.
[0098] In some embodiments, a first step in training a model or learning function may be to define positive and negative (which can be used, for example, to calculate ranking losses). For example, the model may first calculate positive scores for the similarity between positive concepts and accommodation items, and negative scores reflecting the dissimilarity between negative concepts and accommodation items. For example, the scores may be:
number
number
number
number
number
number
number
number
[0099] In some embodiments, the learning function 210 is then in the following form:
number
number
number
[0100] Figure 6 is a flowchart illustrating an example 600 of processing a user-submitted search query according to various aspects of this disclosure.
[0101] In block 602, a query containing one or more concepts is accessed. In some embodiments, the query may be accessed via user input to the search system (e.g., typed input, voice command, etc.). For example, a user may submit the query "hotels with beaches" to a travel website or application (e.g., a travel website hosted by the travel service system 108 in Figure 1) using a user device (e.g., device 102 in Figure 1). In some embodiments, the search system (e.g., the search system 120 in Figure 1) may extract any concepts identified in the submitted search query. For example, to extract concepts from a user query, the search system may first break down the query into individual words (e.g., in a tokenization process). In the provided example, "hotels with beaches" may be broken down into "hotels", "with", and "beaches". The search system may then identify the concepts using a model trained to recognize those terms (e.g., a named entity recognition model). For example, "beaches" may be recognized as a concept. In some embodiments, the search system may retrieve query terms within a conceptual identifier storage (e.g., conceptual identifier storage 218 in Figure 2). In some embodiments, once a concept is identified, the search system may look for the identified vector in the submitted query.
[0102] In block 604, the search system searches for and identifies the vector position of a vector representing a first concept. To do this, for example, the search system can query a vector database (e.g., vector database 118 in Figure 1) for a concept identifier. Referring to the provided example, the search system may query a vector representing "beach" and return the position of that vector.
[0103] In block 606, once a location is found, the search system defines a search range with a boundary at a threshold distance defined by the distance between the vector locations. For example, the distance between vectors is based on the distance between the first vector location of a first concept and the distance in n-dimensional space around the first vector location (see, for example, Figure 3, the threshold can be a larger sphere enclosing a particular concept, shown as a sphere such as "Desert 308," where the sphere is the center point of the larger sphere). In some embodiments, the threshold is preconfigurable (e.g., by an administrator or user) or dynamically determined (e.g., based on the number of desired results, the total number of concepts or accommodation items in the embedded space, the processing power of the travel service system 108 server or the user device performing the query, the internet speed between the travel service system 108 server and the user device performing the query, a machine learning algorithm or a combination of factors). It may also be desired to present only a specific number of results (e.g., accommodation items) to the user performing the query, such as 5, 10, 20, etc. Therefore, in some embodiments, the travel service system 108 may retrieve only a desired number of results, for example, to save processing power and / or to perform searches more quickly (e.g., within the vector database 118). In some embodiments, the travel service system 108 may retrieve as many hits as possible (e.g., accommodation items) (e.g., within a certain distance range in the embedding space), and then rank and filter the number of results so that the top 5, 10, 20, etc. results are provided to the user (e.g., via a graphical user interface) for selection.
[0104] In block 608, the search system identifies one or more accommodation items within the search range defined in block 606. In some embodiments, the search system compiles a list of identified accommodation items. In some embodiments, the search system identifies other concepts within the search range. In some embodiments, the search system then expands the search range to include accommodation items within the range of identified concepts. In some embodiments, the search range may not be defined or configured, and the search system may proceed to query all vectors in the embedding space. For example, the search system may query a vector database for accommodation items within a range of vector locations. In some embodiments, the search system may compile a list of identified accommodation items.
[0105] Next, in block 610, the search system generates and transmits output containing one or more accommodation items identified in block 608. In some embodiments, the search system returns a filtered list of accommodation items. For example, in addition to submitting a query for "seaside accommodations," the user may specify that they want results within a particular price range. The system may extract a list of accommodation items that are close to the concept "seaside" and then filter this list by accommodation items within the price range. The filtered list may then be provided to the user. For example, if the user queries for "seaside accommodations" and specifies a desired price range, the system generates a list of accommodation items that are close to the concept "seaside" and then filters this list based on the given price range. The type of accommodation item may further be limited to accommodations. In some implementations, the embedded space can be filtered before determining the output of one or more accommodation items. For example, instead of filtering the final list of results, the embedded space being searched can be filtered to omit any accommodation items that have been excluded from the filter. The search of the pre-filtered embedded space can then be performed. In some embodiments, the search system may provide a user device (e.g., user device(s) 102 in Figure 1) with computer-executable display commands to display at least a portion of the list of identified accommodation items on a graphical user interface.
[0106] V. Exemplary Computing Systems All methods and tasks described herein may be performed by a computer system and fully automated. In some cases, the computer system may include multiple separate computers or computing devices (e.g., physical servers, workstations, storage arrays, cloud computing resources, etc.) that communicate and interoperate over a network to perform the described functions. Each such computing device typically includes a processor (or more processors) that executes program instructions or modules stored in memory or other non-temporary computer-readable storage media or devices (e.g., solid-state storage devices, disk drives, etc.). The various functions disclosed herein may be embodied in such program instructions or implemented in application-specific circuits (e.g., ASICs or FPGAs) of the computer system. If the computer system includes multiple computing devices, these devices may, but are not necessarily, be installed together. The results of the disclosed methods and tasks may be permanently stored by converting physical storage devices, such as solid-state memory chips or magnetic disks, into different states. In some embodiments, the computer system may be a cloud-based computing system in which processing resources are shared by multiple separate entities or other users.
[0107] For example, Figure 7 is a block diagram showing a computer system 700 that can implement various embodiments. The computer system 700 includes a bus 702 or other communication mechanism for communicating information and a hardware processor or a plurality of processors 704 coupled to the bus 702 for processing information. The hardware processor(s) 704 may be, for example, one or more general-purpose microprocessors.
[0108] The computer system 700 also includes main memory 706, such as random access memory (RAM), cache, and / or other dynamic storage devices, coupled to bus 702 for storing information and instructions executed by processor 704. Main memory 706 may also be used to store temporary variables or other intermediate information during the execution of instructions by processor 704. When such instructions are stored in a storage medium accessible to processor 704, they render the computer system 700 into a dedicated machine customized to perform the operations specified by the instructions.
[0109] The computer system 700 further includes read-only memory (ROM) 708 or other static storage devices coupled to the bus 702 for storing static information and instructions for the processor 704. A storage device 710, such as a magnetic disk, optical disk, or USB thumb drive (flash drive), is provided and coupled to the bus 702 for storing information and instructions.
[0110] The computer system 700 may be coupled via bus 702 to a display 712, such as a cathode ray tube (CRT) or LCD display (or touchscreen), to display information to the computer user. An input device 714, including alphanumeric and other keys, is coupled to bus 702 to communicate information and command selections to the processor 704. Another type of user input device is a cursor control 716, such as a mouse, trackball, or cursor directional keys, for communicating directional information and command selections to the processor 704 and for controlling cursor movement on the display 712. This input device typically has two degrees of freedom on two axes, a first axis (e.g., x) and a second axis (e.g., y), so that the device can specify a position in a plane. In some embodiments, the same directional information and command selection as cursor control may be performed by receiving touches on a touchscreen without a cursor.
[0111] The computing system 700 may include a user interface module that implements a GUI which can be stored in mass memory as computer executable program instructions executed by a computing device(s). The computer system 700 may further implement the techniques described herein using customized hardwired logic, one or more ASICs or FPGAs, firmware, and / or program logic combined with the computer system to make the computer system 700 a dedicated machine or to program the computer system 700 to make it a dedicated machine, as described below. According to one embodiment, the techniques described herein are executed by the computer system 700 in response to a processor(s) 704 executing one or more sequences of one or more computer-readable program instructions contained in main memory 706. Such instructions may be read into main memory 706 from another storage medium, such as a storage device 710. By executing the sequence of instructions contained in main memory 706, the processor(s) 704 executes the process steps described herein. In alternative embodiments, hardwired circuitry may be used instead of or in combination with software instructions.
[0112] Various forms of computer-readable media may be involved in conveying one or more sequences of one or more computer-readable program instructions to the processor 704 for execution. For example, instructions may initially be conveyed on a magnetic disk or solid-state drive of a remote computer. The remote computer may load the instructions into its dynamic memory and send them over a telephone line using a modem. A modem local to computer system 700 may receive data over the telephone line and convert the data into an infrared signal using an infrared transmitter. An infrared detector may receive the data conveyed by the infrared signal, and appropriate circuitry may place the data on bus 702. Bus 702 transmits the data to main memory 706, from which the processor 704 retrieves and executes the instructions. Instructions received by main memory 706 may optionally be stored in storage device 710 either before or after execution by processor 704.
[0113] The computer system 700 also includes a communication interface 718 coupled to bus 702. The communication interface 718 provides bidirectional data communication coupled to a network link 720 connected to a local network 722. For example, the communication interface 718 may be an Integrated Digital Network (ISDN) card, a cable modem, a satellite modem, or a modem that provides data communication connectivity to a corresponding type of telephone line. As another example, the communication interface 718 may be a LAN card that provides data communication connectivity to a compatible local area network (LAN) (or a WAN component for communicating with a WAN). A wireless link may also be implemented. In any such embodiment, the communication interface 718 transmits and receives electrical, electromagnetic, or optical signals that convey digital data streams representing various types of information.
[0114] A network link 720 typically provides data communication to other data devices over one or more networks. For example, a network link 720 may provide connectivity to a host computer 724 via a local network 722, or to data equipment operated by an Internet service provider (ISP) 726. The ISP 726 then provides data communication services over a global packet data communication network now commonly referred to as the “Internet” 728. Both the local network 722 and the Internet 728 use electrical, electromagnetic, or optical signals to transmit digital data streams. Signals over various networks that transmit digital data to and from a computer system 700, and signals over a communication interface 718 on the network link 720, are exemplary forms of transmission media.
[0115] The computer system 700 can send messages and receive data, including program code, via a network(s), network link 720, and communication interface 718. In the case of the internet, server 730 may transmit requested code for an application program via the internet 728, ISP 726, local network 722, and communication interface 718.
[0116] The received code may be executed by processor 704 when it is received, and / or stored in storage device 710 or other non-volatile storage for later execution.
[0117] VI. Details, terminology, and aspects of additional embodiments To facilitate understanding of the systems and methods discussed herein, some terms are defined below. These terms and other terms used herein should be interpreted as including the explanations provided, the ordinary and conventional meanings of the terms, and / or any other implied meanings of each term, and such interpretations are consistent with the context of the term. Thus, the following explanations are not intended to limit the meaning of these terms, but merely to provide illustrative descriptions.
[0118] Where used in this disclosure, the terms “model” or “machine learning model” can include any computer-based model of any type and any level of complexity, such as any type of sequential model, functional model, or parallel model. Models can further include, for example, artificial neural networks ("NN"), language models (e.g., large language models ("LLM")), artificial intelligence ("AI") models, machine learning ("ML") models, and / or multimodal models (e.g., models or combinations of models that can accept input of multiple modalities, such as images and text).
[0119] A language model is any algorithm, rule, model, and / or other program instruction that can predict the probabilities of a sequence of words. Given an initial text string (e.g., one or more words), a language model can predict the next word in the sequence. A language model can calculate the probabilities of different word combinations based on patterns learned during training (based on sets of text data from books, articles, websites, audio files, etc.). A language model can generate many combinations of one or more next words (and / or sentences) that are consistent and contextually relevant. Thus, a language model can be a sophisticated artificial intelligence algorithm trained to understand, generate, and manipulate language. Language models can be useful in natural language processing, including receiving natural language prompts and providing natural language responses based on the texts the model is trained on. Language models can include n-gram models, exponential models, positional models, neural network models, and / or other types of models.
[0120] A Large-Scale Language Model ("LLM") is any type of language model that is trained on a larger dataset and has a greater number of training parameters compared to a regular language model. Due to its extensive training, an LLM can understand more complex patterns and generate more consistent and contextually relevant text. Therefore, LLMs can perform well across a wide range of topics and tasks. An LLM may include a neural network (NN) trained using self-managed learning. An LLM can be any type, such as a question-answering ("QA") LLM, and / or a multimodal LLM / model, which can be optimized to generate answers from context. An LLM (and / or other models in this disclosure) may include, for example, an attention-based architecture and / or a transformer architecture or function.
[0121] Certain aspects and embodiments are discussed herein with respect to the use of language models, LLMs, and / or AI, but these aspects and embodiments may be implemented by any other language models, LLMs, AI models, generative AI models, generative models, ML models, NNs, multimodal models, and / or other algorithmic processes. Similarly, certain aspects and embodiments are discussed herein with respect to the use of ML models, but these aspects and embodiments may be implemented by any other AI models, generative AI models, generative models, NNs, multimodal models, and / or other algorithmic processes.
[0122] In various embodiments, the LLM and / or other models (including ML models) of this disclosure may be hosted locally, managed in the cloud, accessed via one or more application programming interfaces ("APIs"), and / or any combination thereof. Furthermore, in various embodiments, the LLM and / or other models (including ML models) of this disclosure may be implemented in or by electronic hardware such as application-specific processors (e.g., application-specific integrated circuits ("ASICs")), programmable processors (e.g., field-programmable gate arrays ("FPGAs")), and / or application-specific circuits. Data that can be queried using the systems and methods of this disclosure may include text, files, documents, books, manuals, emails, images, audio, video, databases, metadata, location data (e.g., geographic coordinates), geospatial data, sensor data, web pages, time-series data, and / or any combination thereof. In various embodiments, such data may include model inputs and / or outputs, model training data, and / or modeled data.
[0123] Examples of models, language models, and / or LLMs that may be used in various embodiments of this disclosure include, for example, BidirectionaL Encoder Representations from Transformers (BERT), LaMDA (Language Model for Dialogue Applications), PaLM (Pathways Language Model), PaLM2 (Pathways Language Model 2), Generative Pre-trained Transformer 2 (GPT-2), Generative Pre-trained Transformer 3 (GPT-3), Generative Pre-trained Transformer 4 (GPT-4), LLaMA (Large-Scale Language Model Meta AI), and BigScience Large Open-science Open-access Multilingual Language Model (BLOOM).
[0124] The terms machine learning and / or artificial intelligence are used herein, but the scope of each term is to include all types of machine learning, artificial intelligence, neural networks, etc., known to those skilled in the art. AI or ML models may be built or trained on sample data or training data to make predictions or decisions without being explicitly programmed to do so. In some embodiments, machine learning algorithms, models, and / or programs can perform tasks without being explicitly programmed to do so. For example, some aspects of this disclosure may involve training an AI / ML model on a computer to perform a particular desired task that may not be possible for a human to perform manually.
[0125] Several different types of AI / ML algorithms and AI / ML models or approaches may be used by machine learning components to implement the model. For example, certain embodiments of this specification may use logistic regression models, decision trees, random forests, convolutional neural networks, deep networks, or others. However, other models are also possible, such as linear regression models, discrete selection models, or generalized linear models. Embodiments of machine learning can be configured to adaptively develop and update the model over time based on new inputs. For example, as data is collected over time, the model can be periodically updated by training, retraining, or in other ways, as new incoming data becomes available that helps keep the predictions in the model more accurate. Alternatively, for example, the model can be trained, retrained, or in other ways based on configurations received from a user, administrator, or other device. Some non-exclusive examples of machine learning algorithms that can be used to train, retrain, or otherwise update a model include supervised and unsupervised machine learning algorithms, including regression algorithms (e.g., least squares regression), instance-based algorithms (e.g., learning vector quantization), decision tree algorithms (e.g., classification and regression trees), Bayesian algorithms (e.g., naive Bayes), clustering algorithms (e.g., k-means clustering), association rule learning algorithms (e.g., a priori algorithms), artificial neural network algorithms (e.g., perceptrons), deep learning algorithms (e.g., deep Boltzmann machines), dimensionality reduction algorithms (e.g., principal component analysis), ensemble algorithms (e.g., stacked generalization), support vector machines, federative learning, and / or other machine learning algorithms. These machine learning algorithms may include any type of machine learning algorithm, including hierarchical clustering algorithms and cluster analysis algorithms such as k-means algorithms. In some cases, the execution of a machine learning algorithm may involve the use of artificial neural networks.By using machine learning techniques, it is possible to analyze large amounts of incoming data (such as terabytes or petabytes) to generate or implement models that minimize or eliminate manual analysis or review by one or more people.
[0126] In some embodiments, a supervised learning algorithm can construct a mathematical model of a data set that includes both inputs and desired outputs. For example, training data can be used, which includes a set of training examples or labeled / annotated examples. Each training example has one or more inputs and a desired output, also known as a control signal. In the mathematical model, for example, each training example is represented by an array or vector (e.g., a feature vector), and the training data is represented by a matrix. Through iterative optimization of an objective function, a supervised learning algorithm can learn a function that can be used to predict the output associated with a new input. For example, the optimal function may allow the algorithm to correctly determine the output for inputs that were not part of the training data. For example, an algorithm that improves the accuracy of its output or prediction over time is said to have learned to do its job. Types of supervised learning algorithms may include, but are not limited to, active learning, classification, and regression. Classification algorithms are used, for example, when the output is restricted to a limited set of values. Regression algorithms are used, for example, when the output can have any number within a range. For example, in a classification algorithm that filters emails, the input is the received emails and the output is the name of the folder where the emails are filed. In some embodiments, similarity learning, a domain of supervised machine learning, is closely related to regression and classification, but its purpose is to learn from examples using a similarity function that measures how similar or related two objects are. In some embodiments, similarity learning has been applied in ranking, recommendation systems, visual identity tracking, face verification, and speaker verification.
[0127] In some embodiments, an unsupervised learning algorithm can take a set of data containing only inputs and find structure within the data, such as grouping or clustering of data points. For example, the algorithm can learn from test data that has not been labeled, classified, or categorized. Instead of responding to feedback, an unsupervised learning algorithm can identify commonalities in the data and react based on the presence or absence of such commonalities in each new set of data. In some embodiments, unsupervised learning involves summarizing and describing data features. In some embodiments, cluster analysis involves assigning sets of observations to subsets (e.g., clusters) so that observations within the same cluster are similar according to one or more pre-specified criteria, and observations from different clusters are not similar. In some cases, different clustering methods can make different assumptions about the structure of the data, often defined by some similarity metric, such as internal compactness, or similarity between members of the same cluster, and separation, or differences between clusters. For example, other methods can be based on estimated density and graph connectivity.
[0128] In some embodiments, semi-supervised learning can be a combination of unsupervised learning (without labeled training data) and supervised learning (with fully labeled training data). For example, some training examples may lack training labels, and in some cases, such training examples can significantly improve the accuracy of learning compared to supervised learning. In some embodiments, in weakly supervised learning, training labels may be noisy, limited, or inaccurate, but these labels are often inexpensive to acquire, resulting in a larger, more substantial training set.
[0129] In some embodiments, the field of machine learning concerns how a software agent should act within an environment to maximize some concept of cumulative reward. In some embodiments, the environment is typically represented as a Markov decision process (MDP). In some embodiments, the reinforcement learning algorithm uses dynamic programming techniques. In some embodiments, the reinforcement learning algorithm does not assume knowledge of the exact mathematical model of the MDP and is used when the exact model is not feasible.
[0130] In addition to supervised, unsupervised, and semi-supervised learning algorithms, some embodiments may implement other types of machine learning methods such as reinforcement learning (e.g., a method for maximizing a concept of a cumulative reward by dealing with how a software agent should behave in an environment), dimensionality reduction (e.g., the process of reducing the number of random variables under consideration by obtaining a set of principal variables), self-learning (e.g., learning without external rewards and external guidance from a teacher), feature learning or representation learning (e.g., not only storing information about its input but also transforming it to be useful), anomaly detection or outlier detection (e.g., identifying rare items, events, or observations that are suspicious because they differ significantly from the majority of the data), and / or correlation rules (e.g., discovering relationships between variables in a large database).
[0131] Furthermore, depending on the embodiment, certain activities, events, or functions of any of the processes or algorithms described herein can be executed in different orders, added, merged, or omitted entirely (for example, not all described actions or events are essential for the practice of this algorithm). In particular embodiments, actions or events can be executed concurrently rather than sequentially, for example, through multithreading, interrupt handling, or across multiple processors or processor cores, or in other parallel architectures.
[0132] The various exemplary logic blocks, modules, routines, and algorithmic steps described in connection with the embodiments disclosed herein can be implemented as electronic hardware or as a combination of electronic hardware and computer software. To clearly illustrate such interoperability, the various exemplary components, blocks, modules, and steps are generally described above in terms of their functionality. Whether such functionality is implemented as hardware or as software running on hardware depends on the specific application and the design requirements imposed on the overall system. The described functionality can be implemented in a manner that varies with respect to each specific application, but such a decision on implementation form should not be construed as resulting in a departure from the scope of this disclosure.
[0133] Furthermore, various exemplary logic blocks and modules described in relation to the embodiments disclosed herein can be implemented or performed by machines such as processor devices, digital signal processors (DSPs), application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs), or other programmable logic devices, discrete gate or transistor logic, discrete hardware components, or any combination thereof, designed to perform the functions described herein. A processor device may be a microprocessor; alternatively, a processor device may be a controller, microcontroller, or state machine, or a combination thereof. A processor device may include electrical circuits configured to process computer executable instructions. In another embodiment, a processor device includes an FPGA or other programmable device that performs logic operations without processing computer executable instructions. A processor device can also be implemented as a combination of computing devices, such as a DSP and a combination of a microprocessor, multiple microprocessors, one or more microprocessors working in conjunction with a DSP core, or any other such components. Although this specification primarily describes digital technologies, processor devices may also primarily include analog components. For example, some or all of the algorithms described herein may be implemented in analog circuits or in mixed analog and digital circuits. The computing environment may include, but is not limited to, any type of computer system, including, a few examples, microprocessors, mainframe computers, digital signal processors, portable computing devices, device controllers, and computer systems based on in-house computing engines.
[0134] Elements of methods, processes, routines, or algorithms described in connection with embodiments disclosed herein can be directly embodied in hardware, in software modules executed by a processor device, or in a combination of the two. Software modules may reside in RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, hard disks, removable disks, CD-ROMs, or any other form of non-transient computer-readable storage medium. Exemplary storage media may be coupled to a processor device so that the processor device can read information from and write data to the storage medium. Alternatively, the storage medium may be integrated into the processor device. The processor device and storage medium may reside in an ASIC. The ASIC may reside in a user terminal. Alternatively, the processor device and storage medium may reside as discrete components in a user terminal.
[0135] Furthermore, various embodiments may provide various interactive graphical user interfaces that enable various types of users to interact with the systems and methods described herein to, for example, generate, review, and / or modify data captured by one or more of the disclosed systems or methods.
[0136] The interactive, dynamic user interfaces described herein are made possible by innovations in efficient interaction between the user interface and the underlying systems and components. For example, improved methods are disclosed herein for receiving user input, converting and distributing those inputs to various system components, automatically and dynamically executing complex processes in response to input distribution, automatically interacting between various components and processes of the system, and automatically and dynamically updating the user interface. Thus, the interaction and presentation of data through the interactive user interfaces described herein can offer cognitive and ergonomic efficiencies and advantages compared to previous systems.
[0137] Therefore, in various embodiments, large amounts of data may be automatically and dynamically collected and analyzed in response to user input and settings, and the analyzed data can be efficiently presented to the user. Thus, in some embodiments, the systems, devices, configuration functions, graphical user interfaces, etc., described herein are more efficient than previous systems.
[0138] Various embodiments of this disclosure provide improvements in various technologies and technical fields, as well as practical applications of various technical features and advancements. For example, as described above, some existing systems are limited in various ways, and various embodiments of this disclosure provide significant improvements to such systems and practical applications of such improvements. Furthermore, various embodiments of this disclosure are inextricably linked to and provide practical applications of computer technology. In particular, various embodiments rely on dedicated hardware and software components installed in specific locations to improve energy and processing efficiency. Such and other features are closely related to and enabled by computer technology, artificial intelligence, and digital signal technology, and would not exist without computer technology, artificial intelligence, and digital signal technology. For example, review analysis systems, embedded systems, and retrieval systems are not reasonably performable by humans alone without the computers and technologies on which they are implemented. Furthermore, the implementation of various embodiments of this disclosure by computer technology enables many of the advantages described herein, including more efficient interaction with and analysis of various types of electronic data.
[0139] Various combinations of the features, embodiments, and aspects described above are also disclosed and contemplated in this disclosure. Additional embodiments of this disclosure are described below with reference to the appended claims, which may serve as an additional summary of this disclosure.
[0140] In various embodiments, a system and / or computer system is disclosed, comprising: a computer-readable storage medium on which program instructions are embodied; and one or more processors configured to execute the program instructions and cause the system and / or computer system to perform operations including one or more of the embodiments described above and / or below (including one or more of the embodiments of the appended claims).
[0141] In various embodiments, computer implementation methods are disclosed, wherein one or more embodiments of the embodiments described above and / or below (including one or more embodiments of the appended claims) are implemented and / or carried out by one or more processors that execute program instructions.
[0142] In various embodiments, a computer program product is disclosed comprising a computer-readable storage medium, wherein program instructions are embodied in the computer-readable storage medium, and the program instructions are executable by one or more processors to cause one or more processors to perform operations including one or more embodiments of the embodiments described above and / or below (including one or more embodiments of the appended claims).
[0143] While certain preferred embodiments and examples are disclosed above, the subject matter of the invention extends beyond the specifically disclosed embodiments to other alternative embodiments and / or uses, as well as their modifications and equivalents. Therefore, the claims appended herein are not limited to any of the specific embodiments described below. For example, in any method or process disclosed herein, the actions or operations of the method or process may be performed in any preferred order and are not necessarily limited to any particular disclosed order. Various operations may be described sequentially as a plurality of separate operations in a manner that may be helpful in understanding a particular embodiment, but the order of description should not be interpreted as implying that these operations are order-dependent. Furthermore, the structures, systems, and / or devices described herein may be embodied as integrated components or separate components. For the purpose of comparing various embodiments, certain aspects and advantages of these embodiments are described. Not all such aspects or advantages are necessarily achieved by any particular embodiment. Therefore, for example, various embodiments may be implemented in a manner that achieves or optimizes one or more advantages taught herein, without necessarily achieving other embodiments or advantages that may be taught or suggested herein.
[0144] In particular, conditional language used herein, such as “can,” “could,” “might,” “may,” and “e.g.,” is generally intended to convey that a particular embodiment includes certain features, elements, and / or steps, and other embodiments do not, unless it is specifically stated otherwise or understood otherwise in the context in which it is used. Therefore, such conditional language is generally not intended to imply that features, elements, and / or steps are required in any way with respect to one or more embodiments, or that one or more embodiments necessarily include logic for determining, with or without other inputs or prompts, whether these features, elements, and / or steps are included in any particular embodiment or should be performed in any particular embodiment. Terms such as “equip,” “include,” and “have” are synonymous and are used inclusively in an open-ended manner, without excluding additional elements, features, actions, behaviors, etc. Furthermore, the term "or" is used in an inclusive sense (not an exclusive sense), and when used to connect a list of elements, for example, the term "or" means one of the elements in the list, some of them, or all of them.
[0145] Disjunctive language, such as the phrase "at least one of X, Y, and Z," is generally understood in context to indicate that an item, term, etc., may be X, Y, Z, or any combination thereof (e.g., X, Y, and / or Z), unless it is specifically stated otherwise. Therefore, such disjunctive language is generally not intended, nor should it be meant, to imply, that a particular embodiment requires the presence of at least one X, at least one Y, or at least one Z.
[0146] Unless otherwise specified, articles such as "a" or "an" should generally be interpreted as including one or more listed items. Therefore, phrases such as "devices configured to..." are intended to include one or more enumerated devices. Such one or more enumerated devices may also be collectively configured to perform the listed enumerations. For example, "processors configured to perform enumerations A, B, and C" may include a first processor configured to perform enumeration A, which works in conjunction with a second processor configured to perform enumerations B and C.
[0147] While the above detailed description illustrates, explains, and points out novel features applicable to various embodiments, it is possible to understand that various omissions, substitutions, and modifications of the form and details of the exemplary devices or algorithms may be made without departing from the spirit of this disclosure. As can be recognized, certain embodiments described herein may be embodied in a form that does not provide all of the features and benefits described herein, since some features may be used or implemented separately from others. The scope of certain embodiments disclosed herein is indicated not by the above description but by the appended claims. All modifications that fall within the meaning and equivalents of the claims shall be encompassed within those scopes.
Claims
1. A computer implementation method, When performed by a computing system including one or more processors configured to execute specific instructions, Accessing review data, wherein the review data includes multiple reviews, each review corresponds to at least one accommodation item among multiple accommodation items, includes at least one concept among multiple concepts, and expresses at least one emotion associated with the at least one concept, Identifying a set of associations from the review data, wherein each association in the set of associations indicates that each review in the plurality of reviews corresponds to a specific accommodation item from the plurality of accommodation items, includes a specific concept from the plurality of concepts, and exhibits a specific emotion. For each of the plurality of accommodation items and each of the plurality of concepts, the generation of the generation includes generating a set of embeddings, wherein the set of embeddings identifies each accommodation item and each concept in a shared multidimensional embedding space, and generating the set of embeddings includes, for each of the set of associations, modifying the distance between the specific accommodation item in the association and the specific concept included in the association, at least in part based on the specific emotion of the association. A computer implementation method comprising storing the set of embeddings.
2. Receiving a query containing a search string, wherein the search string includes at least a first concept, From the set of embeddings, identify a first conceptual embedding that represents the first concept, Calculate the distance between the first conceptual embedding and the accommodation item embedding within the set of embeddings, Based on the calculated distance, determine the set of accommodation item embeddings that corresponds to the set of accommodation items, The computer implementation method according to claim 1, further comprising outputting the set of accommodation items in response to the received query.
3. The computer implementation method according to claim 2, further comprising performing a filtering operation on the set of accommodation items based on at least one of a price filter and an availability filter before outputting the set of accommodation items.
4. Identifying a second conceptual embedding within a threshold distance to the first concept within the set of embeddings, Determining a second set of accommodation items that satisfy the similarity criteria with respect to the first and second concept embeddings, The computer implementation method according to claim 2, further comprising outputting the second set of accommodation items in response to the received query.
5. Modifying the distance between the aforementioned specific accommodation item and the aforementioned specific concept is, Based on the determination that the first emotion of the first association in the set of associations is positive, modify the first distance such that the first distance between the first accommodation item and the first concept decreases, or A computer implementation method according to claim 1, comprising modifying the first distance such that the first distance increases based on a determination that the first emotion of the first association is negative.
6. Correcting the distance between the aforementioned specific accommodation item and the aforementioned specific concept is done based on the application of a triplet loss function. Based on the determination that the first emotion of the first association in the set of associations is positive based on the first accommodation item as an anchor, modify the first distance such that the first distance between the first accommodation item and the first concept decreases, or A computer implementation method according to claim 1, comprising modifying the first distance such that the first distance increases based on a determination that the first emotion of the first association is negative based on the first accommodation item as an anchor.
7. Modifying the distance between the aforementioned specific accommodation item and the aforementioned specific concept is, The loss function [Math 1] It is the calculation of, [Math 2] is a similarity function, [Math 3] This is the margin, [Math 4] This is an accommodation item, [Math 5] teeth, [Math 6] This is a positive concept, [Number 7] The concept that makes it a negative concept is the aforementioned calculation, The computer implementation method according to claim 1, comprising correcting the first distance based on the calculation of the loss function.
8. The computer implementation method according to claim 1, wherein the computer implementation method is further implemented as a two-tower architecture, the first tower being based on the plurality of concepts and the second tower being based on the plurality of accommodation items.
9. The computer implementation method according to claim 1, wherein the identified concepts include one or more of the following: weather, nearby landmarks, characteristics of landmarks, seasons, prices, and activities.
10. The computer implementation method according to claim 1, wherein the generation of the set of embeddings is carried out by using a learning function or a machine learning model.
11. The computer implementation method according to claim 1, wherein the one or more processors are further configured to select the number of dimensions of the embedding space.
12. The computer implementation method according to claim 3, wherein the selection is at least partially based on statistics of the review data by using a learning function or machine learning model.
13. Accessing updated review data, at least in part, based on the occurrence of a review event which includes the end of a set interval for updating one or more embeddings in the set of embeddings, The iterative processing of each reference to each concept in the updated review data, wherein the iterative processing with respect to the first review of the updated review data is To calculate the first distance between the first conceptual embedding and the first accommodation item embedding, Performing a first determination that the first distance does not accurately represent the relationship between the first conceptual embedding and the first accommodation item embedding, The computer implementation method according to claim 1, further comprising the iterative processing, which includes updating the first concept embedding, the first accommodation item embedding, or both, based on the first determination.
14. The computer implementation method according to claim 1, wherein the identification of concepts within the review data is at least partially based on the frequency of occurrence of terms within the review data.
15. The computer implementation method according to claim 1, wherein identifying sentiment in the review data is at least in part based on identifying features within each of the plurality of reviews.
16. A computer-readable storage medium for storing program instructions, A system comprising one or more processors, wherein the one or more processors execute the program instructions to the system, Accessing review data, wherein the review data includes multiple reviews, each review corresponds to at least one accommodation item among multiple accommodation items, includes at least one concept among multiple concepts, and expresses at least one emotion associated with the at least one concept, Identifying a set of associations from the review data, wherein each association in the set of associations indicates that each review in the plurality of reviews corresponds to a specific accommodation item from the plurality of accommodation items, includes a specific concept from the plurality of concepts, and exhibits a specific emotion. For each of the plurality of accommodation items and each of the plurality of concepts, the generation of the generation includes generating a set of embeddings, wherein the set of embeddings identifies each accommodation item and each concept in a shared multidimensional embedding space, and generating the set of embeddings includes, for each of the set of associations, modifying the distance between the specific accommodation item in the association and the specific concept included in the association, at least in part based on the specific emotion of the association. The system that stores the set of embedded objects and causes the system to perform the following actions.
17. The one or more processors described above are Receiving a query containing a search string, wherein the search string includes at least a first concept, From the set of embeddings, identify a first conceptual embedding that represents the first concept, Calculate the distance between the first conceptual embedding and the accommodation item embedding within the set of embeddings, Based on the calculated distance, determine the set of accommodation item embeddings that corresponds to the set of accommodation items, The system according to claim 16, configured to output the set of accommodation items in response to the received query.
18. Modifying the distance between the aforementioned specific accommodation item and the aforementioned specific concept is, Based on the determination that the first emotion of the first association in the set of associations is positive, modify the first distance such that the first distance between the first accommodation item and the first concept decreases, or The system according to claim 16, comprising modifying the first distance such that the first distance increases based on the determination that the first emotion of the first association is negative.
19. Modifying the distance between the aforementioned specific accommodation item and the aforementioned specific concept is, The loss function [Number 8] It is the calculation of, [Number 9] is a similarity function, [Number 10] This is the margin, [Math 11] This is an accommodation item, [Math 12] teeth, [Number 13] This is a positive concept, [Number 14] The concept that makes it a negative concept is the aforementioned calculation, The system according to claim 16, further comprising correcting the first distance based on the calculation of the loss function.
20. The one or more processors described above are Accessing updated review data, at least in part, based on the occurrence of a review event which includes the end of a set interval for updating one or more embeddings in the set of embeddings, The iterative processing of each reference to each concept in the updated review data, wherein the iterative processing with respect to the first review of the updated review data is To calculate the first distance between the first conceptual embedding and the first accommodation item embedding, Performing a first determination that the first distance does not accurately represent the relationship between the first conceptual embedding and the first accommodation item embedding, The system according to claim 16, configured to perform the iterative processing, which includes updating the first concept embedding, the first accommodation item embedding, or both, based on the first determination.