WO2013144626A1 - Chat system and method - Google Patents

Chat system and method Download PDF

Info

Publication number
WO2013144626A1
WO2013144626A1 PCT/GB2013/050809 GB2013050809W WO2013144626A1 WO 2013144626 A1 WO2013144626 A1 WO 2013144626A1 GB 2013050809 W GB2013050809 W GB 2013050809W WO 2013144626 A1 WO2013144626 A1 WO 2013144626A1
Authority
WO
WIPO (PCT)
Prior art keywords
user
chat
data
users
engaged
Prior art date
Application number
PCT/GB2013/050809
Other languages
French (fr)
Inventor
Mark Ryan
Andrew Manson
Stephen Lawrence
Original Assignee
Blooie Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Blooie Limited filed Critical Blooie Limited
Publication of WO2013144626A1 publication Critical patent/WO2013144626A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • H04L12/1813Arrangements for providing special services to substations for broadcast or conference, e.g. multicast for computer conferences, e.g. chat rooms
    • H04L12/1822Conducting the conference, e.g. admission, detection, selection or grouping of participants, correlating users to one or more conference sessions, prioritising transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/52User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail for supporting social networking services

Definitions

  • the present invention relates to systems and methods enabling users to exchange messages using chatting systems.
  • So-called instant messaging or “chatting” systems enable users to exchange chat data, such as messages containing text.
  • chat data such as messages containing text.
  • a chat interface runs on a client terminal, such as a personal computer, smart phone, tablet computer, games console and so on, which allows chat data such as text to be entered.
  • client terminal such as a personal computer, smart phone, tablet computer, games console and so on
  • chat data such as text to be entered.
  • chat data is sent to a server and on to another user with whom the first user is engaged in a chat session.
  • Examples of conventional chatting systems include systems based on Internet Relay Chat (IRC) protocol, web chat rooms, MSN Messenger, Google Chat, Facebook Chat and so on.
  • IRC Internet Relay Chat
  • users are paired together to engage in a chat session based on a pre-existing knowledge of each other. For example a first user will know a chat user identity associated with a second user and seek the second user out to engage in a chat session. This is typically performed by the chat interface providing a graphical indication of other chat users logged on via a client terminal and available to engage in a chat session.
  • a user may randomly "encounter" another user, for example in a web chat room, and begin a chat session on that basis.
  • Random user matching systems are also known that provide automated random pairing of users to engage in a chat session.
  • a user sends a message to a central server indicating a desire to engage in a chat session and the server establishes a chat session between them and another user who has also indicated a desire to engage in a chat session.
  • Examples of such systems include Omegle and Chat Roulette. These systems operate on a purely random basis and make little or no attempt to optimise the pairing of users. Accordingly, when using a conventional system, a user of a chat system can only establish a chat session with another user either if they know the other user or on a random basis if they randomly encounter the other user or if they are randomly paired with another user using a random matching system.
  • a messaging system for enabling communication of messaging data between two or more of a plurality of terminals via a messaging server.
  • the system comprises a recommendation processor which is arranged to match a first user with one or more of a plurality of other users.
  • the matching is based on chat metric data which comprises user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users.
  • the recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication session.
  • a chat system that enables a first chat user to be matched with one or more other chat users without a need for the first chat user to have any prior knowledge of the one or more second chat users.
  • the pairing is based on previously collected data which enables the matching to be optimised such that there is an improved likelihood that the users will be engaged during the subsequent communication session (i.e. chat session).
  • the messaging server is arranged to establish a communication session between a first terminal associated with the first user and one or more other terminals associated with the selected one or more other users after the first user and the one or more other users have been matched by the recommendation processor.
  • the user feedback data comprises implicit user feedback data indicating how the first user generated messaging data on the first terminal when engaged in the previous communication sessions with the plurality of other users. In accordance with these embodiments it has been recognised that certain subjective behaviours of a user (such as the degree to which a user is likely to be engaged by a communication session with another user) can be predicted based on technical data extracted from previous chat sessions.
  • This data can then be used to provide an improved chat system in which users who have, for example, expressed a desire to engage in a chat session with another user, can be optimally matched. More specifically, it has been recognised that user interaction data relating to how previous messaging data was generated (such as typing speed, message length, number of messages generated in a chat session and so on) can be used to optimally match users without a need for the user to express an explicit preference.
  • the implicit user feedback data is based on, for each of the plurality of communication sessions one or more of: a speed of entering messaging data, a length of messaging data, a number of messaging data messages generated during the communication session, and a length of communication session.
  • the user feedback data comprises explicit user feedback data corresponding to an explicit indication from the first user as to how engaged the first user was during previous communication sessions with the plurality of other users.
  • the chat metric data further comprises topic preference data, said topic preference data indicating an extent to which the first user has been engaged in one or more previous communication sessions relating to one or more topics and an extent to which the plurality of other users have been engaged in one or more previous communication sessions relating to the one or more topics.
  • the recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users also based on an extent to which topic preference data of the first user corresponds to topic preference data of the plurality of other users.
  • the topic preference data comprises explicit topic preference data corresponding to an explicit indication from the first user and plurality of other users as to how engaged the first user and plurality of other users were during previous communication sessions relating to the one or more topics.
  • the recommendation processor comprises a matching score data structure comprising a matching score value for each of a plurality of possible matches between the plurality users, said matching score value based on the chat metric data.
  • the recommendation processor is arranged to match the first user with the selected one or more of the plurality of other users by identifying which of the plurality of other users has a highest matching score associated with the first user.
  • the matching score data structure is updated as new chat metric data is collected.
  • Figure 1 provides a schematic diagram of a system arranged in accordance with first example of the present invention
  • Figure 2 provides a schematic diagram illustrating a user ranking technique for matching chat users used by an algorithm performed in accordance with an example of the present invention
  • Figure 3 shows a flow diagram providing a simplified illustration of a process performed by an algorithm performed in accordance with an example of the present invention
  • Figure 4 provides a schematic diagram of a system arranged in accordance with second example of the present invention.
  • Systems arranged in accordance with examples of the present invention include a chat recommendation processor.
  • the chat recommendation processor is arranged to receive input metrics provided by components of a chat system, process these inputs and provide as an output an optimised partner match.
  • the partner match comprises data corresponding to a match of two or more chat users ("chat users" being users of the chat system) from a list of chat users.
  • the partner match output from the recommendation processor is input to a chat server that then establishes a chat session between the matched chat users.
  • An “optimised” matching is one where two or more chat users are more likely to be engaged when conducting a chat session with each other.
  • a chat user being “engaged” generally refers to a chat user enjoying or being interested in a chat session. If a chat user is not engaged with a chat session they do not enjoy it and/or are disinterested in the chat session.
  • two variables that are likely to have an impact on chat user engagement and that can be measured and influenced by technical features of the chat system are the topic of discussion (i.e. certain topics engage certain chat users) and which other chat user or users a chat session is conducted with (i.e. a chat user will be engaged when conducting a chat session with specific other chat users) .
  • FIG. 1 provides a schematic diagram of a chat system arranged in accordance with an example of the present invention.
  • a chat system 101 includes a number of client terminals 102, 103, 104, 105, 106 each, connected via a network 107 (such as the internet) to a chat server 108.
  • the chat server 108 is arranged to host chat sessions between one or more chat users each logged on to the chat server 108 using a chat interface on one of the client terminals 102, 103, 104, 105, 106.
  • the chat interface is typically provided by any suitable means such as a chat application running on the client terminal, a web interface to a chat website hosted on the chat server 108 and so on.
  • a chat session typically comprises the exchange of chat data between two or more chat users.
  • chat data includes text data usually entered via a user input device connected to a client terminal such as a keypad.
  • chat data includes other types of suitable data such as audio data, video data and image data
  • the chat data can be created by the chat user using the client terminal, for example using a camera and/or microphone and/or touchpad associated with the client terminal, or imported from different locations, for example downloaded from the internet or from suitable storage media accessed by the client terminal.
  • chat server hosts a chat session between two or more chat users
  • the chat server monitors and maintains a record of the network socket of the relevant client terminals and forwards chat data between the client terminals as appropriate during the chat session.
  • the chat system 101 shown in Figure 1 includes a chat metric database 109 connected to the chat server 108 and a chat recommendation processor 110 connected to both the chat server 108 and the chat metric database 109.
  • the chat server 108 is adapted to provide chat metric data to the chat metric database 109.
  • the chat metric database 109 may be arranged to receive chat metric data from other sources from within and/or from outside of the chat system 101.
  • the recommendation processor 110 is arranged to maintain a ranking of chat users with respect to each other, including for example chat users logged on to the chat server 108 using the client terminals 102, 103, 104, 105, 106.
  • the chat server 108 When establishing a chat session between one or more chat users, the chat server 108 is adapted to send a match request to the recommendation processor 110. Upon receipt of the match request, the recommendation processor 110 performs a matching process in which chat metrics provide by the chat metric database 109 are processed by an algorithm to determine an optimised match between two or more chat users. Once the matching process has been performed and an optimised match identified, a partner match response corresponding to the optimised match is provided by the recommendation processor 110 to the chat server 108. The chat server 108 then establishes a chat session between the chat users associated with the partner match response. Chat Metric Data
  • the chat metric data can be any suitable metric data that can be used by the recommendation processor 110 to provide the optimised partner match between chat users. Examples include ⁇ Explicit User Feedback Data
  • chat metric data are discussed in more detail below.
  • Explicit user feedback data is chat metric data derived from feedback information from a chat user in which the chat user explicitly indicates how engaged they were during a chat session with another partner matched chat user or chat users.
  • Explicit user feedback data can be collected in any suitable way.
  • the chat interface may include a rating control (such as a graphical representation of a slider, a dial, a field into which a number is entered and so on) which a chat user can manipulate to indicate, for example, on a numerical scale, how engaged they were during the chat session (i.e. an "matching score").
  • the chat interface may include a button or any other suitable control which indicates that a chat user was particularly engaged with a chat session with a particular chat user or chat users or was not at all engaged with a chat session with a particular partner matched chat user or chat users.
  • the explicit user feedback data can include user feedback data indicating to what extent the chat user was engaged in the topics or topic being discussed during the chat session.
  • This explicit topic preference data can be collected by any suitable means for example using a rating control as described above. Accordingly, when a chat user manipulates the rating control to indicate how engaged they were, explicit topic preference data is generated which indicates the extent to which the chat user was engaged in the topic or topics under discussion during the chat session.
  • the explicit topic preference data is then sent to the chat metric database.
  • the chat user may manually enter, for example into a text field on the chat interface, a word or words identifying the topics and or topic that were being discussed during a chat session.
  • the topics or topic may be automatically identified by functionality residing, for example in the chat server 108 or the chat metric database 109.
  • the automatic identification of topics or topic under discussion can be determined from chat session data collected at the chat server 108 and sent to the chat metric database 109.
  • the topic of conversation can be extracted by analysing the content of chat data generated during a chat session by identifying particular words and phrases.
  • a topic of a website associated with the chat interface indicates the topic under discussion.
  • any suitable technique can be used. Implicit User Feedback Data
  • Implicit user feedback data is metric data derived from information about how a chat user is behaving during a chat session, for example how a chat user is interacting with the chat interface and how a chat user is responding to chat data received from a partner matched chat user/chat users.
  • the implicit user feedback data is determined from session data recorded by the client terminal, sent to the chat server 108 and then on to the chat metric database 109.
  • any suitable means of collecting the implicit user feedback data can be used.
  • Implicit user feedback data includes information associated with the way in which chat data is input by a chat user.
  • Implicit user feedback data includes text input speed (e.g. such as typing speed) which is the speed with which a chat user enters text to a user interface device such as a keyboard attached to a client terminal.
  • text input speed e.g. such as typing speed
  • a user interface device such as a keyboard attached to a client terminal.
  • chat user response time includes absolute response time which corresponds to a length of time it takes for a chat user to generate and/or send response chat data to chat data from one or more other chat users after the chat data has been received by the chat interface (and/or after the chat user has been alerted to the arrival of the chat data at the client terminal).
  • chat user response time examples include response start time data which corresponds to a length of time taken for a chat user to begin generating chat response data (e.g. to begin typing a response chat message). For example, a length of time taken for a chat user to type a first character of a response chat message after chat data from one or more other chat users has been received by the chat interface (and/or after the chat user has been alerted to the arrival of the chat data at the client terminal).
  • implicit user feedback data examples include a number of chat data messages a chat user receives before a response is sent. This example of implicit user feedback data is particularly notable when a chat user sends a number of chat messages in quick succession to a partner matched chat user.
  • implicit user feedback data include whether a chat user has unfocussed the chat interface during a chat session with another chat user.
  • a "focussed" application is the application on which a user input device has an effect on.
  • the focused application is sometimes identified by a highlighting of the application's border, showing the focused application in a brighter colour or by blurring or greying out other applications.
  • a focused web application is identified by the web browser being focused and the web application's tab being the currently active tab in that browser.
  • implicit user feedback data examples include the length of a chat user's chat data.
  • implicit user feedback data include data corresponding to a length of time a chat user is not typing when composing a reply.
  • Other examples of implicit user feedback include session length data indicating the length of time a chat session lasted between a first and second chat user.
  • the implicit user feedback data can be associated with data corresponding to the topics or topic being discussed during a chat session.
  • the association of the topics or topic under discussion with implicit feedback user data provides implicit topic preference data which, as described further below, can be used to determine an extent to which a chat user is engaged when undertaking chat sessions relating to specific topics.
  • the topics or topic under discussion can be identified without the need for explicit chat user input by, for example analysing the content of chat data generated during a chat session by identifying particular words and phrases and/or analysing a topic of a website associated with the chat interface.
  • the implicit user feedback data and the topic data can be combined to form the implicit topic preference data at any suitable point within the system, for example the chat server 108, the chat metric database 109 or the recommendation processor itself.
  • the chat metric database stores chat metric data.
  • the chat metric database stores one or more of implicit user feedback data indicating how particular chat users have generated messaging data (e.g. a speed of entering messaging data, a length of messaging data, a number of messaging data messages generated during a chat session, and a length of a chat session); implicit topic preference data, explicit user feedback data and explicit topic preference data.
  • the recommendation processor takes as an input the chat metric data collected in the chat metric database 109 and runs an algorithm which ranks chat users with respect to each other to predict a likely success of a partner match.
  • the algorithm performs this by analysing previously collected chat metric data.
  • the ranking is typically continually updated as new chat metric data is received.
  • the algorithm is arranged to determine from the chat metric data an extent to which a chat user has been engaged during a previous chat session with another chat user. For example, if the chat metric data indicates that a first chat user has been engaged during a chat session with a second chat user, the second chat user is given a higher ranking with respect to the first chat user meaning the algorithm is more likely to output a partner match between the first chat user and the second chat user. On the other hand, if the chat metric data indicates that the first chat user has not been engaged during a chat session with a third chat user, the third chat user is given a lower ranking with respect to the first chat user meaning the algorithm is less likely to output a partner match between the first chat user and the second chat user.
  • the extent to which a chat user was engaged during a previous chat session can be derived from the chat metric data in any suitable way. For example, the fact that a chat user was particularly engaged during a previous chat session can be derived directly from explicit user feedback data indicating that the chat user was particularly engaged during the chat session (e.g. a high matching score). Similarly, the fact that a chat user was not at all engaged during a chat session can be derived directly from explicit user feedback data indicating that the chat user was not engaged during the chat session (e.g. a low matching score).
  • the algorithm is arranged to infer from implicit user feedback data an extent to which the chat user was engaged during a previous chat session. For example the higher the text input speed the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the lower the text input speed the less engaged the chat user is deemed to be. In other examples the shorter the chat user response time the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the longer the chat user response time the less engaged the chat user is deemed to be. In other examples the lower the number of chat data messages a chat user receives before responding, the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the lower the number of chat data messages a chat user receives before responding the less engaged the chat user is deemed to be.
  • the higher the number of instances of a chat user unfocussing the chat interface during a chat session with another chat indicates the less engaged a chat user is during a chat session.
  • the longer a length of a chat user's chat data during a chat session the more engaged a chat user is deemed to be during a chat session with another chat user.
  • the shorter the length of a chat user's chat data the less engaged the chat user is deemed to be.
  • the algorithm is also arranged to determine from the explicit topic data and the implicit topic preference data an extent to which a chat user is likely to be engaged when engaging in chat sessions relating to particular topics. The algorithm is then arranged to increase the relative ranking of chat users the more similar their topic preferences.
  • a chat user's topic preferences can be derived directly from explicit topic preference data by simply identifying which topics the chat user has indicated are of interest to them and to what extent, and which topics the chat user has indicated are not of interest them and to what extent.
  • a chat user's topic preferences can be inferred from implicit topic data by identifying which topics were being discussed when chat metric data was collected that indicates that a chat user was particularly engaged and which topics were under discussion when chat metric data was collected that indicates that a chat user was not engaged.
  • the algorithm will rank chat users who both are both engaged by the same topic more highly with respect to each other. In other examples, the algorithm will also rank chat users who are both not engaged by the same topic more highly with respect to each other. In further examples, the algorithm will rank chat users more highly with respect to each other, the more closely the chat users' topic preferences match each other.
  • the algorithm is arranged to modify a set of weighting coefficients to the input chat metric data to take account of the fact that variances in different chat metrics may be of differing relevance for different chat users.
  • chat user A For example, if text input speed metric data for chat user A varies from very slow to very fast over a number of different chat sessions, but for all of these chat sessions, chat user A provides explicit user feedback that the chat sessions have all been highly engaging this implies that for chat user A text input speed does not strongly correlate to how engaged chat user A is during a chat session. Accordingly, the recommendation processor is arranged to reduce a weighting factor for text input speed metric data for chat user A accordingly.
  • chat user B changes the focus away from the chat interface during a chat session results in large variances in the extent to which chat user B was engaged during a chat session (determined, for example from other implicit user feedback data and/or other explicit user feedback data metric data), then a weighting factor for metric data corresponding to the number of focus changes during a chat session will be increased for chat user B.
  • the algorithm is arranged to normalise the chat metric data to account for the different characteristics of particular chat users. Accordingly it becomes possible to more accurately identify divergences in a chat user's normal behaviour and correlate this divergence with a chat user being more or less engaged in a chat session of a particular type or with one or more other partner matched chat users.
  • chat metric data relates to a scalar value (e.g. the number of focus changes per chat session, the length of time of the chat session, the text input speed in characters per second and so on)
  • that specific type of metric data may be normalised before being processed by the algorithm.
  • the normalisation in some examples is based on an average for that specific chat user of that type of chat metric data. For example, before being processed by the algorithm, text input speed metric data for a given chat user for a particular chat session is divided by the average text input speed of that chat user.
  • the normalisation process can be performed at any appropriate point within the system for example, in the client terminal, the chat server, the chat metric database or the recommendation processer.
  • Figure 2 provides a schematic diagram illustrating a chat user ranking technique for matching chat users used in an algorithm arranged in accordance with an example of the present invention and performed by the recommendation processor.
  • a first data structure 301 is provided which includes data corresponding to a plurality of chat users.
  • a second data structure 302 is provided which corresponds to the first data structure 301 and also includes data corresponding to the plurality of chat users.
  • the example in Figure 2 shows data corresponding to five chat users, although it will be appreciated that this is merely illustrative and the number of chat users can vary in accordance with the number of users of the chat system.
  • a third data structure is provided comprises matching data which corresponds to a number of possible matchings between each chat user with each other chat user.
  • the third data structure 303 represented in Figure 2 as a group of connecting arrows 303.
  • the third data structure may typically contain data corresponding to matching between some, most or all of the chat users.
  • the matching data stored in the third data structure 303 corresponds to how optimal a partner match between chat users is predicted to be. For example a scalar value is used which provides a matching score with the higher the value the more optimal a partner match between the chat users is predicted to be. As will be understood, the more engaged a chat user is predicted to be by a partner match with another chat user, the more "optimal" a partner match is deemed to be.
  • This concept is illustrated in Figure 2 by the relative thickness of the arrows corresponding to the third data structure 303.
  • the arrow shown connecting a first chat user USER A with a second chat user USER B is a broken thin line indicating that previously collected chat metric data suggests that the first chat user USER A would not find a match with the second chat user USER B very engaging.
  • the arrow shown connecting the first chat user USER A with a third chat user USER C is a thick unbroken line indicating that previously collected chat metric data suggests that the first chat user USER A would find a match with the third chat user USER C very engaging.
  • the arrows connecting the first chat user USER A with a fourth chat user USER D and a fifth chat user USER E are less thick than the line connecting the first chat user USER A and the fourth chat user USER D, but thicker than the line connecting the first chat user USER A with the second chat user USER B. Accordingly, a match between the first chat user USER A and either of the fourth chat user USER D or the fifth chat user USER E will be more preferable than a match between the first chat user USER A and the second chat user USER B but less preferable than the a match between the first chat user USER A and the third chat user USER C.
  • a partner match between the first chat user USER A and the fifth chat user USER E is predicted to be more optimal, and thus preferable, to a partner match between the first chat user USER A and the fourth chat user USER D.
  • the matching data stored in the third data structure 303 is updated accordingly. For example, if the first chat user USER A engages in one or more chat sessions with the second chat user USER B and provides implicit or explicit chat user feedback data indicating that they were very engaged, then the matching data associated with the first chat user USER A and second chat user USER B will be updated accordingly. For example a scalar matching score could be increased accordingly. In terms of the representation of the third data structure shown in Figure 2, this would result in a thickening of the line between the first chat user USER A and the second chat user USER B.
  • the algorithm When the algorithm is initiated, there will typically be less chat metric data available than is available after the algorithm has been running for some time.
  • the algorithm is initiated with chat metric data based on previously collected explicit topic preference data, collected for example, prior to a user subscribing to the chat system.
  • the matching data in the third data structure is equalised such that each chat user is matched equally with each other chat user.
  • a random distribution of matching data is used in the third data structure to initiate the algorithm.
  • matching data for the new chat users is added to the third data structure using for example fixed initiation values, values based on previously collected explicit topic preference data collected from the new chat user or a random value.
  • the extent the matching data changes in response to new chat metric data can depend on a weighting factor associated with each type of chat metric.
  • the weighting factor is predetermined for each type of chat metric data. For example, explicit user feedback is given a predetermined higher weighting and implicit user feedback is given a predetermined lower weighting. Accordingly, an explicit indication from a chat user indicating that they were particularly engaged during a chat session with another chat user results in greater increase in the corresponding matching data in the third data structure than, for example, implicit user feedback data indicating that during a chat session with another chat user, a particular chat user had a faster text input speed compared to their average text input speed.
  • a weighting adjustment process is performed at specific intervals in which the weighting associated with specific types of chat metric data is adapted to optimise the partner matching process. Any suitable process for adjusting the weighting can be used.
  • chat metric data for one or more chat users is cross correlated to identify how closely variance in one type of chat metric data corresponds with variance in the other chat metric data. If the cross correlation process indicates that variances in a particular type of chat metric data does not result in corresponding variances in other chat metric data then the weighting can be adjusted accordingly. More specifically, if the cross correlation process indicates that large variances in a given chat metric result in little or no variances in other chat metrics then weighting for the given chat metric is reduced.
  • the weighting associated with implicit and or explicit topic preference data can be reduced for the first chat user.
  • Figure 3 shows a flow diagram providing a simplified illustration of a process performed by the algorithm performed by the recommendation processor.
  • step SlOl the process starts.
  • step 102 if new chat metric data or topic preference matching data is available the process moves to step S103 where the matching data in the third data structure is updated as described above.
  • the weighting adjustment may be performed at this point.
  • the weighting adjustment process is performed separately from this, for example it can be performed on a periodic basis after a predefined period of time has elapsed since the weighting adjustment process was last performed or after a set quantity of new chat metric data has been collected.
  • step S104 If there is no further new chat metric data available, the process moves on to step S104. If a partner match request has been received for a given chat user, the process moves on to step S105.
  • step S105 it is determined from the third data structure (i.e. the matching score data structure) which of the available chat users have the highest matching score with respect to the chat user to whom the partner request relates.
  • step S106 the optimal partner match is output.
  • the partner match will comprise two chat users: namely the first chat user to whom the partner match request related and the chat user that the algorithm determines provides the optimum partner match (i.e. the chat user with the highest match score in the third data structure).
  • the partner match may include more than two chat users, namely the first chat user to whom the partner match request related and a plurality of chat users that the algorithm determines provide optimum partner matches (e.g. the two chat users with the two highest match score in the third data structure).
  • Example Implementation Figure 4 provides a schematic diagram showing an example of a second implementation of a system 201 arranged in accordance with an example of the present invention.
  • the system 201 includes a chat request server 202 and a chat web server 203.
  • the chat request server 202 is arranged to process chat requests from chat users and to co-ordinate partner matching.
  • the chat web server 203 is arranged to host chat sessions between matched chat users.
  • a chat request is generated at the client terminal 204 and sent to the chat request web server 202.
  • the chat request web server 202 sends the chat request to a chat scheduler 205.
  • the chat scheduler 205 includes a chat request pool database 206 which contains a list of chat users who wish to engage in a chat session and/or are available to engage in a chat session with other chat users.
  • the scheduler 205 sends data corresponding to all the chat users in the chat request pool database 206 to a request partner processor 207.
  • a matching algorithm runs on the request partner processor 207 which seeks to identify an optimum partner match based on chat metric data received from other components of the system 201.
  • the request partner processor 207 is arranged to output a partner match corresponding to two or more chat users in the chat request pool database 206 and transmit this to the scheduler 205.
  • the scheduler then transmits the partner match to the chat request web server 202.
  • the partner match contains an indication of the first chat user using the first client terminal and a second chat user using a second chat terminal 208.
  • a chat request from the second chat user will have previously been transmitted to the chat request server in the same way as the chat request of the first chat user as described above.
  • the chat request server 202 is then arranged to a transmit chat session initiation message to the first client terminal 204 and the second client terminal 208.
  • the chat session initiation message provides information directing a chat interface running on the first and second client terminals to the chat web server 203.
  • the chat session initiation message also provides information allowing the first and second client terminals to request and establish a chat session on the chat web server 203.
  • chat sessions Once the chat session has been established between the first and second chat users, the chat users exchange chat data.
  • the chat web server 203 is connected to a chat metric database 209 which collects explicit user feedback from the chat users and implicit user feedback data from the chat sessions as described above.
  • the chat web server 203 is also connected to a temp chat database 210 which collects and stores chat data, for example text from chat data exchanged between chat users.
  • the temp chat database 210 and the chat metric database 209 are connected to a chat profiler 211.
  • the chat profiler 211 analyses the chat data stored in the temp chat database 210 to determine topics of conversation associated with particular chat sessions and to associate this with the chat metrics as described above to form topic preference data.
  • the chat profiler 211 passes the topic preference data and the chat metric data to a user profile database 212 where chat metrics and topic preference data is stored in association with chat user profiles.
  • the user profile database 212 is updated whenever new chat metric data or topic preference data is made available by the chat profiler 211.
  • the user profile database 212 passes chat user profile data information to the request partner processor 207 on which, as mentioned above, a matching algorithm is run.
  • a matching algorithm is run.
  • the algorithm is adapted accordingly to rank chat users with respect to each other.
  • the system 201 also includes a site semantic index database 213 which is arranged to provide data corresponding to a content of a website with which the chat web server 203 is associated. This data can also be used to adapt the algorithm running on the request partner processor 207.
  • the system 201 includes multiple chat web servers 203 each associated with a different website.
  • each chat web server is either connected to the same chat metric database 209 and temp chat database 210, or, if appropriate multiple temp chat databases, chat metric databases, chat profilers, user profile databases and so on.
  • the client terminals can be any one of a personal computer, smart phone, tablet computer, games console or any other computing device on which a chat interface can be provided.
  • the recommendation processor 110, the chat server 108 and the chat metric database 109 shown in Figure 1 and chat request server 202, chat web server 203, chat scheduler 205, chat request pool database 206, request partner processor 207, chat metric database 209, temp chat database 210, chat profiler 211, user profile database 212 and site semantic index database 213 can be any suitable computing device, comprising, for example, a processor or processors and memory, and capable of performing the described functions.
  • the interconnections between the various components shown in Figures 1 and 4 can comprise any suitable interface allowing data to be exchanged such as wireless or fixed Ethernet connections.
  • aspects of the invention may be implemented in the form of a computer program product comprising instructions (i.e. a computer program) that may be implemented on a processor, stored on a data sub-carrier such as a floppy disk, optical disk, hard disk, PROM, RAM, flash memory or any combination of these or other storage media, or transmitted via data signals on a network such as an Ethernet, a wireless network, the Internet, or any combination of these of other networks, or realised in hardware as an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array) or other configurable or bespoke circuit suitable to use in adapting the conventional equivalent device.
  • a data sub-carrier such as a floppy disk, optical disk, hard disk, PROM, RAM, flash memory or any combination of these or other storage media
  • a network such as an Ethernet, a wireless network, the Internet, or any combination of these of other networks, or realised in hardware as an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array) or other configurable

Abstract

A messaging system for enabling communication of messaging data between two or more of a plurality of terminals via a messaging server. The system comprises a recommendation processor which is arranged to match a first user with one or more of a plurality of other users. The matching is based on chat metric data which comprises user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users. The recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication session.

Description

CHAT SYSTEM AND METHOD
FIELD OF INVENTION
The present invention relates to systems and methods enabling users to exchange messages using chatting systems.
BACKGROUND
So-called instant messaging or "chatting" systems enable users to exchange chat data, such as messages containing text. Typically a chat interface runs on a client terminal, such as a personal computer, smart phone, tablet computer, games console and so on, which allows chat data such as text to be entered. When a user has completed composing their chat data, the chat data is sent to a server and on to another user with whom the first user is engaged in a chat session. Examples of conventional chatting systems include systems based on Internet Relay Chat (IRC) protocol, web chat rooms, MSN Messenger, Google Chat, Facebook Chat and so on.
Usually, in conventional systems, users are paired together to engage in a chat session based on a pre-existing knowledge of each other. For example a first user will know a chat user identity associated with a second user and seek the second user out to engage in a chat session. This is typically performed by the chat interface providing a graphical indication of other chat users logged on via a client terminal and available to engage in a chat session.
Alternatively, a user may randomly "encounter" another user, for example in a web chat room, and begin a chat session on that basis.
Random user matching systems are also known that provide automated random pairing of users to engage in a chat session. In these systems a user sends a message to a central server indicating a desire to engage in a chat session and the server establishes a chat session between them and another user who has also indicated a desire to engage in a chat session. Examples of such systems include Omegle and Chat Roulette. These systems operate on a purely random basis and make little or no attempt to optimise the pairing of users. Accordingly, when using a conventional system, a user of a chat system can only establish a chat session with another user either if they know the other user or on a random basis if they randomly encounter the other user or if they are randomly paired with another user using a random matching system.
STATEMENT OF INVENTION
In accordance with a first aspect of the invention there is provided a messaging system for enabling communication of messaging data between two or more of a plurality of terminals via a messaging server. The system comprises a recommendation processor which is arranged to match a first user with one or more of a plurality of other users. The matching is based on chat metric data which comprises user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users. The recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication session. Accordingly, a messaging system (i.e. a chat system) is provided that enables a first chat user to be matched with one or more other chat users without a need for the first chat user to have any prior knowledge of the one or more second chat users. However, unlike conventional systems in which such a matching would simply be based on a random pairing of two or more users, in accordance with the present invention, the pairing is based on previously collected data which enables the matching to be optimised such that there is an improved likelihood that the users will be engaged during the subsequent communication session (i.e. chat session).
In some embodiments the messaging server is arranged to establish a communication session between a first terminal associated with the first user and one or more other terminals associated with the selected one or more other users after the first user and the one or more other users have been matched by the recommendation processor. In some embodiments the user feedback data comprises implicit user feedback data indicating how the first user generated messaging data on the first terminal when engaged in the previous communication sessions with the plurality of other users. In accordance with these embodiments it has been recognised that certain subjective behaviours of a user (such as the degree to which a user is likely to be engaged by a communication session with another user) can be predicted based on technical data extracted from previous chat sessions. This data can then be used to provide an improved chat system in which users who have, for example, expressed a desire to engage in a chat session with another user, can be optimally matched. More specifically, it has been recognised that user interaction data relating to how previous messaging data was generated (such as typing speed, message length, number of messages generated in a chat session and so on) can be used to optimally match users without a need for the user to express an explicit preference.
In some embodiments the implicit user feedback data is based on, for each of the plurality of communication sessions one or more of: a speed of entering messaging data, a length of messaging data, a number of messaging data messages generated during the communication session, and a length of communication session.
In some embodiments the user feedback data comprises explicit user feedback data corresponding to an explicit indication from the first user as to how engaged the first user was during previous communication sessions with the plurality of other users.
In some embodiments the chat metric data further comprises topic preference data, said topic preference data indicating an extent to which the first user has been engaged in one or more previous communication sessions relating to one or more topics and an extent to which the plurality of other users have been engaged in one or more previous communication sessions relating to the one or more topics. The recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users also based on an extent to which topic preference data of the first user corresponds to topic preference data of the plurality of other users. In some embodiments the topic preference data comprises explicit topic preference data corresponding to an explicit indication from the first user and plurality of other users as to how engaged the first user and plurality of other users were during previous communication sessions relating to the one or more topics.
In some embodiments the recommendation processor comprises a matching score data structure comprising a matching score value for each of a plurality of possible matches between the plurality users, said matching score value based on the chat metric data. The recommendation processor is arranged to match the first user with the selected one or more of the plurality of other users by identifying which of the plurality of other users has a highest matching score associated with the first user.
In some embodiments the matching score data structure is updated as new chat metric data is collected.
Various further aspects and features of the invention are defined in the claims.
BRIEF DESCRIPTION OF THE DRAWINGS
Embodiments of the present invention will now be described by way of example only with reference to the accompanying drawings where like parts are provided with corresponding reference numerals and in which:
Figure 1 provides a schematic diagram of a system arranged in accordance with first example of the present invention;
Figure 2 provides a schematic diagram illustrating a user ranking technique for matching chat users used by an algorithm performed in accordance with an example of the present invention,
Figure 3 shows a flow diagram providing a simplified illustration of a process performed by an algorithm performed in accordance with an example of the present invention, and
Figure 4 provides a schematic diagram of a system arranged in accordance with second example of the present invention.
DETAILED DESCRIPTION
Systems arranged in accordance with examples of the present invention include a chat recommendation processor. The chat recommendation processor is arranged to receive input metrics provided by components of a chat system, process these inputs and provide as an output an optimised partner match. The partner match comprises data corresponding to a match of two or more chat users ("chat users" being users of the chat system) from a list of chat users. The partner match output from the recommendation processor is input to a chat server that then establishes a chat session between the matched chat users.
An "optimised" matching is one where two or more chat users are more likely to be engaged when conducting a chat session with each other. As will be understood, a chat user being "engaged" generally refers to a chat user enjoying or being interested in a chat session. If a chat user is not engaged with a chat session they do not enjoy it and/or are disinterested in the chat session. As will be understood, two variables that are likely to have an impact on chat user engagement and that can be measured and influenced by technical features of the chat system are the topic of discussion (i.e. certain topics engage certain chat users) and which other chat user or users a chat session is conducted with (i.e. a chat user will be engaged when conducting a chat session with specific other chat users) .
Figure 1 provides a schematic diagram of a chat system arranged in accordance with an example of the present invention. A chat system 101 includes a number of client terminals 102, 103, 104, 105, 106 each, connected via a network 107 (such as the internet) to a chat server 108. The chat server 108 is arranged to host chat sessions between one or more chat users each logged on to the chat server 108 using a chat interface on one of the client terminals 102, 103, 104, 105, 106. The chat interface is typically provided by any suitable means such as a chat application running on the client terminal, a web interface to a chat website hosted on the chat server 108 and so on. A chat session typically comprises the exchange of chat data between two or more chat users. As is known in the art, chat data includes text data usually entered via a user input device connected to a client terminal such as a keypad.
As is known in the art, chat data includes other types of suitable data such as audio data, video data and image data, The chat data can be created by the chat user using the client terminal, for example using a camera and/or microphone and/or touchpad associated with the client terminal, or imported from different locations, for example downloaded from the internet or from suitable storage media accessed by the client terminal.
The process by which a chat server hosts a chat session between two or more chat users is known in the art and can be performed by any suitable process. For example, the chat server monitors and maintains a record of the network socket of the relevant client terminals and forwards chat data between the client terminals as appropriate during the chat session.
In contrast to conventional chat systems, the chat system 101 shown in Figure 1 includes a chat metric database 109 connected to the chat server 108 and a chat recommendation processor 110 connected to both the chat server 108 and the chat metric database 109.
The chat server 108 is adapted to provide chat metric data to the chat metric database 109. Although not shown, the chat metric database 109 may be arranged to receive chat metric data from other sources from within and/or from outside of the chat system 101.
The recommendation processor 110 is arranged to maintain a ranking of chat users with respect to each other, including for example chat users logged on to the chat server 108 using the client terminals 102, 103, 104, 105, 106.
When establishing a chat session between one or more chat users, the chat server 108 is adapted to send a match request to the recommendation processor 110. Upon receipt of the match request, the recommendation processor 110 performs a matching process in which chat metrics provide by the chat metric database 109 are processed by an algorithm to determine an optimised match between two or more chat users. Once the matching process has been performed and an optimised match identified, a partner match response corresponding to the optimised match is provided by the recommendation processor 110 to the chat server 108. The chat server 108 then establishes a chat session between the chat users associated with the partner match response. Chat Metric Data
The chat metric data can be any suitable metric data that can be used by the recommendation processor 110 to provide the optimised partner match between chat users. Examples include · Explicit User Feedback Data
• Implicit User Feedback Data
These examples of chat metric data are discussed in more detail below. Explicit User Feedback Data
Explicit user feedback data is chat metric data derived from feedback information from a chat user in which the chat user explicitly indicates how engaged they were during a chat session with another partner matched chat user or chat users. Explicit user feedback data can be collected in any suitable way. For example, the chat interface may include a rating control (such as a graphical representation of a slider, a dial, a field into which a number is entered and so on) which a chat user can manipulate to indicate, for example, on a numerical scale, how engaged they were during the chat session (i.e. an "matching score"). Additionally or alternatively the chat interface may include a button or any other suitable control which indicates that a chat user was particularly engaged with a chat session with a particular chat user or chat users or was not at all engaged with a chat session with a particular partner matched chat user or chat users. Explicit Topic Preference Data
Alternatively or additionally, in some examples the explicit user feedback data can include user feedback data indicating to what extent the chat user was engaged in the topics or topic being discussed during the chat session. This explicit topic preference data can be collected by any suitable means for example using a rating control as described above. Accordingly, when a chat user manipulates the rating control to indicate how engaged they were, explicit topic preference data is generated which indicates the extent to which the chat user was engaged in the topic or topics under discussion during the chat session. Typically, the explicit topic preference data is then sent to the chat metric database. In some examples, the chat user may manually enter, for example into a text field on the chat interface, a word or words identifying the topics and or topic that were being discussed during a chat session. In other examples the topics or topic may be automatically identified by functionality residing, for example in the chat server 108 or the chat metric database 109. For example, the automatic identification of topics or topic under discussion can be determined from chat session data collected at the chat server 108 and sent to the chat metric database 109. In some examples, the topic of conversation can be extracted by analysing the content of chat data generated during a chat session by identifying particular words and phrases. In other examples, a topic of a website associated with the chat interface indicates the topic under discussion. However, as will be understood any suitable technique can be used. Implicit User Feedback Data
Implicit user feedback data is metric data derived from information about how a chat user is behaving during a chat session, for example how a chat user is interacting with the chat interface and how a chat user is responding to chat data received from a partner matched chat user/chat users.
Typically, the implicit user feedback data is determined from session data recorded by the client terminal, sent to the chat server 108 and then on to the chat metric database 109. However any suitable means of collecting the implicit user feedback data can be used.
Implicit user feedback data includes information associated with the way in which chat data is input by a chat user.
Implicit user feedback data includes text input speed (e.g. such as typing speed) which is the speed with which a chat user enters text to a user interface device such as a keyboard attached to a client terminal.
Other examples of implicit user feedback data include chat user response time. Chat user response time includes absolute response time which corresponds to a length of time it takes for a chat user to generate and/or send response chat data to chat data from one or more other chat users after the chat data has been received by the chat interface (and/or after the chat user has been alerted to the arrival of the chat data at the client terminal).
Other examples of chat user response time include response start time data which corresponds to a length of time taken for a chat user to begin generating chat response data (e.g. to begin typing a response chat message). For example, a length of time taken for a chat user to type a first character of a response chat message after chat data from one or more other chat users has been received by the chat interface (and/or after the chat user has been alerted to the arrival of the chat data at the client terminal).
Other examples of implicit user feedback data include a number of chat data messages a chat user receives before a response is sent. This example of implicit user feedback data is particularly notable when a chat user sends a number of chat messages in quick succession to a partner matched chat user.
Other examples of implicit user feedback data include whether a chat user has unfocussed the chat interface during a chat session with another chat user. As is known in the art, when two or more applications are running concurrently on a client terminal, a "focussed" application is the application on which a user input device has an effect on. For example, the focused application is sometimes identified by a highlighting of the application's border, showing the focused application in a brighter colour or by blurring or greying out other applications. In other examples, a focused web application is identified by the web browser being focused and the web application's tab being the currently active tab in that browser.
Other examples of implicit user feedback data include the length of a chat user's chat data.
Other examples of implicit user feedback data include data corresponding to a length of time a chat user is not typing when composing a reply. Other examples of implicit user feedback include session length data indicating the length of time a chat session lasted between a first and second chat user.
Implicit Topic Preference Data
In some examples, the implicit user feedback data can be associated with data corresponding to the topics or topic being discussed during a chat session. The association of the topics or topic under discussion with implicit feedback user data provides implicit topic preference data which, as described further below, can be used to determine an extent to which a chat user is engaged when undertaking chat sessions relating to specific topics.
As described above, the topics or topic under discussion can be identified without the need for explicit chat user input by, for example analysing the content of chat data generated during a chat session by identifying particular words and phrases and/or analysing a topic of a website associated with the chat interface.
The implicit user feedback data and the topic data can be combined to form the implicit topic preference data at any suitable point within the system, for example the chat server 108, the chat metric database 109 or the recommendation processor itself.
As described above, the chat metric database stores chat metric data. During operation therefore, the chat metric database stores one or more of implicit user feedback data indicating how particular chat users have generated messaging data (e.g. a speed of entering messaging data, a length of messaging data, a number of messaging data messages generated during a chat session, and a length of a chat session); implicit topic preference data, explicit user feedback data and explicit topic preference data.
Recommendation Processor
The recommendation processor takes as an input the chat metric data collected in the chat metric database 109 and runs an algorithm which ranks chat users with respect to each other to predict a likely success of a partner match. The algorithm performs this by analysing previously collected chat metric data. The ranking is typically continually updated as new chat metric data is received.
Ranking based on historic chat metric data
The algorithm is arranged to determine from the chat metric data an extent to which a chat user has been engaged during a previous chat session with another chat user. For example, if the chat metric data indicates that a first chat user has been engaged during a chat session with a second chat user, the second chat user is given a higher ranking with respect to the first chat user meaning the algorithm is more likely to output a partner match between the first chat user and the second chat user. On the other hand, if the chat metric data indicates that the first chat user has not been engaged during a chat session with a third chat user, the third chat user is given a lower ranking with respect to the first chat user meaning the algorithm is less likely to output a partner match between the first chat user and the second chat user.
The extent to which a chat user was engaged during a previous chat session can be derived from the chat metric data in any suitable way. For example, the fact that a chat user was particularly engaged during a previous chat session can be derived directly from explicit user feedback data indicating that the chat user was particularly engaged during the chat session (e.g. a high matching score). Similarly, the fact that a chat user was not at all engaged during a chat session can be derived directly from explicit user feedback data indicating that the chat user was not engaged during the chat session (e.g. a low matching score).
In some examples, the algorithm is arranged to infer from implicit user feedback data an extent to which the chat user was engaged during a previous chat session. For example the higher the text input speed the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the lower the text input speed the less engaged the chat user is deemed to be. In other examples the shorter the chat user response time the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the longer the chat user response time the less engaged the chat user is deemed to be. In other examples the lower the number of chat data messages a chat user receives before responding, the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the lower the number of chat data messages a chat user receives before responding the less engaged the chat user is deemed to be.
In other examples, the higher the number of instances of a chat user unfocussing the chat interface during a chat session with another chat indicates the less engaged a chat user is during a chat session. In other examples, the longer a length of a chat user's chat data during a chat session the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the shorter the length of a chat user's chat data the less engaged the chat user is deemed to be.
In other examples, the longer a length of a session length of a chat session the more engaged a chat user is deemed to be during a chat session with another chat user. Correspondingly, the shorter the length of a session length of a chat session the less engaged the chat user is deemed to be.
Ranking based on topic preference data
The algorithm is also arranged to determine from the explicit topic data and the implicit topic preference data an extent to which a chat user is likely to be engaged when engaging in chat sessions relating to particular topics. The algorithm is then arranged to increase the relative ranking of chat users the more similar their topic preferences.
A chat user's topic preferences can be derived directly from explicit topic preference data by simply identifying which topics the chat user has indicated are of interest to them and to what extent, and which topics the chat user has indicated are not of interest them and to what extent.
A chat user's topic preferences can be inferred from implicit topic data by identifying which topics were being discussed when chat metric data was collected that indicates that a chat user was particularly engaged and which topics were under discussion when chat metric data was collected that indicates that a chat user was not engaged.
In one example, the algorithm will rank chat users who both are both engaged by the same topic more highly with respect to each other. In other examples, the algorithm will also rank chat users who are both not engaged by the same topic more highly with respect to each other. In further examples, the algorithm will rank chat users more highly with respect to each other, the more closely the chat users' topic preferences match each other.
Refining the Algorithm
In some examples the algorithm is arranged to modify a set of weighting coefficients to the input chat metric data to take account of the fact that variances in different chat metrics may be of differing relevance for different chat users.
For example, if text input speed metric data for chat user A varies from very slow to very fast over a number of different chat sessions, but for all of these chat sessions, chat user A provides explicit user feedback that the chat sessions have all been highly engaging this implies that for chat user A text input speed does not strongly correlate to how engaged chat user A is during a chat session. Accordingly, the recommendation processor is arranged to reduce a weighting factor for text input speed metric data for chat user A accordingly.
On the other hand, if small variances in the number of times chat user B changes the focus away from the chat interface during a chat session results in large variances in the extent to which chat user B was engaged during a chat session (determined, for example from other implicit user feedback data and/or other explicit user feedback data metric data), then a weighting factor for metric data corresponding to the number of focus changes during a chat session will be increased for chat user B.
In some examples, the algorithm is arranged to normalise the chat metric data to account for the different characteristics of particular chat users. Accordingly it becomes possible to more accurately identify divergences in a chat user's normal behaviour and correlate this divergence with a chat user being more or less engaged in a chat session of a particular type or with one or more other partner matched chat users.
For example, if the chat metric data relates to a scalar value (e.g. the number of focus changes per chat session, the length of time of the chat session, the text input speed in characters per second and so on) then that specific type of metric data may be normalised before being processed by the algorithm. The normalisation in some examples is based on an average for that specific chat user of that type of chat metric data. For example, before being processed by the algorithm, text input speed metric data for a given chat user for a particular chat session is divided by the average text input speed of that chat user. The normalisation process can be performed at any appropriate point within the system for example, in the client terminal, the chat server, the chat metric database or the recommendation processer.
Algorithm Implementation
Figure 2 provides a schematic diagram illustrating a chat user ranking technique for matching chat users used in an algorithm arranged in accordance with an example of the present invention and performed by the recommendation processor. A first data structure 301 is provided which includes data corresponding to a plurality of chat users. A second data structure 302 is provided which corresponds to the first data structure 301 and also includes data corresponding to the plurality of chat users. The example in Figure 2 shows data corresponding to five chat users, although it will be appreciated that this is merely illustrative and the number of chat users can vary in accordance with the number of users of the chat system. A third data structure is provided comprises matching data which corresponds to a number of possible matchings between each chat user with each other chat user. The third data structure 303 represented in Figure 2 as a group of connecting arrows 303. For simplicity only connections between two first chat users USER A and USER E are shown in Figure 2 although it will be understood that the third data structure may typically contain data corresponding to matching between some, most or all of the chat users.
The matching data stored in the third data structure 303 corresponds to how optimal a partner match between chat users is predicted to be. For example a scalar value is used which provides a matching score with the higher the value the more optimal a partner match between the chat users is predicted to be. As will be understood, the more engaged a chat user is predicted to be by a partner match with another chat user, the more "optimal" a partner match is deemed to be.
This concept is illustrated in Figure 2 by the relative thickness of the arrows corresponding to the third data structure 303. For example the arrow shown connecting a first chat user USER A with a second chat user USER B is a broken thin line indicating that previously collected chat metric data suggests that the first chat user USER A would not find a match with the second chat user USER B very engaging.
On the other hand, the arrow shown connecting the first chat user USER A with a third chat user USER C is a thick unbroken line indicating that previously collected chat metric data suggests that the first chat user USER A would find a match with the third chat user USER C very engaging.
The arrows connecting the first chat user USER A with a fourth chat user USER D and a fifth chat user USER E are less thick than the line connecting the first chat user USER A and the fourth chat user USER D, but thicker than the line connecting the first chat user USER A with the second chat user USER B. Accordingly, a match between the first chat user USER A and either of the fourth chat user USER D or the fifth chat user USER E will be more preferable than a match between the first chat user USER A and the second chat user USER B but less preferable than the a match between the first chat user USER A and the third chat user USER C. As the line connecting the first chat user USER A with the fourth chat user USER D is less thick than the line connecting the first chat user USER A with the fifth chat user USER E, a partner match between the first chat user USER A and the fifth chat user USER E is predicted to be more optimal, and thus preferable, to a partner match between the first chat user USER A and the fourth chat user USER D.
As will be understood, as new chat metric data becomes available, the matching data stored in the third data structure 303 is updated accordingly. For example, if the first chat user USER A engages in one or more chat sessions with the second chat user USER B and provides implicit or explicit chat user feedback data indicating that they were very engaged, then the matching data associated with the first chat user USER A and second chat user USER B will be updated accordingly. For example a scalar matching score could be increased accordingly. In terms of the representation of the third data structure shown in Figure 2, this would result in a thickening of the line between the first chat user USER A and the second chat user USER B.
When the algorithm is initiated, there will typically be less chat metric data available than is available after the algorithm has been running for some time. In some examples, the algorithm is initiated with chat metric data based on previously collected explicit topic preference data, collected for example, prior to a user subscribing to the chat system. In other examples, the matching data in the third data structure is equalised such that each chat user is matched equally with each other chat user. In other examples, a random distribution of matching data is used in the third data structure to initiate the algorithm.
Similarly, as new chat users subscribe to the chat system, matching data for the new chat users is added to the third data structure using for example fixed initiation values, values based on previously collected explicit topic preference data collected from the new chat user or a random value.
As discussed above, in some examples the extent the matching data changes in response to new chat metric data can depend on a weighting factor associated with each type of chat metric.
In some examples, the weighting factor is predetermined for each type of chat metric data. For example, explicit user feedback is given a predetermined higher weighting and implicit user feedback is given a predetermined lower weighting. Accordingly, an explicit indication from a chat user indicating that they were particularly engaged during a chat session with another chat user results in greater increase in the corresponding matching data in the third data structure than, for example, implicit user feedback data indicating that during a chat session with another chat user, a particular chat user had a faster text input speed compared to their average text input speed. In other examples a weighting adjustment process is performed at specific intervals in which the weighting associated with specific types of chat metric data is adapted to optimise the partner matching process. Any suitable process for adjusting the weighting can be used. In one example chat metric data for one or more chat users is cross correlated to identify how closely variance in one type of chat metric data corresponds with variance in the other chat metric data. If the cross correlation process indicates that variances in a particular type of chat metric data does not result in corresponding variances in other chat metric data then the weighting can be adjusted accordingly. More specifically, if the cross correlation process indicates that large variances in a given chat metric result in little or no variances in other chat metrics then weighting for the given chat metric is reduced.
For example, if the implicit and explicit chat metric data indicates that for a first chat user, substantial differences between their topic preference data and that of other chat users with whom they have previously been partner matched does not result in a substantial difference in the degree to which the first chat user was engaged, then the weighting associated with implicit and or explicit topic preference data can be reduced for the first chat user.
Figure 3 shows a flow diagram providing a simplified illustration of a process performed by the algorithm performed by the recommendation processor.
At step SlOl the process starts. At step 102 if new chat metric data or topic preference matching data is available the process moves to step S103 where the matching data in the third data structure is updated as described above. In some examples the weighting adjustment may be performed at this point. In other examples the weighting adjustment process is performed separately from this, for example it can be performed on a periodic basis after a predefined period of time has elapsed since the weighting adjustment process was last performed or after a set quantity of new chat metric data has been collected.
Once any updating of the matching data has been performed, the process returns to the start. If there is no further new chat metric data available, the process moves on to step S104. If a partner match request has been received for a given chat user, the process moves on to step S105.
At step S105, it is determined from the third data structure (i.e. the matching score data structure) which of the available chat users have the highest matching score with respect to the chat user to whom the partner request relates. At step S106 the optimal partner match is output.
As will be understood, in some examples the partner match will comprise two chat users: namely the first chat user to whom the partner match request related and the chat user that the algorithm determines provides the optimum partner match (i.e. the chat user with the highest match score in the third data structure). However, in other examples the partner match may include more than two chat users, namely the first chat user to whom the partner match request related and a plurality of chat users that the algorithm determines provide optimum partner matches (e.g. the two chat users with the two highest match score in the third data structure).
As will be understood, the functionality and associated components of a system arranged in accordance with examples of the present invention can be arranged and distributed in any suitable way. This is illustrated in Figure 4.
Example Implementation Figure 4 provides a schematic diagram showing an example of a second implementation of a system 201 arranged in accordance with an example of the present invention. The system 201 includes a chat request server 202 and a chat web server 203. The chat request server 202 is arranged to process chat requests from chat users and to co-ordinate partner matching. The chat web server 203 is arranged to host chat sessions between matched chat users. By dividing the functionality of the chat server 108 in to two servers an advantage is realised in that the more data transmission intensive chat session hosting function can be separated from the less data transmission intensive partner request function. This means that the connection between the client terminals and the chat request server 202 is less likely to get overwhelmed by chat data traffic. When a first chat user using a client terminal 204 wishes to engage in a chat session, a chat request is generated at the client terminal 204 and sent to the chat request web server 202. The chat request web server 202 sends the chat request to a chat scheduler 205. The chat scheduler 205 includes a chat request pool database 206 which contains a list of chat users who wish to engage in a chat session and/or are available to engage in a chat session with other chat users. The scheduler 205 sends data corresponding to all the chat users in the chat request pool database 206 to a request partner processor 207. A matching algorithm runs on the request partner processor 207 which seeks to identify an optimum partner match based on chat metric data received from other components of the system 201. The request partner processor 207 is arranged to output a partner match corresponding to two or more chat users in the chat request pool database 206 and transmit this to the scheduler 205. The scheduler then transmits the partner match to the chat request web server 202. The partner match contains an indication of the first chat user using the first client terminal and a second chat user using a second chat terminal 208. A chat request from the second chat user will have previously been transmitted to the chat request server in the same way as the chat request of the first chat user as described above. The chat request server 202 is then arranged to a transmit chat session initiation message to the first client terminal 204 and the second client terminal 208. The chat session initiation message provides information directing a chat interface running on the first and second client terminals to the chat web server 203. The chat session initiation message also provides information allowing the first and second client terminals to request and establish a chat session on the chat web server 203.
Once the chat session has been established between the first and second chat users, the chat users exchange chat data.
The chat web server 203 is connected to a chat metric database 209 which collects explicit user feedback from the chat users and implicit user feedback data from the chat sessions as described above.
The chat web server 203 is also connected to a temp chat database 210 which collects and stores chat data, for example text from chat data exchanged between chat users. The temp chat database 210 and the chat metric database 209 are connected to a chat profiler 211. The chat profiler 211 analyses the chat data stored in the temp chat database 210 to determine topics of conversation associated with particular chat sessions and to associate this with the chat metrics as described above to form topic preference data. The chat profiler 211 passes the topic preference data and the chat metric data to a user profile database 212 where chat metrics and topic preference data is stored in association with chat user profiles. Typically, the user profile database 212 is updated whenever new chat metric data or topic preference data is made available by the chat profiler 211. The user profile database 212 passes chat user profile data information to the request partner processor 207 on which, as mentioned above, a matching algorithm is run. Upon receipt of new chat user profile data with updated chat metrics (indicating, as explained above, the relative success of previous partner matchings between chat users) and updated topic preference data (indicating updated chat user topic preferences), the algorithm is adapted accordingly to rank chat users with respect to each other. In some examples the system 201 also includes a site semantic index database 213 which is arranged to provide data corresponding to a content of a website with which the chat web server 203 is associated. This data can also be used to adapt the algorithm running on the request partner processor 207.
In some examples of the invention, the system 201 includes multiple chat web servers 203 each associated with a different website. In such examples, each chat web server is either connected to the same chat metric database 209 and temp chat database 210, or, if appropriate multiple temp chat databases, chat metric databases, chat profilers, user profile databases and so on.
As will be understood, the various components of the chat systems shown in Figures 1 and 2 can be manifested in any appropriate form.
For example, the client terminals can be any one of a personal computer, smart phone, tablet computer, games console or any other computing device on which a chat interface can be provided. The recommendation processor 110, the chat server 108 and the chat metric database 109 shown in Figure 1 and chat request server 202, chat web server 203, chat scheduler 205, chat request pool database 206, request partner processor 207, chat metric database 209, temp chat database 210, chat profiler 211, user profile database 212 and site semantic index database 213 can be any suitable computing device, comprising, for example, a processor or processors and memory, and capable of performing the described functions. The interconnections between the various components shown in Figures 1 and 4 can comprise any suitable interface allowing data to be exchanged such as wireless or fixed Ethernet connections. Aspects of the invention may be implemented in the form of a computer program product comprising instructions (i.e. a computer program) that may be implemented on a processor, stored on a data sub-carrier such as a floppy disk, optical disk, hard disk, PROM, RAM, flash memory or any combination of these or other storage media, or transmitted via data signals on a network such as an Ethernet, a wireless network, the Internet, or any combination of these of other networks, or realised in hardware as an ASIC (application specific integrated circuit) or an FPGA (field programmable gate array) or other configurable or bespoke circuit suitable to use in adapting the conventional equivalent device.

Claims

1. A messaging system for enabling communication of messaging data between two or more of a plurality of terminals via a messaging server, the system comprising a recommendation processor, said recommendation processor arranged to match a first user with one or more of a plurality of other users, said matching based on chat metric data, wherein said chat metric data comprises user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users and
said recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication sessions.
2. A messaging system according to claim 1, wherein the messaging server is arranged to establish a communication session between a first terminal associated with the first user and one or more other terminals associated with the selected one or more other users after the first user and the one or more other users have been matched by the recommendation processor.
3. A messaging system according to claim 2, wherein the user feedback data comprises implicit user feedback data indicating how the first user generated messaging data on the first terminal when engaged in the previous communication sessions with the plurality of other users.
4. A messaging system according to claim 3, wherein the implicit user feedback data is based on, for each of the plurality of communication sessions one or more of: a speed of entering messaging data,
a length of messaging data
a number of messaging data messages generated during the communication session, and
a length of communication session.
5. A messaging system according to any previous claim, wherein the user feedback data comprises explicit user feedback data corresponding to an explicit indication from the first user as to how engaged the first user was during previous communication sessions with the plurality of other users.
6. A messaging system according to any previous claim, wherein the chat metric data further comprises topic preference data, said topic preference data indicating an extent to which the first user has been engaged in one or more previous communication sessions relating to one or more topics and an extent to which the plurality of other users have been engaged in one or more previous communication sessions relating to the one or more topics, and
said recommendation arranged to match the first user with a selected one or more of the plurality of other users also based on an extent to which topic preference data of the first user corresponds to topic preference data of the plurality of other users.
7. A messaging system according to claim 6, wherein the topic preference data comprises explicit topic preference data corresponding to an explicit indication from the first user and plurality of other users as to how engaged the first user and plurality of other users were during previous communication sessions relating to the one or more topics.
8. A messaging system according to any previous claim, wherein the recommendation processor comprises a matching score data structure comprising a matching score value for each of a plurality of possible matches between the plurality users, said matching score value based on the chat metric data, wherein said recommendation processor is arranged to match the first user with the selected one or more of the plurality of other users by identifying which of the plurality of other users has a highest matching score associated with the first user.
9. A messaging system according to claim 8, wherein the matching score data structure is updated as new chat metric data is collected.
10. A method for enabling communication of messaging data between two or more of a plurality of terminals via a messaging server, the method comprising: matching a first user with one or more of a plurality of other users based on chat metric data, said chat metric data comprising user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users wherein said matching comprises matching the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication sessions.
11. A method according to claim 10, further comprising establishing a communication session between a first terminal associated with the first user and one or more other terminals associated with the selected one or more other users after the first user and the one or more other users have been matched.
12. A method according to claim 11, wherein the user feedback data comprises implicit user feedback data indicating how the first user generated messaging data on the first terminal when engaged in the previous communication sessions with the plurality of other users.
13. A method according to claim 12, wherein the implicit user feedback data is based on, for each of the plurality of communication sessions one or more of:
a speed of entering messaging data,
a length of messaging data
a number of messaging data messages generated during the communication session, and
a length of communication session.
14. A method according to any of claims 10 to 13, wherein the user feedback data comprises explicit user feedback data corresponding to an explicit indication from the first user as to how engaged the first user was during previous communication sessions with the plurality of other users.
15. A method according to any of claims 10 to 14, wherein the chat metric data further comprises topic preference data, said topic preference data indicating an extent to which the first user has been engaged in one or more previous communication sessions relating to one or more topics and an extent to which the plurality of other users have been engaged in one or more previous communication sessions relating to the one or more topics, and
said matching comprises matching the first user with a selected one or more of the plurality of other users also based on an extent to which topic preference data of the first user corresponds to topic preference data of the plurality of other users.
16. A method according to claim 15, wherein the topic preference data comprises explicit topic preference data corresponding to an explicit indication from the first user and plurality of other users as to how engaged the first user and plurality of other users were during previous communication sessions relating to the one or more topics.
17. A computer program comprising instructions which when implemented on a computer performs a method according to any of claims 10 to 16.
18. A computer program product on which is stored a computer program as defined in claim 17.
19. A recommendation processor for matching a first user with one or more of a plurality of other users in a messaging system, said messaging system arranged to enable a communication of messaging data between two or more of a plurality of terminals via a messaging server, wherein the recommendation processor is arranged to match the first user with one or more of the plurality of other users based on chat metric data, wherein said chat metric data comprises user feedback data indicating an extent to which the first user was engaged during previous communication sessions with one or more of the plurality of other users and
said recommendation processor is arranged to match the first user with a selected one or more of the plurality of other users based on which of the plurality of the other users the user feedback data indicates most engaged the first user during the previous communication sessions.
20. A messaging system or recommendation processor substantially as hereinbefore described with reference Figures 1 to 4 of the accompanying drawings.
PCT/GB2013/050809 2012-03-29 2013-03-27 Chat system and method WO2013144626A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB1205590.1A GB201205590D0 (en) 2012-03-29 2012-03-29 Chat system and method
GB1205590.1 2012-03-29

Publications (1)

Publication Number Publication Date
WO2013144626A1 true WO2013144626A1 (en) 2013-10-03

Family

ID=46159939

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB2013/050809 WO2013144626A1 (en) 2012-03-29 2013-03-27 Chat system and method

Country Status (2)

Country Link
GB (1) GB201205590D0 (en)
WO (1) WO2013144626A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3641238A4 (en) * 2017-05-23 2020-07-29 Huawei Technologies Co., Ltd. Information exchange method and terminal

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028525A1 (en) * 2001-08-01 2003-02-06 Santos Richard A. System for and method of determining and using subject matter experts in a forum environment
US20080183540A1 (en) * 2007-01-31 2008-07-31 Lewis Donald C Method and system for matching resources and co-resources
WO2009130698A2 (en) * 2008-04-23 2009-10-29 Neta Weinryb System and method for managing discussions using messaging services

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030028525A1 (en) * 2001-08-01 2003-02-06 Santos Richard A. System for and method of determining and using subject matter experts in a forum environment
US20080183540A1 (en) * 2007-01-31 2008-07-31 Lewis Donald C Method and system for matching resources and co-resources
WO2009130698A2 (en) * 2008-04-23 2009-10-29 Neta Weinryb System and method for managing discussions using messaging services

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3641238A4 (en) * 2017-05-23 2020-07-29 Huawei Technologies Co., Ltd. Information exchange method and terminal
US11044286B2 (en) 2017-05-23 2021-06-22 Huawei Technologies Co., Ltd. Information exchange method and terminal
US11528305B2 (en) 2017-05-23 2022-12-13 Huawei Technologies Co., Ltd. Information exchange method and terminal

Also Published As

Publication number Publication date
GB201205590D0 (en) 2012-05-16

Similar Documents

Publication Publication Date Title
JP7404467B2 (en) Dynamic communication routing based on consistency weighting and routing rules
US11727048B2 (en) Methods, systems, and media for presenting recommended content based on social cues
US10142477B2 (en) System and method for social message classification based on influence
US8848026B2 (en) Video conference call conversation topic sharing system
CA2767191C (en) Method and server for instant messaging
US9300482B2 (en) Cross-channel conversations with context aware transition between channels
US8631078B2 (en) Method and system for embedded personalized communication
US9832144B2 (en) Method and device for implementing instant communication
US20220335099A1 (en) Pairing systems and methods for electronic communications
CN110149270B (en) Apparatus and method for instant messaging
US20140237057A1 (en) System and method for processing private messages in a contact center
CN107302489A (en) Message display method and device
EP3979653A1 (en) Livestream recommendation notification
WO2012116197A2 (en) Platform for pseudo-anonymous video chat with intelligent matching of chat partners
US11128997B1 (en) Complex computing network for improving establishment and broadcasting of audio communication among mobile computing devices and providing descriptive operator management for improving user experience
US20120124150A1 (en) Intelligent network communication system and method
WO2014071781A1 (en) Social network site interaction method and application platform
JP7394101B2 (en) A method for providing information on social network service-related activities to a chat room, a computer program, and a server for providing information on social network service-related activities to a chat room.
US20230362115A1 (en) Image display method and apparatus, storage medium, and electronic device
WO2014089539A1 (en) Cross-channel conversations with context aware transition between channels
KR20220002850A (en) Method and apparatus for displaying an interface for providing a social network service through an anonymous based profile
US8909718B2 (en) Methods and systems for incorporating a third user into an instant message session
WO2013144626A1 (en) Chat system and method
KR102302106B1 (en) Method and apparatus for providing information of social network service related activity to chat rooms
KR102407110B1 (en) Method for providing emoticons in instant messaging service, user device, server and application implementing the method

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13718877

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13718877

Country of ref document: EP

Kind code of ref document: A1